我有一个关于在 Matlab 中绘制圆柱面的问题。我的数据集由X, Y, Z
具有相应强度值的坐标点云组成C
。
scatter3
我可以使用以下函数绘制它们:
figure
scatter3(X,Y,Z,8,C)
结果如下图:
但是,我想绘制这个对象的表面而不是点。我尝试使用 Delaunay 三角测量来实现这一点
tri = delaunay(X,Y);
figure
trisurf(tri,X,Y,Z,C,'FaceColor','interp')
正如您从图像中看到的那样,结果不是我想要的,因为三角测量存在困难。X
在我看来,算法似乎不能很好地处理我得到相同并Y
多次坐标的事实。
按照帮助页面上介绍的示例,TriRep
我尝试使用以下方法:
dt = DelaunayTri(X,Y,Z);
tr = TriRep(dt, X, Y, Z);
TriRep
唉,没有成功,因为我在调用函数时收到以下错误消息:
???错误使用 ==> TriRep 参数必须是“双矩阵”。
我想我必须限制我的几何形状,并且我认为我在这里通过使用函数找到了示例 1freeBoundary
中的解决方案- 尽管我确实需要TriRep
函数的输出来计算它。这就是我卡住的地方。如您所见,我不是三角测量方法的专家,我非常感谢您提供的任何帮助。谢谢!