我有一个函数,它采用 3D 风景的体素表示,并且可以绘制一个 XY 截面以显示风景的中间。体素表示存储在一个 3 维矩阵中,其中的数字代表重要的事物。显然矩阵是
1,1,1
2,2,2
在访问元素方面,但实际的 3D 位置可通过以下方法找到:
(index-1)*resolution+0.5*resolution+minPos;
其中分辨率是网格大小:
resolution
<-->
__ __ __
|__|__|__|
<- Min pos
minPos 是网格开始的地方。
现在就实际问题而言,我想提取此体素表示的单个 XY 部分并将其显示为冲浪。这可以通过这样做来完成:
surf(voxel(:, :, section))
但是你会得到这个:
明显的问题是网格将从 0 开始,因为这就是矩阵表示的方式。如何设置 surf 的最小值和单元格大小,即网格将从最小值开始(如上所示)并具有分辨率的网格间距(如上所示)。
当然,您必须匹配文档中清楚描述的 Z、x 和 y 矩阵/向量^^只需记住 Z 列中的元素作为沿 y 轴的值进行冲浪,Z 行中的元素是冲浪ed 作为沿 x 轴的值。这在示例图片中可以清楚地看到。