[英]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.