我有2个圆圈碰撞在某个碰撞点和某个碰撞角度下,我使用这个公式计算出来:
C1(x1,y1) C2(x2,y2)
和它们的中心和x轴相交的线之间的角度是
X = arctg (|y2 - y1| / |x2 - x1|)
我想要的是将圆圈在与另一个圆相撞的相同角度下翻转到顶部。我的意思是角度X,我不知道我应该为正确和直接的平移提供什么样的平移坐标!
答案 0 :(得分: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
的{{1}}增加多少等于圈子的速度,我完全由你决定:)
这样做,您永远不需要处理任何角度和/或坐标转换等。它甚至可以在3D中工作(前提是您添加t
- 坐标无处不在)。