我正在处理两个框的碰撞检测,并将速度与 mass 影响一起转移,以便制作方案之后碰撞效果。我目前正在使用INV()
进行矩阵求逆,但 Matlab 会发出警告,指出这可能会变慢,并使用A / b代替INV A*b
,但它没有#39} ; t显示正确的结果,对于我的情景有什么建议,因为我只对碰撞影响第二个框的感兴趣,第二个框最初为速度。
我的代码:
for time=0:dt:tf
i=i+1;
%check for collision
if abs(xB2-xB1)<=3 && collision_count==0
collision_count=collision_count+1;
VB_after_collision=inv(-[mB1 mB2;1 -1])*(0.9*(VB2-VB1));
VB2=VB_after_collision(1);
else
if abs(VB2)>0.005*mB2*9.81*dt %necessary condition for the box to keep moving against fricition
VB2=VB2-0.005*mB2*9.81*dt*sign(VB2);
else
VB2=0;
end
end
xB1=xB1+VB1*dt;
xB2=xB2+VB2*dt;
boxes(xB1,xB2);
end
我目前正在使用VB_after_collision(1)
,但我想在我的方案中只使用此功能。