sin

 
 
 

返回用弧度指定的角度的正弦。

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;

下图显示了哪些值设定频率倍增、振幅和偏移。

显示可用于创建正弦波形图案的系数的常规等式如下所示: