暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第5章 数据可视化——5.4 四维图形可视化

软件开发架构 2023-05-19
763


5.4  四维图形可视化



5.4.1  用颜色描述第四维


meshsurf等指令所绘制的图像,在未给出颜色参量的情况下,图像的颜色是沿着z轴的数据变化的。例如,surf(X,Y,Z)surf(X,Y,Z,Z)两个指令的执行效果是相同的。将颜色施加于z轴能够产生色彩亮丽的图画,但由于z轴已经存在,因此它并不提供新的信息。

为了更好地利用颜色,可以考虑使用颜色来描述不受3个轴影响的数据的某些属性。为此,需要赋给三维作图函数的颜色参量所需要的第四维的数据。

如果作图函数的颜色参量是一个向量或矩阵,那么就用作颜色映像的下标。这个参量可以是任何实向量或与其参量维数相同的矩阵。


5-33:使用颜色描述第四维示例。

创建M文件并命名为ex5_33.m,利用M文件编辑器在M文件中输入:

clear all

[X, Y, Z] = peaks(30);

R = sqrt(X .^ 2 + Y .^ 2);

subplot(1,2,1);

surf(X, Y, Z, Z);

axis tight

subplot(1,2,2)

surf(X, Y, Z, R);

axis tight

运行M文件,结果如图5-35所示。

其中,在坐标系中描述一个面需要三维数据,而另一维数据描述空间中的点的坐标值,则使用不同的颜色表现出来;在左图中,第四维数据为Z;在右图中,第四维数据为R;在图中可以看到两者的颜色分布发生了明显的变化。

5-35  使用颜色描述第四维示例


5.4.2  其他函数


除了surf函数,meshpcolor函数也可以将第四维的数据附加到颜色属性上,并在图像中表现出来。各函数的句法列表如表5-15所示。

5-15  其他函数的句法列表

除了表5-15所列出的函数,slice函数也可以通过颜色来表示存在于第四维空间中的值,其调用格式如下。

● slice(V,nx,ny,nz):显示三元函数V(X,Y,Z)确定的立体图在x轴、y轴、z轴方向上的若干点(对应若干平面)的切片图,各点的坐标由数量向量sxsysz指定。其中V为大小为m×n×p的三维数组,默认值为X=1:mY=1:nZ=1:p

● slice(X,Y,Z,V,nx,ny,nz):显示三元函数V(X,Y,Z)确定的立体图在x轴、y轴、z轴方向上的若干点(对应若干平面)的切片图。若函数V(X,Y,Z)中有一个变量X取定值X0,则函数V(X0 ,Y,Z)X=X0立体面的切面图(将该切面通过颜色表示V的值),各点的坐标由数量向量sxsysz指定。参量XYZ均为三维数组,用于指定立方体V的每点的三维坐标。

● slice(V,XI,YI,ZI):显示由参量矩阵XIYIZI确定的立体图的切片图,参量XIYIZI定义了一个曲面,同时会在曲面的点上计算立体图V的值。需要注意的是,XIYIZI必须为同型矩阵。

● slice(X,Y,Z,V,XI,YI,ZI):沿着由矩阵XIYIZI定义的曲面穿过立体图V的切片图。

● slice(…,'method'):通过method来指定内插值的方法,method可取linearcubicnearestlinear指定的内插值方法为三次线性内插值(若未指定,此即为默认值),cubic指定使用三次立方内插值法,nearest指定使用最近点内插值法。



本章小结


本章系统地阐述了将离散数据表示成可视化图形的基本过程,曲线、曲面绘制的基本技法和指令,以及特殊图形的生成和使用示例。读者在绘图时,应当根据实际情况选择合适的函数和算法,使得可视化图形的表示最合理,信息的表现最全面。例如可以使用不同线型、不同颜色、不同数据点标记来凸显不同数据的特征,还可以使用着色、灯光照明、反射效果、不同材质和透明度来处理渲染和烘托表现出高维函数的形状等。


如果大家需要这个文档,可以在我的公众号(软件开发架构)中回复20230517,免费获取。

文章转载自软件开发架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论