使用三角学在lua中计算3D坐标

我想要使用lua计算3D位置,有一些内置函数和我有用于使玩家向前移动的代码,但我想要让玩家向后移动

local x, y, z = getElementPosition ( localPlayer )
local r = getPedRotation ( localPlayer )
x = x - math.sin ( math.rad ( r ) ) * 1.5
y = y + math.cos ( math.rad ( r ) ) * 1.5
setElementPosition ( localPlayer, x, y, z )
setElementRotation ( localPlayer, 0, 0, r  )

以上解释了,getElementPosition返回三个值,x,y和z... getPedRotation返回一个值,ped的旋转角度(在这种情况下是玩家)localPlayer是玩家,其余部分都很清楚,setElementPosition设置玩家的位置,旋转同样如此...

所以在我看来,以下代码应该可以让玩家向后移动

local x, y, z = getElementPosition ( localPlayer )
local r = getPedRotation ( localPlayer )
x = x + math.sin ( math.rad ( r ) ) * 1.5
y = y - math.cos ( math.rad ( r ) ) * 1.5
setElementPosition ( localPlayer, x, y, z )
setElementRotation ( localPlayer, 0, 0, r  )

不幸的是,它并不起作用,无论我是否将180º添加/减去“r”,它仍然是一样的,脚本是用于MTA圣安地列斯的,因此如果有人可以看到我做错了什么,告诉我会很好,从小事做起,我从中学到很多数学方面的东西。

提前感谢。

点赞