|
这是我自己编的程序,跟你的思路有点像
function plot3d(k) %k是球的个数
% this function is used to draw the balls in the three dimensions
guliaozuobiao_3d; % 调用脚本M文件(各个球的直角坐标和直径)
nop=30; % 用30个点来控制画球
m=ones(nop,1); % 生成nop*1维的元素为1的矩阵
n=ones(1,nop); % 生成1*nop维的元素为1的矩阵
theta=m*linspace(-pi,pi,nop); % 形成球坐标里的theta方阵,其中linspace(-pi,pi,nop)是在(-pi,pi)之间均匀插值
phi=(linspace(-pi/2,pi/2,nop))'*n; %形成球坐标里的phi方阵,其中linspace(-pi/2,pi/2,nop)是在(-pi/2,pi/2)之间均匀插值
axis([0 150 0 150 0 150]); %设定绘图坐标
for i=1:k
r1=ones(nop)*r(i); %形成球半径方阵
[x1,y1,z1]=sph2cart(theta,phi,r1); %将球坐标值转换到直角坐标下的x,y,z值
x2=x1+x(i);
y2=y1+y(i); % 调整球心坐标
z2=z1+z(i);
mesh(x2,y2,z2); %画球
hold on; %开启figure保留功能,即在同一张figure上画球
grid on; %开启网格功能
axis equal;
end |
-
这就是在483个球的图,我课题要用到的。
|