使用3D点绘制光滑表面

时间:2015-06-27 11:58:01

标签: matlab 3d

这是我需要在matlab中使用3D点创建的表面。

我有很多密集的3D点,我想用这些点创建一个光滑的表面。我需要的表面类型在这里显示为一个例子:

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图如下所示:

pic2

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您可以尝试使用着色创建表面图的surfl()函数,将着色更改为插入模式并选择合适的色彩图(粉红色)

surfl(z)
colormap(pink)    % change color map
shading interp    % interpolate colors across lines and faces