Math 具有贝塞尔曲线的简单二维平面轨迹

Math 具有贝塞尔曲线的简单二维平面轨迹,math,bezier,Math,Bezier,你好,新年快乐 让我从严格的事实开始,而不是在这里写整个场景 这就是我所拥有的: 二维空间中的平面(X,Y) 此飞机必须在二维空间(X,Y)中飞行到的目的地 从4个点(A、B、C、D)生成贝塞尔曲线的贝塞尔曲线类 这就是我需要做的: 当用户单击X',Y'中的空间时,我需要生成一条贝塞尔曲线 让这架飞机飞到那里 以下是一些假设: 众所周知,飞机不能在一个地方旋转,它必须做一些最小的转弯 众所周知,当目的地在飞机前面时,它不会转弯 贝塞尔曲线必须从4个点计算,其中 点A=实际平面位置 点

你好,新年快乐

让我从严格的事实开始,而不是在这里写整个场景

这就是我所拥有的

  • 二维空间中的平面(X,Y)
  • 此飞机必须在二维空间(X,Y)中飞行到的目的地
  • 从4个点(A、B、C、D)生成贝塞尔曲线的贝塞尔曲线类
这就是我需要做的

  • 当用户单击X',Y'中的空间时,我需要生成一条贝塞尔曲线 让这架飞机飞到那里
以下是一些假设:

  • 众所周知,飞机不能在一个地方旋转,它必须做一些最小的转弯
  • 众所周知,当目的地在飞机前面时,它不会转弯

  • 贝塞尔曲线必须从4个点计算,其中

  • 点A=实际平面位置
  • 点B=实际平面位置+实际平面方向*2(所以它向前一点?)
  • C点=需要计算
  • 点D=平面目的地
下面列出了其中几个场景:

问题

  • 如何计算这条贝塞尔曲线,我已经有了点A,D,但我需要这些B,C来使这条曲线正确

  • 我如何描述这个贝塞尔曲线,让我们假设planeA的转弯比planeB小

我差一点就拿到了,但在这种情况下几乎什么都不是,所以我最好在你的帮助下重写一下


谢谢你在这方面的任何帮助,我正在抓挠我的头,发现这不是我想的那么容易。。。还是

您描述的点B(“实际平面位置+实际平面方向”)将非常有效。当平面开始转弯时,将调整沿平面方向走多远

对于点C,将其设置为与点D(目的地)相同将非常有效


至于转弯速度,我不确定你是否能用(三次)贝塞尔曲线得到更多的控制。它们都是关于位置和方向的,没有任何东西可以调整二阶曲率。调整点B可能是一个很好的折衷方案,但它更多地是调整反应时间和路径,而不是调整转弯速度。

是的,但如果我在飞机正后方单击,这仍然不起作用-它将在到达B后在一个位置转弯,然后继续转到C(即D)。古德,这是一门火箭科学吗?你是想用贝塞尔曲线做这件事的人。在我看来,这将变得非常棘手,难以应付所有的案件,也就是说,这可能会使事情变得更难,而不是更容易。也许你可以从飞机最佳转弯速度的圆圈开始,然后是一条直线,当你指向正确的方向时。好的,我会用另一种方法,只计算到目的地的角度,旋转我的飞机,直到它的角度+-等于目的地的角度,然后朝这个方向飞行。发现贝塞尔把这个简单的游戏复杂化了。。