利用数学软件Mathematica的三维图像进行建模
前言
最近在使用Mathematica进行二元函数的图像绘制,在导出图像选项中看到了obj,maya等三维格式。其实很早之前我就有过这样的想法,但之前使用的是matlab作图,无法导出三维格式。那么废话不多说,直接开搞。
一、用简单曲面测试效果
我们先用一个简单的曲面来进行试验,即$f \left ( x,y \right ) = x^{2} + y^{2},-5\leqslant x\leqslant 5,-5\leqslant y\leqslant 5$,其图像为:
我们先来选个OBJ格式的,将导出的模型导入3dmax中,但是会出现以下问题:
网上也没有查到相关的解决办法,可能是和版本不兼容?(有知道原因的大佬来解释一下吧)
既然OBJ格式导入有问题,那就换个格式好了,这次我选则Maya格式,将导出的模型导入Maya中,看着还不错。
由于我对Maya不熟悉,我将其导出为FBX格式,再导入3dmax查看效果:
这个曲面少了一个面片,但在Maya中却没有出现这样的情况,我换成OBJ格式在导入3dmax中,就没有问题了(有大大的问题,满脑子的疑惑)。
切换为边面模式,可以发现,mathematica导出的不是四边面,但也不完全是三角面,而是三角面和四边面的混合,
我们知道,3dmax建模时再进行建模时,需要尽可能地用四边面进行布线,方便在后期进行高模卡线,这种布线方式不太好卡线,先加一个涡轮平滑试试效果:
可以看出这个效果和预想中的一样,存在很多硬边,不圆滑,这样的情况在3dmax中是很难解决的,于是我决定在Mathematica中利用程序进行加线,将网格全部显示,将绘图点改为100,如下:
按照以上步骤导入3dmax中,
这次,模型不仅很光滑,而且布线也很好看。看来由程序布线最后还得有程序加线效果才会好。
二、用更复杂的曲面测试
掌握了技术后当然要用它来测试更复杂的模型啦。这里我使用了官方文档中使用的两个模型函数进行测试,效果如下:
当然,也会有少数模型的法线存在一些小问题,比如上面的海螺模型导入后法线是反的,只需要添加法线修改器即可,但是下面这个模型导入后,有的面法线是正的,有的面法线是反的,法线修改器暂时不能改正。
三、结论
虽然使用这样的方法可以对三维函数图像转化为模型,但实际上用处并不大,几乎没有建模师使用这样的方法来进行建模。不过这种方法也有好处,比如不需要手动去卡线,而且模型的曲面还可能具有二阶或者更高阶的导数,因此曲面的光滑效果会更好。
利用数学软件Mathematica的三维图像进行建模的更多相关文章
- 杂项-数学软件:Mathematica
ylbtech-杂项-数学软件:Mathematica Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.很多功能在相 ...
- Mathematica 和 MATLAB、Maple 并称为三大数学软件
Mathematica是一款科学计算软件,很好地结合了数值和符号计算引擎.图形系统.编程语言.文本系统.和与其他应用程序的高级连接.很多功能在相应领域内处于世界领先地位,它也是使用最广泛的数学软件之一 ...
- 杂项-数学软件:MATLAB
ylbtech-杂项-数学软件:MATLAB MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATL ...
- 数学软件 之 基于MATLAB的DFP算法
DFP算法是本科数学系中最优化方法的知识,也是无约束最优化方法中非常重要的两个拟Newton算法之一,上一周写了一周的数学软件课程论文,姑且将DFP算法的实现细节贴出来分享给学弟学妹参考吧,由于博客不 ...
- 杂项-数学软件:Maple
ylbtech-杂项-数学软件:Maple Maple是目前世界上最为通用的数学和工程计算软件之一,在数学和科学领域享有盛誉,有“数学家的软件”之称.Maple 在全球拥有数百万用户,被广泛地应用于科 ...
- 利用matplotlib的plot函数实现图像绘制
模式识别的一个实验,要求画出贝叶斯决策的图.这里我是利用python中的matplotlib库实现的图线的拟合.主要对于matplotlib的使用可以参照博客:webary 如果要绘制三维图像可以参考 ...
- 数学软件Matlab的使用感受
在我一年前的暑假,我们的小学期学习了MATLAB软件.MATLAB是一款数学软件,可以用于算法计算.数据可视化.数据分析以及数据计算. 我们主要学习了MATLAB关于数学上的经常用的一些用法和算法,M ...
- 利用开源软件 Hugin 实现照片的景深合成
利用开源软件 Hugin 实现照片的景深合成 本文主要参考了下面的文章:http://macrocam.blogspot.jp/2013/09/using-hugin-for-focus-stacki ...
- 【前端】 在前端利用数学函数知识+box-shadow解波浪图形
序 今天正在刷数学函数相关题目,刷到了下面这篇文章,哇哦-有意思. 利用cos和sin实现复杂的曲线.传送门在下面. CSS 技巧一则 -- 在 CSS 中使用三角函数绘制曲线图形及展示动画 正巧在复 ...
随机推荐
- day03 MySQL数据库之主键与外键
day03 MySQL数据库之主键与外键 昨日内容回顾 针对库的基本SQL语句 # 增 create database meng; # 查 show databases; shwo create da ...
- MapReduce的类型与格式
MapReduce的类型 默认的MR作业 默认的mapper是Mapper类,它将输入的键和值原封不动地写到输出中 默认的partitioner是HashPartitioner,它对每条记录的键进行哈 ...
- android 下动态获取控件的id
有时候我们需要动态的取得一个一个控件的id,然后进行操作,经过在网上查找,找到了一下方法getResources().getIdentifier("textView01", &qu ...
- Bitmaps与优化
1.有效的处理较大的位图 图像有各种不同的形状和大小.在许多情况下,它们往往比一个典型应用程序的用户界面(UI)所需要的资源更大. 读取一个位图的尺寸和类型: 为了从多种资源来创建一个位图,Bitma ...
- oralce 存储过程传入 record 类型的参数?
先定义一个 package , package中含有一个 record 类型的变量 create or replace package pkg_record is type emp_record is ...
- ES在项目中的测试
1.application.yml server: port: ${port:40100}spring: application: name: xc-search-servicexuecheng: e ...
- 【Java 基础】 instanceof和isInstance区别详解
obj instanceof class 也就是说这个对象是不是这种类型, 1.一个对象是本身类的一个对象 2.一个对象是本身类父类(父类的父类)和接口(接口的接口)的一个对象 3.所有对象都是Obj ...
- XML名命空间
XML的名命空间就类似于java的包,命名空间定义:xmlns:***="URI",默认命名空间定义:xmlns="URI" 引号中的URl内容用来唯一标识命名 ...
- layui-入门
1.下载layui 2.导入layui <title>开始使用layui</title> <!-- 导入js样式 --> <link rel="st ...
- I/O流之文件流
1.文件操作类 File 1.public File(String pathname)//给定一个要操作文件的完整路径 2.public File(File parent,String child)/ ...