[英]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文件可以在這里下載。
如果很重要–我獲得這些點的坐標作為隨機貝塞爾曲線的旋轉。
如果上面的數據太大,我將生成另一個包含較少點的集合:
坐標在這里 。
您從哪里獲得這些數據? 它表示為矢量,但是如果將其整形為矩陣,則可以使用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.