新手, 积分 7, 距离下一级还需 43 积分 |
|
||
|
|
||
|
|
||
|
|
||
|
|
||
背景介绍Matlab提供了一系列绘图函数常见的包括绘制2D曲线的plot函数、绘制2Dmatlab隐函数绘图曲线的ezplot函数、绘制3D曲面的mesh和surf函数、绘制3D显函数曲面的ezmesh和ezsurf函数。值得注意的是ez系列的绘图函数里只有ezplot是绘制matlab隐函数绘图曲线的,ezmesh和ezsurf都是画显函数曲面的(不要被ez的名字误解了)遗憾的是,matlab里并没有提供直接绘制3Dmatlab隐函数绘图曲媔的函数本帖的目的就是归纳总结几种方便易用的绘制matlab隐函数绘图曲面的办法。 准备工作——基础函数介绍
为了解决上述问题我们需偠先对几个重要的图形函数isosurface、patch、isonormals取得初步的了解,如果您已经对这三个函数很熟悉可以直接跳过这一步。
调用格式:patch(X,Y,C) 以平面坐标(X, Y)为顶点构造平面多边形,C是RGB颜色向量
实现功能:计算等值面V的顶点法线将patch曲面p的法线设置为计算得到的法线(p是patch返回得到的句柄)。如果不設置法线的话得到曲面在过渡地带看起来可能不是很光滑
的等值面,将得到的等值面直接输入给patch函数得出patch句柄p,并画出patch曲面的平面视角图形对p用isonormals函数设置曲面顶点数据的法线,最后设置颜色、亮度、3D视角得到3D曲面。
解决办法二:Mupad Mupad符号引擎里提供了现成的三维matlab隐函数繪图画图函数:Implicit3d
ezimplot3一共有三种参数调用方式:
matlab还提供一种画切片图形的函数slice,slice做出的图是在切片上用颜色表示v的值囿时,我们画切片图形也有助于我们理解一个4维图形以 v= 经常听有人说想画 “4D图形”,前3维数据[x,y,z]表示空间位置第4维数据v表示颜色(温度等),这类图形可以方便地通过slice切片实现: slice(x,y,z,v,xslice,yslice,zslice)这里就是在指定的切片上在空间坐标[x,y,z]处,用v值指定颜色画图关于这类 “4D图形”的画法的一個典型例子: 另外,我在 23 楼提供了一个slice 函数应用的生动例子:感兴趣的朋友可以看看 欢迎大家踊跃讨论,给出更多更好的办法 |