用MATLAB绘制一个三维长方体,并用50个小圆表示在长方体中的随机分布。长方体长宽高为100,80,50,小圆半径为0.1。
代码:
x = 100;
y = 80;
z = 50;
theta = linspace(0,2*pi,50);
phi = linspace(0,2*pi,50);
[theta,phi] = meshgrid(theta,phi);
r = 1;
X0 = r*cos(phi).*cos(theta);
Y0 = r*cos(phi).*sin(theta);
Z0 = r*sin(phi);
% 绘图
X = [0 x x 0
0 x x 0
0 0 0 0
x x x x
0 x x 0]';
Y = [0 0 y y
0 0 y y
0 y y 0
0 y y 0
y y y y]';
Z = [0 0 0 0
z z z z
0 0 z z
0 0 z z
0 0 z z ]';
figure
patch(X,Y,Z,'r');
view(3)
hold on
for ii = 1:50
p = [rand*100 rand*80 rand*50]; % 球心
X2= p(1) + X0;
Y2 = p(2) + Y0;
Z2 = p(3) + Z0;
patch( X2,Y2,Z2,'g' )
end
圆半径0.1太小了,看不出效果,我改成1效果如下: