我有两台雷达。范围从0到6.28319。当我取A的时候,我想让它变成B的补间,我想让它走的距离最短。举例说明。
如果A是1,B是5。它的补间速度更快,通过1,.9,.8,.7,.6,.5,.4,.3,.2,.1,0,6.18...以此类推,直到它达到5。
你知道如何使用Tween.js并实现这一点吗?
发布于 2018-07-19 23:29:43
我想不出来,但在我的情况下,这是可行的。因为如果它超出了范围就会出问题。
这个就行了
A是1B是5//目标
1+ 6.28319 = 7.28319,所以它将从7.28319开始,补间回到5。我超出了我的范围,但在我的情况下,可以走这条捷径,因为我使用的是three.js,它知道7.28319是什么。
let azimuthalRad = ((controls.getAzimuthalAngle() % 6.28319) + 6.28319) % 6.28319; //A
let goalYawRad = THREE.Math.degToRad(trackObjects[trackCount - 1].yaw + 30); //B
let startTweenRad = 0;
if (azimuthalRad <= goalYawRad) {
if (goalYawRad - azimuthalRad <= Math.abs(goalYawRad - (azimuthalRad + 6.28319))) {
startTweenRad = azimuthalRad;
}
else {
startTweenRad = (azimuthalRad + 6.28319);
}
}
else {
if (azimuthalRad - goalYawRad <= Math.abs(goalYawRad - (azimuthalRad - 6.28319))) {
startTweenRad = azimuthalRad;
}
else {
startTweenRad = azimuthalRad - 6.28319;
}
}https://stackoverflow.com/questions/51423960
复制相似问题