python - 当该点在半径内时向该点移动
问题描述
作为免责声明,我是 Python 新手。
(这是在 graphics.py 中)
我在飞机上有两个点。一个点“a”是一个圆点。目前它们看起来类似于这样:
假设点“a”在一条轨迹上移动,该轨迹将导致圆接触另一点。我的目标是一旦另一个点在围绕点“a”的圆的范围内,就让点“a”开始向另一个点移动,有点像这种情况:
还应该注意,点“a”是唯一被认为在移动的点。
最终,我希望这些要点能够触及。
我有办法做到这一点吗?我目前能想到的一种可能的解决方案是让点“a”移动到另一点所在的(x,y)坐标,但这意味着点“a”不会移动到另一点,因为圆与另一点接触。
任何和所有的帮助表示赞赏!
解决方案
这是一些伪代码
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
推荐阅读
- serialization - Serialization.Runtime.Exception:在解析完成之前遇到流结束
- javascript - Object.entities 过滤器
- angular-material - 使用 AngularMaterial + cdkDrag 将位置重置为原始位置
- rxjs - 有没有更好的方法在第一个完成后调用 api?
- excel - 删除 Excel 中 MATCH 函数标识的行号
- java - 为什么Java代码的输出在“adb”下面,而不是“abd”?
- jquery - 使用 JQuery 显示一个文章元素并同时隐藏其他文章元素
- http - 如果没有连接,Node-Red“http 请求”节点卡在请求中
- mysql - 尽管 where 子句中的列上存在索引,但活动记录查找间歇性变慢
- three.js - Three.js:如何将 3D JSON 模型添加到立方体网格的一个面上