0

我有 2 个圆在某个碰撞点和某个碰撞角度下发生碰撞,我使用以下公式计算:

C1(x1,y1) C2(x2,y2) 

并且连接它们的中心的线和x轴之间的角度是

X = arctg (|y2 - y1| / |x2 - x1|) 

我想要的是在与另一个圆圈碰撞的相同角度下平移顶部的圆圈。我的意思是角度 X,我不知道我应该给出什么平移坐标才能进行正确和直接的平移!

4

1 回答 1

0

对于我认为你的意思,这里是如何干净地做到这一点。

在向量中思考。

假设底圆的中心有坐标(x1,y1),顶圆的中心有坐标(x2,y2)。然后定义两个向量

support   = (x1,y1) 
direction = (x2,y2) - (x1,y1) 

现在,两个中心之间的线由参数表示完全描述

line = support + k*direction

中的k任何值(-inf,+inf)。在最初的时候,代k=1入上面的等式确实给出了顶圆的坐标。在稍后的某个时间t, 的值k将会增加,并且k在等式中替换该新值将给出顶部圆中心的新坐标。

k价值增加多少t等于圈子的速度,我完全由你决定:)

这样做,您永远不需要弄乱任何角度和/或坐标变换等。它甚至可以在 3D 中工作(只要您在z各处添加 - 坐标)。

于 2012-10-30T15:06:48.353 回答