长方体放球的Matlab算法

来源:互联网 发布:steam有mac游戏吗 编辑:程序博客网 时间:2024/06/06 14:01

Algorithm 1
function plotBall(ball)
figure
hold on
i=1;
q=size(ball);
q=q(1);
while i<=q
b=ball(i,:);
r=b(1);
x0=b(2);
y0=b(3);
z0=b(4);
%下面开始画
[x,y,z]=sphere;
mesh(r*x+x0,r*y+y0,r*z+z0)
i=i+1;
axis equal
end

Algorithm 2

function j=putOrNot(ball,x,y,z,r,a1,a2,b1,b2,c1,c2);

a=size(ball);
b=a(1);
%读取已完成球的信息

% if x-r>=a1 && x+r<=a2 && y-r>=b1 && y+r<=b2 && z-r>=c1 && z+r<=c2
% k=1;
% else
% k=0;
% j=0;
% end
% %判断新球是否在长方体中

% if k==1
R=r*ones(b,1);
X=x*ones(b,1);
Y=y*ones(b,1);
Z=z*ones(b,1);
newBall=[-R,X,Y,Z];
%生成新球信息组
distan=ball-newBall;
%得到球之间的差距
distan=distan.^2;
%计算相应距离

pand=distan(:,1)-distan(:,2)-distan(:,3)-distan(:,4);
%算得距离差

if all(pand<0)
j=1;
else
j=0;
end
% end

原创粉丝点击