返回用弧度指定的角度的正弦。
float sin(float number)
number是需要其正弦的角度(以弧度为单位)。
对于任何直角三角形,角度的正弦为以下比率:
正弦比率仅取决于角度的大小,而不取决于三角形的大小。该固定比率称为角度测量的正弦。
正弦比率是-1和1之间的值。
在稳定增大或减小参数时,sin函数将返回在-1和1之间稳定增大或减小的值。这用于在属性值中创建有节奏的摆动更改。
例如,可以使用sin函数来操纵:
对象的平移属性以创建蛇形运动
身体的比例属性以创建呼吸周期
粒子对象的不透明度或颜色属性以循环颜色或不透明图案
示例 1
float $pi = 3.1415927; sin($pi/2)
返回1,即π/2弧度的正弦。
示例 2
Ball.translateY = sin(Ball.translateX);
该语句将球的translateY属性设定为其translateX属性的正弦。如果沿X轴拖动球,则球的translateY位置将在循环图案中上下移动:
示例 3
若要按上例的路径为球设置动画,请使用以下表达式:
Ball.translateX = time; Ball.translateY = sin(Ball.translateX);
球从原点开始,并按递增的动画时间设定的速率在X方向上移动。其Y 平移按sin函数的返回值循环地上下移动。sin函数使用 translateX 并因而间接使用时间作为其参数。
随着时间从0增加到6.283秒,sin 函数返回的值以细小增量从0更改为1,又更改为-1,最后更改为0。值6.283是π值的2倍。生成的运动类似于水平的S形:
随着时间增加超过 6.283 秒,将为每个 6.283 秒跨度重复相同的 S 形循环。
示例 4
该表达式为球设置具有较大上下摆动的动画:
Ball.translateX = time; Ball.translateY = sin(Ball.translateX) * 2;
通过使 sin (Ball.translateX) 乘以大于 1 的数,可以增加正弦波形图案的振幅。振幅是波形的最小值和最大值之间的距离的一半。
可以通过乘以小于 1 的数(例如,0.5)来减少正弦波形的振幅。
示例 5
该表达式增加正弦波形完成循环的频率:
Ball.translateX = time; Ball.translateY = sin(Ball.translateX * 2);
通过使 Ball.translateX 乘以大于 1 的数,可以增加正弦波形图案的频率。频率是波形进行一个完整的循环所需的时间。
可以通过乘以一个小于 1 的数(例如,0.5)来降低正弦波形的频率。该数称为频率倍增,因为将以该倍增提高(或降低)正弦图案的频率。
示例 6
该表达式使波形图案沿 Y 轴向上偏移:
Ball.translateX = time; Ball.translateY = sin(Ball.translateX) + 2;
通过使sin(Ball.translateX) 加上2,波形图案从Y轴上较高位置开始。当然,也可以减去一个数来使波形图案向 Y 轴上较低位置偏移。
示例 7
以下表达式在单个语句中设定正弦图案的频率倍增、振幅和偏移:
Ball.translateX = time; Ball.translateY = (sin(Ball.translateX * 2) * 2) + 2;
下图显示了哪些值设定频率倍增、振幅和偏移。
显示可用于创建正弦波形图案的系数的常规等式如下所示: