该主题来自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
此表使用以下公式:
- 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(弧度(角度(步)))*推力(步骤)
我想找到能让我直接进入目标而不是转身的算法