任意2d环境的方向运动,都可以分解为x,y方向的移动。物体运动单位距离,x,y分量各需要移动多少就是怎么确定运动方向的关键。如下图(w3c坐标系)
从图中可知,
sinθ = vY / 1,
cosθ = vX / 1,
推广到360度也同样适用。
所以, x方向单位移动距离为cosθ,y方向为sinθ。再加上运动参数速度,在代码中可用如下js语句:
vx = Math.cos(angle * Math.PI / 180) * speed
xy = Math.sin(angle * Math.PI / 180) * speed