JavaScript Math (JavaScript 数学方法)组提供了丰富的数学函数和常量,涵盖三角函数、对数、指数、幂运算及基本的数学常量。这些方法在 After Effects 表达式中广泛应用于动画制作、动态效果和几何计算,极大地提升了表达式的灵活性和功能性。

Math.cos(value)

余弦函数。

参数

value :以弧度为单位的角度值(Number)。

返回值 : 返回给定弧度的余弦值(Number)。在 -1 和 1 之间的数值,具有 2π 的周期性。与 sin 函数相位差 π/2。

应用:

可用于水平摆动、平滑循环运动等需要周期性变化的动画效果。

// 示例 1:计算0弧度的余弦值,结果为1
Math.cos(0); // 返回 1

// 示例 2:创建左右摆动的动画效果
amplitude = 100;
frequency = 2;
xPosition = position[0] + amplitude * Math.cos(time * frequency);
[xPosition, position[1]];

//示例 3:让一个图层的透明度在 50% 到 100% 之间循环变化,制造闪烁效果
minOpacity = 50;
maxOpacity = 100;
frequency = 2; // 闪烁速度,每秒闪烁次数
opacity = minOpacity + (maxOpacity - minOpacity) * (Math.cos(time * frequency) + 1) / 2;
opacity;

Math.acos(value)

反余弦函数。

参数

value:介于 -1 和 1 之间的数值(Number)。

返回值 : 返回介于 0 和 π 之间的弧度值(Number) 。

应用:

适用于需要将线性比例转换为精确角度变化的动画,如动态控制图层的旋转角度或方向调整。

// 示例 1:计算0.5的反余弦值,结果为约1.047弧度(60度)
Math.acos(0.5); // 返回 1.0471975511965979

// 示例 2:根据余弦值调整旋转角度
cosValue = Math.cos(time);
rotationAngle = Math.acos(cosValue) * (180 / Math.PI); // 转换为度数rotationAngle;

// 示例 3:动态计算与某值的反余弦,用于缩放动画
scaleFactor = Math.acos(Math.min(value / 100, 1)) * 10;
[scaleFactor, scaleFactor];

Math.tan(value)

正切函数。

参数

value:以弧度为单位的角度值(Number)。

返回值 : 返回一个实数值(Number),具有 π 的周期性。

在 value = π/2 + kπ(k 为整数)处无定义。

应用:

适合快速变化或非线性动画,但需谨慎避免突变点。

// 示例 1:计算π/4弧度的正切值,结果为1
Math.tan(Math.PI / 4); // 返回 1

//示例 2:根据时间生成斜率变化的动画
slope = Math.tan(time);
positionX = slope * 50;
[positionX, position[1]];

//示例 3:创建快速变化的旋转效果,随着时间的增加,旋转速度会迅速增大
rotation = Math.tan(time) * 10;
rotation;

Math.atan( value )

反正切函数。

参数

value:任意实数。

返回值 : 返回介于 -π/2 ~ π/2 之间的弧度值 。

应用:

可用于斜率计算、角度调整,如根据速度动态旋转。

//示例 1:计算1的反正切值,结果为π/4弧度
Math.atan(1); // 返回 0.7853981633974483

//示例 2:将斜率转换为旋转角度
slope = 2;
angleRadians = Math.atan(slope);
angleDegrees = angleRadians * (180 / Math.PI);
angleDegrees;

//示例 3:根据速度调整旋转
velocity = value - valueAtTime(time - thisComp.frameDuration);
rotation = Math.atan(velocity) * (180 / Math.PI);rotation;

Math.atan2( y , x )

二参数反正切函数。

计算从原点到点 (x, y) 的方位角(与 X 轴的夹角),返回弧度。

参数

y:点的 y 坐标(Number)。

x:点的 x 坐标(Number)。

返回值 : 返回 介于 -π ~ π 之间的弧度值(Number)。

应用:

适用于动态旋转、方向计算,如指向目标位置的旋转效果。

//示例 1:计算点(1,1)的方位角,结果为π/4弧度
Math.atan2(1, 1); // 返回 0.7853981633974483

//示例 2:根据目标位置计算旋转角度
target = [thisComp.width/2, thisComp.height/2];
delta = target - position;
angleRadians = Math.atan2(delta[1], delta[0]);
angleDegrees = angleRadians * (180 / Math.PI);
angleDegrees;

//示例 3:动态调整文字朝向
targetPos = thisComp.layer("Target").position;
delta = targetPos - position;
rotation = Math.atan2(delta[1], delta[0]) * (180 / Math.PI);
rotation;

Math.sin( value )

正弦函数。

参数

value:以弧度为单位的角度值。

返回值 : 返回在 -1 和 1 之间的数值,具有 2π 的周期性。

应用:

适合制作周期性循环动画,如上下震动、旋转摆动等。

//示例 1:计算π/2弧度的正弦值,结果为1
Math.sin(Math.PI / 2);

//示例 2:返回 1// 创建上下震动的动画效果
amplitude = 50;
frequency = 2;
yPosition = amplitude * Math.sin(time * frequency);
[position[0], yPosition];

//示例 3:根据正弦波调整透明度
opacity = 50 + 50 * Math.sin(time * 4);
opacity;

“点赞有美意,赞赏是鼓励”