早教吧 育儿知识 作业答案 考试题库 百科 知识分享

Radius=effect("Radius")("Slider");Speed=effect("Speed")("Slider");RotationOffset=effect("Rotation")("Angle");//center=[thiscomp.width/2,thiscomp.height/2,0];radius=200;angle=time*Speed+RotationOffset;x=Radius*Math.cos(degreesToR

题目详情
Radius = effect("Radius")("Slider");
Speed = effect("Speed")("Slider");
RotationOffset = effect("Rotation")("Angle");
//
center = [this_comp.width/2,this_comp.height/2,0];
radius = 200;
angle = time * Speed + RotationOffset;
x = Radius * Math.cos(degreesToRadians(angle));
z = Radius * Math.sin(degreesToRadians(angle));
add(center,[x,z,0]);
▼优质解答
答案和解析
提个意见:问这种表达式问题能否说明一下是用在哪个属性里的,要是网上找一堆表达式不告诉你放哪里用,你抓狂不?
还好这个容易猜~画圆形轨迹的表达式
 
第一行:Radius = ……就是连接半径控制器的.中学都学过的,知道了半径和圆心就确定一个圆形了,简单地讲:该图层肯定有个叫 Radius(半径)的控制效果器,该效果器本身不处理图像,只是提供一个让鼠标点的数值,左右拖动来控制大小,让其他表达式来调用这个值.
 

 
(Expreesion Controls 里面的所有效果器都不处理画面,只能当按钮使.不改名就容易混淆控制的作用,如图,名字改成了“半径”)
 
同理第二行连接的数值Speed,就是速度的意思.
第三行连接的数值叫旋转偏移,控制画圆的起始点.
再下一行center = ……是计算圆心的位置(三维空间的一个点,要用两个逗号隔开 [x, y, z] )
这句就是读取本合成的高和宽,然后都除以二,得到画面的中心点坐标.即使后来更改了合成的大小,它会重新计算中心点的位置,不用担心偏移.Z轴纵深指定为原始0点.
radius = 200; 这句暂时用不上,可以删掉
angle = time*XXXXX用时间改变数值,time就是当前帧所在的时间(单位是秒).
例如,要图层每秒转一圈,只要在图层的Rotation属性里加一句:time*360
接下来两句,
x = ……cos……
z = ……sin……
三角函数都还给体育老师了,自己查查吧
最后一句add(center, [x,z,0]);是把前面计算好的center(圆心位置)加上描线点的坐标[x,z,0],得到的就是整个表达式最后的结果了
看了 Radius=effect(...的网友还看了以下: