Ani*_*eMe 2 javascript math rotation radians lerp
function lerp(start, end, amt) {\n return (1-amt)*start+amt*end\n}\nRun Code Online (Sandbox Code Playgroud)\n这个 lerp 函数与坐标完美配合。我可以轻松地将 X 从 1 调整到 10。
\n但是当涉及到旋转时就会出现问题。物体的旋转以弧度为单位。它可以是从 -3.14 到 3.14。那么让我们旋转我们的对象。从0开始,某一时刻旋转会达到3.14,然后...-3.14。因此,当从 3.14 到 -3.14 进行 lerping 时,对象会进行一次完整的 360\xc2\xba 旋转,(3.14, 2, 1, 0, -1, -2, -3.14),这不好。那么,有人能告诉我如何调整轮换吗?
\n我正在使用 JavaScript。
小智 6
老实说,我不记得这是如何运作的。但是,它有效。
在我的代码中,它用于处理玩家对象的 lerping 旋转以指向鼠标,当指针角度穿过 -3.14 到 3.14 时,此函数可以正确计算跨越间隙的 lerp。带着,嗯,魔法。
function rLerp (A, B, w){
let CS = (1-w)*Math.cos(A) + w*Math.cos(B);
let SN = (1-w)*Math.sin(A) + w*Math.sin(B);
return Math.atan2(SN,CS);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1461 次 |
| 最近记录: |