当该点在半径之内时,向该点移动

时间:2019-02-18 10:35:08

标签: python geometry

作为免责声明,我是Python的新手。

(在graphics.py中)

我在飞机上有两个点。一个点“ a”是一个带有圆圈的圆点。目前,他们看起来与此类似:

enter image description here

假设点“ a”在一条轨迹上移动,这将导致圆接触另一个点。 我的目标是,一旦其他点位于围绕点“ a”的圆的范围内,则“ a”点便开始朝另一点移动:

enter image description here

还应注意,“ a”点是唯一应该移动的点。

最终,我希望这些点能够触及。

我有办法吗?我目前能想到的一个可能的解决方案是让点“ a”移动到另一点所位于的(x,y)坐标,但这将意味着点“ a”不会由于以下原因而移动到另一点圆与另一点接触。

任何帮助,我们将不胜感激!

1 个答案:

答案 0 :(得分:1)

这是一些伪代码

if (a.x-b.x)**2 + (a.y-b.y)**2 <= a.radius**2:
   vec_a_b = b-a  # or you can do this component wise  
   a.velocity = normalized(vec_a_b)*a.velocity.magnitude

这假设点a具有一个速度矢量,该速度矢量编码了当前行进的方向及其速度。
现在您可以使用速度移动a

a.x += a.velocity.x
a.y += a.velocity.y