移动到所述点在半径范围内的点

问题描述 投票:2回答:1

就像免责声明一样,我是Python新手。

(这是在graphics.py中)

我在飞机上有两个点。一点“a”是围绕它的圆圈。目前他们看起来像这样:

enter image description here

假设点“a”正在一条轨迹上移动,该轨迹将导致圆圈触及另一点。我的目标是让一个点“a”开始向另一个点移动,一旦另一个点在围绕点“a”的圆圈范围内,有点像这种情况:

enter image description here

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

最终,我想要点触摸。

有没有办法让我这样做?我现在可以想到的一个可能的解决方案是将点“a”移动到另一个点所在的(x,y)坐标,但这意味着点“a”不会移动到另一个点,因为圆圈与另一个点接触。

任何和所有的帮助表示赞赏!

python geometry
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.