使用3D点绘制平滑曲面

4

我需要使用Matlab中的三维点创建这个表面。

我有一个非常大的密集的三维点集,我希望使用这些点创建一个平滑的表面。这里显示了我需要的类型的表面作为示例:

pic1

这些点以x、y和z数组的形式存在,其中一些如下所示。

x = [195.758412316115   194.820087484229    193.880003014141    192.938917413610    191.998009541608. ],
y = [153.551961825705   153.449992277448    153.348399077453    153.246913790771    153.145452172192 ...],
z = [-45.8030209004629  -45.4679110367076   -45.1377265101793   -44.8100698973253   -44.4818298688393...].

这些点的3D图如下所示:

图片2


1
你尝试过 surf 函数吗?结果是什么?http://www.mathworks.com/help/matlab/ref/surf.html - user813853
2个回答

0

您可以使用trisurf()计算凸包并绘制。这是一个示例立方体:

x = [-1 1 -1 1 -1 1 -1 1]
y = [-1 -1 1 1 1 1 -1 -1]
z = [-1 -1 -1 -1 1 1 1 1]

C = convhull(x,y,z);
trisurf(C, x, y, z);

凸包不会恢复恐龙的形状,或者说无论那是什么。 - A. Donda

0
你可以尝试使用surfl()函数创建一个带有阴影的曲面图,将阴影模式更改为插值模式,并选择适当的颜色映射(粉色)。
surfl(z)
colormap(pink)    % change color map
shading interp    % interpolate colors across lines and faces

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接