Main Content

三维体可视化概述

三维体数据示例

三维体可视化是指为三维网格上定义的数据集创建图形表示。三维体数据集的特点是它们是由标量或向量数据组成的多维数组。这些数据通常在网格结构上定义,表示在三维空间采样的值。有两种基本类型的三维体数据:

  • 标量三维体数据的每个点包含一个值。

  • 向量三维体数据的每个点包含两个或三个值,它们定义一个向量的分量。

flow 生成的数据就是标量三维体数据的一个示例。流数据表示一股浸没射流在一个无限大的水箱内的速度剖面图。键入以下命令

[x,y,z,v] = flow;

将生成四个三维数组。xyz 数组指定数组 v 中标量值的坐标。

wind 数据集是向量三维体数据的一个示例,这些数据代表北美地区的气流。您可以使用以下命令将这些数据加载到 MATLAB® 工作区:

load wind

此数据集包含六个三维数组:xyz 是数组 uvw 的坐标数据,后三个数组是三维体中每个点的向量分量。

选择可视化方法

选择哪一种三维体数据可视化方法取决于您的数据类型以及您要了解的内容。一般来说:

  • 标量数据最好用等值面、切片平面和等高线切片进行展示。

  • 向量数据表示每个点的模和方向,最好通过流线图(流粒子、流带和流管)、圆锥图和箭头图显示。然而,大多数可视化绘图都综合使用多种方法,以便最好地展示数据的内容。

下面各节的内容介绍如何对典型的三维体数据应用各种方法。

数据插值和网格化数据

利用 MATLAB 提供的函数,您可以对数据插值和调整结构,以做好可视化准备。有关详细信息,请参阅以下章节:

创建三维体可视化绘图的步骤

创建有效的可视化绘图需要多个步骤来合成最终的场景。这些步骤基本分为四种:

  1. 确定数据的特性。绘制三维体数据通常需要了解有关坐标和数据值范围的知识。

  2. 选择合适的绘图例程。本节的信息可以帮助您选择正确的方法。

  3. 定义视图。通过仔细合成场景,可以大大地丰富复杂三维图所传达的信息。观察技巧包括调整相机位置、指定纵横比和投影类型、放大或缩小等。

  4. 添加光照并指定着色。光照是增强曲面形状可见性并为三维体图提供三维透视的有效手段。颜色既可以传达不变的数据值,也可以传达变化的数据值。

三维体可视化函数

MATLAB 提供的函数允许您应用各种三维体可视化方法。下表根据适用的数据类型(标量或向量)将这些函数分为两类。每个函数的参考页提供了函数的用法示例。

适合标量数据的函数

函数用途

contourslice

在三维体切片平面中绘制等高线

isocaps

计算等值面端帽几何图

isocolors

计算等值面顶点的颜色

isonormals

计算等值面顶点的法向量

isosurface

从三维体数据中提取等值面数据

patch

创建补片(多面多边形)图形对象

reducepatch

减少补片面的数量

reducevolume

减少三维体数据集中的元素个数

shrinkfaces

减少每个补片面的大小

slice

在三维体中绘制切片平面

smooth3

平滑处理三维数据

surf2patch

将曲面数据转换为补片数据

subvolume

提取三维体数据集的子集

适合向量数据的函数

函数

用途

coneplot

在三维向量场中以圆锥体形式绘制速度向量

curl

计算三维向量场的旋度和角速度

divergence

计算三维向量场的散度

interpstreamspeed

根据向量场的模进行流线顶点插值

streamline

根据二维或三维向量数据绘制流线图

streamparticles

根据向量三维体数据绘制流粒子图

streamribbon

根据向量三维体数据绘制流带图

streamslice

根据向量三维体数据绘制间隔合适的流线图

streamtube

根据向量三维体数据绘制流管图

stream2

计算二维流线数据

stream3

计算三维流线数据

volumebounds

返回三维体(标量和向量)的坐标和颜色范围