使用 patch 函数可视化网格
Using the patch function to visualize a mesh
我正在尝试使用 matlab R2016b 中的 "patch" 函数可视化网格。
我的网格数据是一个简单的球体,由一个面矩阵 512x3
和一个顶点矩阵 258x3
组成,结构如下图所示(但每个面有 3 个顶点):
当我使用以下命令可视化具有单一纯色的网格时:
patch('Faces', mesh.sharedVert, 'Vertices', mesh.vertices, ...
'FaceColor', [0.9290 0.6940 0.1250])
没有问题:
但是,当我尝试为每个面或每个顶点可视化不同的颜色时,我得到以下结果:
这是失败尝试的脚本:
patch('Faces', mesh.sharedVert, 'Vertices', mesh.vertices, ...
'FaceVertexCData', colors)
我的 colors
变量是 512x1
的列向量(对于面)或 258x1
的顶点(现在我在其中使用随机数)。
根据 matlab 的 "patch" 文档,在 "FaceVertexCData" 部分下,它应该在两种情况下都有效,但它不会...
According to Matlab staff,您必须将 FaceColor 属性 设置为 'flat'(如果使用逐面颜色)或 'interp'(如果使用逐顶点颜色) ),因为 [0 0 0] 的默认值会覆盖 per-face/vertex 值。
有趣的是,他们没有费心将这些信息添加到手册页中。
我正在尝试使用 matlab R2016b 中的 "patch" 函数可视化网格。
我的网格数据是一个简单的球体,由一个面矩阵 512x3
和一个顶点矩阵 258x3
组成,结构如下图所示(但每个面有 3 个顶点):
当我使用以下命令可视化具有单一纯色的网格时:
patch('Faces', mesh.sharedVert, 'Vertices', mesh.vertices, ...
'FaceColor', [0.9290 0.6940 0.1250])
没有问题:
但是,当我尝试为每个面或每个顶点可视化不同的颜色时,我得到以下结果:
这是失败尝试的脚本:
patch('Faces', mesh.sharedVert, 'Vertices', mesh.vertices, ...
'FaceVertexCData', colors)
我的 colors
变量是 512x1
的列向量(对于面)或 258x1
的顶点(现在我在其中使用随机数)。
根据 matlab 的 "patch" 文档,在 "FaceVertexCData" 部分下,它应该在两种情况下都有效,但它不会...
According to Matlab staff,您必须将 FaceColor 属性 设置为 'flat'(如果使用逐面颜色)或 'interp'(如果使用逐顶点颜色) ),因为 [0 0 0] 的默认值会覆盖 per-face/vertex 值。
有趣的是,他们没有费心将这些信息添加到手册页中。