如何计算具有初始速度的物体的轨迹,使其在给定点停止

时间:2018-06-18 08:45:50

标签: algorithm

该主题来自codingame.com的旧挑战。

游戏区域为 10000 x 8000 单位的矩形。

我的对象有一个位置( objectX objectY )和一个速度向量( speedX speedY )。 我有一个具有位置( objectX objectY )和速度矢量( speedX speedY )的对象。

要移动此物体,我必须显示推力目的地的坐标( thrustX thrustY ),然后显示推力值(范围从 -100) 100 )。

摩擦:在施加推力之前,每个步骤(刻度),先前速度矢量乘以0.9

我想在坐标 targetX targetY (具有给定错误率)的点移动并停止此对象。

如何计算 targetX targetY thrustValue 的列表?

以下示例使用这些数据:

  • 初始objectX和objectY = 1000,2500
  • 初始速度X和速度Y = -500,1000
  • targetX,targetY = 8000,3000
  • thrustX,thrustX = targetX,targetY

basic trajectory

enter image description here

此表使用以下公式:

  • objectX(步骤)= objectX(步骤-1)+ speedX(步骤)
  • objectY(step)= objectY(step-1)+ speedY(step)
  • speedX(步骤)= speedX(步骤-1)* 0.9 + thrustX(步骤-1)
  • speedY(step)= speedY(step-1)* 0.9 + thrustY(step-1)
  • angle(step)= degrees(atan2(targetX(step) - objectX(step); targetY(step) - objectY(step)))
  • thrustX(步骤)= cos(弧度(角度(步)))*推力(步骤)
  • 推力Y(步骤)= sin(弧度(角度(步)))*推力(步骤)

我想找到能让我直接进入目标而不是转身的算法

0 个答案:

没有答案