JavaScript Math (JavaScript 数学方法)组提供了丰富的数学函数和常量,涵盖三角函数、对数、指数、幂运算及基本的数学常量。这些方法在 After Effects 表达式中广泛应用于动画制作、动态效果和几何计算,极大地提升了表达式的灵活性和功能性。
Math.cos(x)
余弦函数。
Math.acos(x)
反余弦函数。
Math.tan(x)
正切函数。
Math.atan(x)
反正切函数。
Math.atan2(y,x)
二参数反正切函数。
Math.sin(x)
正弦函数。
以上三角函数的详情请参阅:
Math.sqrt( value )
平方根函数。
参数:
value:非负数(Number)。
返回值: 当 value 为负时返回 NaN;否则返回其平方根的值(Number)。
应用:
用于尺寸调整、渐变效果,如根据数值变化动态调整图层大小。
// 计算16的平方根,结果为4
Math.sqrt(16); // 返回 4
// 根据值的大小调整尺寸
size = Math.sqrt(value) * 10;
[size, size];
// 动态调整图层不透明度
opacity = Math.sqrt(time) * 20;
opacity;Math.exp( value )
指数函数。
参数:
value:指数值(Number)。
返回值: 以自然常数 e(约2.718)为底,value 次幂的数值(Number)。
应用:
适用于指数增长、加速效果,如模拟物体的爆炸或扩散。
// 计算e的1次方,结果约为2.718
Math.exp(1); // 返回 2.718281828459045
// 创建指数增长的动画效果
initialScale = 100;
growthRate = 0.5;
scale = initialScale * Math.exp(time * growthRate);
[scale, scale];
// 动态调整位置的加速度效果
acceleration = Math.exp(time) * 10;
positionX = acceleration;
[positionX, position[1]];Math.pow( value , exponent )
幂函数。
参数:
value:基数(Number)。
exponent:指数(Number)。
返回值: value 的 exponent 次方的数值(Number)。
应用:
适用于缓动动画、非线性缩放,如实现加速或减速的运动效果。
// 计算2的3次方,结果为8
Math.pow(2, 3); // 返回 8
// 实现缓动动画效果
t = clamp(time, 0, 1);
easedValue = Math.pow(t, 3) / (Math.pow(t, 3) + Math.pow(1 - t, 3));
easedValue;
// 动态调整颜色强度
intensity = Math.pow(value, 2) * 50;
[intensity, intensity, intensity];Math.log( value )
自然对数函数。计算以自然常数 e 为底,x 的自然对数。
参数:
value:正数(Number)。
返回值: 返回 ln(x)(Number)。 当 value 小于等于 0 时返回 NaN。
应用:
适合渐进变化、缓动效果,如逐渐增加的缩放或透明度。
// 计算e的自然对数,结果为1
Math.log(Math.E); // 返回 1
// 根据数值变化调整透明度
maxValue = 100;
opacity = Math.log(value + 1) / Math.log(maxValue + 1) * 100;
opacity;
// 动态调整缩放比例
scaleFactor = Math.log(time + 1) * 20;
[scaleFactor, scaleFactor];Math.abs( value )
绝对值函数。
参数:
value:任意实数(Number)。
返回值: 返回数值 x 的绝对值(Number)。
应用:
用于值限制、确保正值,如限制位置偏移量为正数。
// 计算-5的绝对值,结果为5
Math.abs(-5); // 返回 5
// 确保位移值为正数
displacement = Math.abs(targetPosition - currentPosition);
displacement;
// 动态调整位置,避免负值
delta = value - 50;
adjustedValue = Math.abs(delta);
adjustedValue;Math.round (value )
四舍五入取整函数。
参数:
value:任意实数(Number)。
返回值: 将数值 value 四舍五入到最接近的整数(Number) 。
应用:
适合帧数计算、整数值需求,如在关键帧之间进行整数插值。
// 将4.6四舍五入,结果为5
Math.round(4.6); // 返回 5
// 在关键帧之间插值时使用四舍五入
frameRate = 24;
frameNumber = Math.round(time * frameRate);
frameNumber;
// 动态调整图层顺序
layerIndex = Math.round(value);
layerIndex;Math.ceil( value )
向上取整函数。
参数:
value:任意实数(Number)。
返回值: 返回大于或等于 x 的最小整数(Number) 。
应用:
用于最小值保障、持续时间设定,如确保动画持续时间不低于某个值。
// 将4.1向上取整,结果为5
Math.ceil(4.1); // 返回 5
// 确保最小持续时间
calculatedDuration = 2.3;
duration = Math.ceil(calculatedDuration); // 返回 3
// 动态设置图层的不透明度
opacity = Math.ceil(time * 100) % 100;
opacity;Math.floor( value )
向下取整函数。
参数:
value:任意实数(Number)。
返回值: 返回小于或等于 value 的最大整数(Number) 。
应用:
用于时间分段、循环动画分割,如将时间分割为固定长度的段。
// 将4.9向下取整,结果为4
Math.floor(4.9); // 返回 4
// 在动画中分割时间段
segmentLength = 1;
segment = Math.floor(time / segmentLength);
segment;
// 动态调整旋转角度
rotation = Math.floor(time * 30) % 360;
rotation;Math.min( value1 , value2 ,... )
最小值函数。
参数:
value1, value2, ... :任意数量的数值(Number)。
返回值: 返回一组数中的最小值(Number) 。
应用:
用于值限制、范围控制,如限制位置或缩放不超出设定范围。
// 返回3、7、2中的最小值,结果为2
Math.min(3, 7, 2); // 返回 2
// 限制位置不低于某个值
upperLimit = 100;
minY = Math.min(position[1], upperLimit);
[position[0], minY];
// 动态调整缩放,确保不小于最小值
scale = Math.max(Math.min(value, 150), 50);
[scale, scale];Math.max( value1 , value2 ,... )
最大值函数。
参数:
value1, value2, ... :任意数量的数值(Number)。
返回值:
返回一组数中的最大值(Number)。
应用:
用于值限制、范围控制,如限制位置或缩放不超出设定范围。
// 返回3、7、2中的最大值,结果为7
Math.max(3, 7, 2); // 返回 7
// 限制位置不超过某个值
lowerLimit = 50;
maxX = Math.max(position[0], lowerLimit);
[maxX, position[1]];
// 动态调整不透明度,确保不超过100
opacity = Math.min(value, 100);
opacity;Math.log10( value )
常用对数函数。
参数:
value:任意正数(Number)。
返回值: 返回以 10 为底的 value 的对数值(Number)。当 value 小于或等于 0 时返回 NaN 。
应用:
用于比例调整、动态缩放,如根据数据值调整图层大小。
// 计算100的以10为底的对数,结果为2
Math.log10(100); // 返回 2
// 根据数值范围调整比例
scaleFactor = Math.log10(value + 1) * 10;
[scaleFactor, scaleFactor];
// 动态调整文字大小
textSize = 20 + Math.log10(time + 1) * 10;
textSize;Math.PI
圆周率。 常量,3.1415926。
Math.E
自然对数的底。 常量,2.718。
Math.LOG2E
以 2 为底 e 的对数。 常量,1.442。
Math.LOG10E
以 10 为底 e 的对数。 常量,0.434。
Math.LN2
2 的自然对数。 常量,0.693。
Math.LN10
10 的自然对数。 常量,2.30。
Math.SQRT2
2 的平方根。 常量,1.414。
Math.SQRT1_2
1/2 的平方根。 常量,0.707。
以上数学常量的详情请参阅:
“点赞有美意,赞赏是鼓励”
热门跟贴