javascript - JS |如何以弧度为单位旋转?

标签 javascript math rotation radians lerp

function lerp(start, end, amt) {
    return (1-amt)*start+amt*end
}

这个 lerp 函数与坐标完美配合。我可以轻松地将 X 从 1 调整到 10。
但当涉及轮换时就会出现问题。物体的旋转以弧度为单位。它可以是从 -3.14 到 3.14。那么让我们旋转我们的对象。从0开始,某一时刻旋转会达到3.14,然后...-3.14。因此,当从 3.14 调整到 -3.14 时,对象会进行一次完整的 360° 旋转(3.14, 2, 1, 0, -1, -2, -3.14),这并不好。那么,有人能告诉我如何调整轮换吗?
我正在使用 JavaScript。

最佳答案

老实说,我不记得这是如何运作的。但是,它确实有效。

它在我的代码中处理玩家对象的 lerping 旋转以指向鼠标,当指针 Angular 穿过 -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);
}

关于javascript - JS |如何以弧度为单位旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63970781/

相关文章:

java - 在 JPanel 中旋转 BufferedImage

javascript - 如何从一对组成的对象中最优地获取一个键和值?

java - 在java中将递归帕斯卡三角形居中?

objective-c - 如何使用平移手势旋转文本字段?

java - 在java中的客户端服务器套接字中将字符串转换为int

java - 检查点在Java Swing中是否在线

javascript - 路口观察者 polyfill 不工作 Safari

javascript - react-query - 带分页的 getQueryData 和 setQueryData

php - 从 php、javascript 中的 url(网页)解析特定内容