如何在Matlab中使用坐标位置和半径的阵列可视化多个球体

时间:2014-08-21 20:15:35

标签: matlab plot

我有一个多个球体的位置和半径数组。我试图在一个单独的3D体积图中表达它们,以便我可以看到它们的包装情况。

从Matlab文档中我发现了以下代码。我应该做出哪些改变,以便我们可以为多个球体的位置和半径数组表达它?

 [x,y,z] = sphere;
 figure
 surf(x,y,z)

 hold on
 surf(x+3,y-2,z); % centered at (3,-2,0)
 surf(x,y+1,z-3); % centered at (0,1,-3)

2 个答案:

答案 0 :(得分:4)

您可以使用文件交换中的scatter3sph,它只是scatter3只绘制球体,而不是平面圆圈。它可以表示三个量:两个变量(X和Y)的每个组合的高度(Z),颜色和大小。球体看起来像球形"无论轴缩放。

enter image description here

答案 1 :(得分:0)

我不会使用sphere来显示3D中的几个球形物体,因为它会产生卵形形状 - 需要使用3D中存在问题的纵横比。

我会使用具有不同大小的圆形标记的3D散点图。这是30个球体的一段代码。

pos = rand(30,3);       % position matrix
r = rand(30,1) * 1000;  % radius matrix, scaling is mandatory

scatter3( pos(:,1) , pos(:,2) , pos(:,3) , r , 'fill' )

enter image description here