围绕atan2中的不连续性制作动画

时间:2019-05-09 13:38:21

标签: android android-animation

我正在对圆周围的短线进行动画处理,以使它始终沿其所在圆点的切线指向“正向”。我正在使用(n Android)ValueAnimator进行此操作,向其中提供了使用atan2计算的角度数组。

大约180度时,值atan2返回从正值到负值的翻转。因此,例如,一个点的角度为178,下一个点的角度为-177。

虽然这(显然)没有错,但实际上,动画师按照我希望的方式对我的线进行定向,在过渡时,我的线绕其自身的中心进行了360度全转。我不希望它这样做。

我正在使用的非常精简的版本是

for (int i = 0; i < noOfSamples; ++i) {
    pAngles[i] = Math.toDegrees(Math.atan2(pPointsY[i],
                        pPointsX[i]));
}

除了我在这里提出的这个问题,它确实可以编译并正确运行。在此示例中,忽略了所有外围问题(类型,坐标系,围绕圆的方向)。

虽然我可以预处理数组以保存所需的值,但这似乎是错误的(即太残酷的)解决方案。我想念一些更优雅的东西吗?

0 个答案:

没有答案