首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环范围tween.js的最短方向上的补间

循环范围tween.js的最短方向上的补间
EN

Stack Overflow用户
提问于 2018-07-19 21:29:37
回答 1查看 35关注 0票数 0

我有两台雷达。范围从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并实现这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2018-07-19 23:29:43

我想不出来,但在我的情况下,这是可行的。因为如果它超出了范围就会出问题。

这个就行了

A是1B是5//目标

1+ 6.28319 = 7.28319,所以它将从7.28319开始,补间回到5。我超出了我的范围,但在我的情况下,可以走这条捷径,因为我使用的是three.js,它知道7.28319是什么。

代码语言:javascript
复制
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;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51423960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档