利用数学软件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 中使用三角函数绘制曲线图形及展示动画 正巧在复 ...
随机推荐
- Kafka 架构深入
Kafka 工作流程及文件存储机制
- STM32一些特殊引脚做IO使用的注意事项
1 PC13.PC14.PC15的使用 这三个引脚与RTC复用,<STM32参考手册>中这样描述: PC13 PC14 PC15需要将VBAT与VDD连接,实测采用以下程序驱动4个74HC ...
- Shell学习(八)——dd命令
一.dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: 1. ...
- jenkins之邮箱设置
- jquery datatable真实示例
1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodin ...
- Java Criteria使用方法
Criteria Query 可以看作传统sql的对象化表示. Criteria 可以由session创建. Criteria ct= session.createCriteria(TUser.cla ...
- 【Java】基本语法学习笔记
1.数组 *数组的创建 int[] array = {1,2,3,4,5}; 注意区别于C++ int a[] = (1)两种输出方法 public class number { public sta ...
- java 多线程的状态迁移 常用线程方法分析
一.线程的各个状态 图中的线程状态(Thread.Stat 中定义的Enum 名)NEW.RUNNABLE .TERMINATED.WAITING.TIMED_WAITING 和BLOCKED 都能够 ...
- MySQL查询数据库表空间大小
一.查询所有数据库占用空间大小 SELECT TABLE_SCHEMA, CONCAT( TRUNCATE(SUM(data_length) / 1024 / 1024, 2), ' MB' ) AS ...
- antd动态的表格合并(包含排序功能)
主要是两个步骤, 1.处理接口返回数据,给其添加两个属性,一个是合并行数(列数),一个是当前数据的序号 2.在columns结合antd官网的处理方法合并表格 3.尽可能得减少计算量 数据处理函数 / ...