长方体放球的Matlab算法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值