簡體   English   中英

使用3D點繪制光滑表面

[英]Plotting smooth surface using 3D points

這是我需要在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

您可以使用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);

您可以嘗試使用surfl()函數創建帶陰影的曲面圖,將陰影更改為插值模式並選擇合適的顏色圖(粉紅色)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM