簡體   English   中英

在Matlab中繪制3D雲的表面

[英]Draw surface of 3D cloud in matlab

我有3D點雲。 我需要將它們繪制為表面。 我嘗試使用meshedrid,griddata,分散Interpolant,trisurf-delaunay的變體。 什么都沒有。 我知道這個問題已經討論了很多,但是似乎我不明白一些重要的細節。 我現在擁有的代碼:

load('coords.mat')
figure()
subplot(1,2,1)
plot3(x,y,z,'.')
axis off
view(3)

subplot(1,2,2)
C=gray(numel(x)); % unsuccessful attempt
[~,idx]=sort(z);  %      to have 
C=C(idx,:);       %    illumination
scatter3(x,y,z,50,C,'filled')
axis off
view(3)

產生以下圖像: 在此處輸入圖片說明

你可以幫幫我嗎:

1)找到一種使用曲面功能繪制它的方法。

而且表面上可能有一些點(可能是我的問題)

2)如何去除“隱形”點?

我需要針對不同情況的解決方案,圖片和數據僅作為示例。

Mat文件可以在這里下載。

PS

如果很重要–我獲得這些點的坐標作為隨機貝塞爾曲線的旋轉。

UPDATE

如果上面的數據太大,我將生成另一個包含較少點的集合:

在此處輸入圖片說明

坐標在這里

您從哪里獲得這些數據? 它表示為矢量,但是如果將其整形為矩陣,則可以使用surf函數。 試試這個代碼:

z=reshape(z,100,100);
y=reshape(y,100,100);
x=reshape(x,100,100);
surf(x,y,z)

暫無
暫無

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

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