我正在尝试在After Effects中编写表达式,以显示对象的旋转度。问题是,当元素逆时针旋转时,它不会从360
开始,而是会倒计时到0
。它会显示从0到负数的负数。
顺时针旋转时,它将从0
开始,经过360
后,它将从0
重新开始。
如何以正确的方式解决逆时针旋转?
x = Math.floor(thisComp.layer("Ellipse 2").transform.rotation)
if (x >= 0) x + "°"
if (x >= 360) x%360 + "°"
代码应用于文本图层,将显示元素的正确度数" Ellipse 2"。
答案 0 :(得分:0)
您可以使用以下函数将值转换为正值以确保逻辑正常工作
if (x<0)
flag true;
x = Maths.abs(x)
if flag
x = 360-x
答案 1 :(得分:0)
现在回答。由于360 == 0 mod 360,你想要一个[0,360]的x。 如果参数为负,则模运算符可能返回负值。 你必须为你的编程语言测试它。
我假设-1 % 5 == -1
,因此模运算符不会改变符号。然后
x = Math.floor(thisComp.layer("Ellipse 2").transform.rotation)
if (x >= 0) x%360 + "°"
if (x < 0) x = x%360 + 360 + "°"
应该做的伎俩。 如果模运算符返回正值,则可以省略最后一个语句中的“+ 360”。
答案 2 :(得分:0)
这应该这样做:
r = thisComp.layer("Ellipse 2").transform.rotation;
x = r%360;
if (x<0) x+= 360;
Math.floor(x) + "°";