沿椭圆路径将对象移动设定的距离

2024-03-29 12:45:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能创造出优雅的人工智能。为了计算拐角处的路径,我有一组二维点startend,它们专门以90度角对的形式存在,如下图所示

每个点要么在椭圆的“北”、“南”、“东”或“西”大部分,我可以沿着这些点外推椭圆长轴和短轴的ab

模拟在网格上播放,因此椭圆永远不会旋转——长轴和短轴将与x轴和y轴平行

enter image description here

将点沿椭圆移动一个角度很简单:

x = x + (a * math.cos(angle))  # where a is major axis
y = y + (b * math.cos(angle))  # where b is minor axis

但是,我想控制AI穿过椭圆上两点之间的弧的速度,并最终使它们停在end位置

最后,我需要计算以下各项:

  1. 沿着椭圆的{}和{}之间的{}
  2. 在椭圆上移动distance后点的新位置

问题:

  1. 是否有用于计算上述内容的通用工具/解决方案
  2. 在AI、gamedev或其他实践中是否有更好或更常见的解决方案?例如,我在搜索中看到了贝塞尔曲线

谢谢


元:

我在堆栈交换中发现了类似的问题,但没有一个真正适合我的用例,也没有一个通过提供特定于语言的非python解决方案来回答这个问题

我选择在这里提问,而不是数学堆栈交换,因为我认为在gamedev和其他编程项目中,同样的问题可能会有其他更常见的解决方案


Tags: is堆栈mathcos解决方案where人工智能ai