1.三维体数据示例
三维体可视化是指为三维网格上定义的数据集创建图形表示。三维体数据集的特点是它们是由标量或向量数据组成的多维数组。这些数据通常在网格结构上定义,表示在三维空间采样的值。有两种基本类型的三维体数据:
-
标量三维体数据的每个点包含一个值。
-
向量三维体数据的每个点包含两个或三个值,它们定义一个向量的分量。
flow
生成的数据就是标量三维体数据的一个示例。流数据表示一股浸没射流在一个无限大的水箱内的速度剖面图。键入以下命令
[x,y,z,v] = flow;
将生成四个三维数组。x
、y
和 z
数组指定数组 v
中标量值的坐标。
wind
数据集是向量三维体数据的一个示例,这些数据代表北美地区的气流。您可以使用以下命令将这些数据加载到 MATLAB® 工作区:
load wind
此数据集包含六个三维数组:x
、y
和 z
是数组 u
、v
和 w
的坐标数据,后三个数组是三维体中每个点的向量分量。
2.选择可视化方法
选择哪一种三维体数据可视化方法取决于您的数据类型以及您要了解的内容。一般来说:
-
标量数据最好用等值面、切片平面和等高线切片进行展示。
-
向量数据表示每个点的模和方向,最好通过流线图(流粒子、流带和流管)、圆锥图和箭头图显示。然而,大多数可视化绘图都综合使用多种方法,以便最好地展示数据的内容。
下面各节的内容介绍如何对典型的三维体数据应用各种方法。
2.1数据插值和网格化数据
利用 MATLAB 提供的函数,您可以对数据插值和调整结构,以做好可视化准备。有关详细信息,请参阅以下章节:
2.2创建三维体可视化绘图的步骤
创建有效的可视化绘图需要多个步骤来合成最终的场景。这些步骤基本分为四种:
-
确定数据的特性。绘制三维体数据通常需要了解有关坐标和数据值范围的知识。
-
选择合适的绘图例程。本节的信息可以帮助您选择正确的方法。
-
定义视图。通过仔细合成场景,可以大大地丰富复杂三维图所传达的信息。观察技巧包括调整相机位置、指定纵横比和投影类型、放大或缩小等。
-
添加光照并指定着色。光照是增强曲面形状可见性并为三维体图提供三维透视的有效手段。颜色既可以传达不变的数据值,也可以传达变化的数据值。
3.三维体可视化函数
MATLAB 提供的函数允许您应用各种三维体可视化方法。下表根据适用的数据类型(标量或向量)将这些函数分为两类。每个函数的参考页提供了函数的用法示例。
3.1适合标量数据的函数
函数 | 用途 |
---|---|
在三维体切片平面中绘制等高线 | |
isocaps | 计算等值面端帽几何图 |
isocolors | 计算等值面顶点的颜色 |
isonormals | 计算等值面顶点的法向量 |
isosurface | 从三维体数据中提取等值面数据 |
创建补片(多面多边形)图形对象 | |
减少补片面的数量 | |
reducevolume | 减少三维体数据集中的元素个数 |
shrinkfaces | 减少每个补片面的大小 |
slice | 在三维体中绘制切片平面 |
smooth3 | 平滑处理三维数据 |
surf2patch | 将曲面数据转换为补片数据 |
subvolume | 提取三维体数据集的子集 |
3.2适合向量数据的函数
函数 | 用途 |
---|---|
coneplot | 在三维向量场中以圆锥体形式绘制速度向量 |
计算三维向量场的旋度和角速度 | |
divergence | 计算三维向量场的散度 |
interpstreamspeed | 根据向量场的模进行流线顶点插值 |
streamline | 根据二维或三维向量数据绘制流线图 |
streamparticles | 根据向量三维体数据绘制流粒子图 |
streamribbon | 根据向量三维体数据绘制流带图 |
streamslice | 根据向量三维体数据绘制间隔合适的流线图 |
streamtube | 根据向量三维体数据绘制流管图 |
stream2 | 计算二维流线数据 |
stream3 | 计算三维流线数据 |
volumebounds | 返回三维体(标量和向量)的坐标和颜色范围 |