将网格球体转换为点云和背面

时间:2017-12-14 22:09:58

标签: matlab surface

我在matlab中遇到表面生成问题。下面是小代码。这段代码看起来很废话,但如果它能工作,我会很满意我的主要代码:)。

% create gridded 3D object
[X Y Z]=sphere(1000); 
subplot(1,2,1);
sphere(50) % just for example
% transform it to 3D cloud
X=X(:);
Y=Y(:);
Z=Z(:);
idx=randperm(numel(X),10^3);
X=X(idx);
Y=Y(idx);
Z=Z(idx);
% try to restore surface
F = scatteredInterpolant(X,Y,Z);
[gX,gY]=ndgrid(linspace(min(X),max(X),100),...
    linspace(min(Y),max(Y),100));
gZ=F(gX,gY);
subplot(1,2,2)
surface(gX,gY,gZ)

enter image description here

问题是:如果我有网格数据,我可以绘制球体(左图),如果我的数据只是Nx3数组,球体上有一些随机点的坐标我有右图。

我有类似问题already,但数据组织得很好。你能帮我这个吗?如果你有其他语言或OpenGL的解决方案,欢迎你!

0 个答案:

没有答案