利用数学软件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 中使用三角函数绘制曲线图形及展示动画 正巧在复 ...
随机推荐
- 零基础学习java------day7------面向对象
1. 面向对象 1.1 概述 面向过程:c语言 面向对象:java :python:C++等等 面向对象的概念: (万物皆对象)------think in java everything in ...
- c#中实现串口通信的几种方法
c#中实现串口通信的几种方法 通常,在C#中实现串口通信,我们有四种方法: 第一:通过MSCOMM控件这是最简单的,最方便的方法.可功能上很难做到控制自如,同时这个控件并不是系统本身所带,所以还得注册 ...
- When should we write our own assignment operator in C++?
The answer is same as Copy Constructor. If a class doesn't contain pointers, then there is no need t ...
- sqlserver 各种判断是否存在(表、视图、函数、存储过程等)
1.判断表是否存在 select * from sysobjects where id = object_id(表名) and OBJECTPROPERTY(id, N'IsUserTable') = ...
- Java线程安全性-原子性工具对比
synchronized 不可中断锁,适合竞争不激烈的场景,可读性好,竞争激烈时性能下降很快 Lock 可中断锁,多样化同步,竞争激烈时能维持常态 Atomic 竞争激烈时能维持常态,比Lock性能还 ...
- JQuery 和 CSS 等选择器:
JQuery 选择器: CSS 选择器:
- Hibernate的基本功能:对数据库的增删改查(创建对象实例)
一.通过实例化的对象向数据库添加新记录 package com.yh.test; import org.hibernate.Session; import org.hibernate.SessionF ...
- springboot项目启动慢,怀疑jdk有问题
项目启动慢,并且没有启动日志,开发环境和windows服务器都正常,到linux后出现问题,你觉得会是哪儿的问题? 最近收到一位同事求助,说springboot应用在客户的一台Linux机器上启动非常 ...
- scrapy爬取招聘网站,items转换成dict遇到的问题
pipelines代码 1 import json 2 3 class TencentJsonPipeline(object): 4 def __init__(self): 5 self.file = ...
- Nginx区分搜索引擎
目录 一.简介 二.配置 一.简介 场景: 当从百度点进来显示中文页面,而谷歌显示英文界面. 原理: 根据referer头来判断 二.配置 这样配置以后,凡是从百度或者google点过来的请求都会跳转 ...