首页 > 影视项目大揭秘 > 表达式参考03-矢量数学方法 Vector Math

表达式参考03-矢量数学方法 Vector Math

2020年08月04日

矢量数学方法

矢量数学函数是对数组进行运算的全局方法,将其视为数学矢量。与内置 JavaScript 方法(例如 Math.sin)不同,这些方法不与 Math 前缀一起使用。除非另有说明,否则矢量数学方法对维度的要求是宽松的并返回属于最大输入数组对象的维度的值,用零填充缺失的元素。例如,表达式 add([10, 20], [1, 2, 3]) 返回 [11, 22, 3]

add(vec1, vec2)


返回类型:数组。

参数类型:vec1 和 vec2 是数组。

添加两个矢量。


sub(vec1, vec2)


返回类型:数组。 

参数类型:vec1 和 vec2 是数组。

减去两个矢量。


mul(vec, amount)


返回类型:数组。 

参数类型:vec 是数组,amount 是数值。

将矢量的每个元素与数量相乘。


div(vec, amount)


返回类型:数组。 

参数类型:vec 是数组,amount 是数值。

用矢量的每个元素除以数量。


clamp(value, limit1, limit2)


返回类型:数值或数组。

 

参数类型:valuelimit1 和 limit2 是数值或数组。

 

value 的每个组件的值都限定为介于 limit1 和 limit2 相应值的值之间。


dot(vec1, vec2)


返回类型:数值。 

参数类型:vec1 和 vec2 是数组。

返回矢量参数的点(内)积。


cross(vec1, vec2)


返回类型:数组 [2 或 3]。 

参数类型:vec1 和 vec2 是数组 [2 或 3]。

返回 vec1 和 vec2 的矢量叉积。有关更多信息,请参阅数学参考或 JavaScript 指南。


normalize(vec)


返回类型:数组。 

参数类型:vec 是数组。

标准化矢量以使其长度为 1.0。使用 normalize 方法是执行运算 div(vec, length(vec)) 的简便方法。


length(vec)


返回类型:数值。 

参数类型:vec 是数组。

返回矢量 vec. 的长度


length(point1, point2)


返回类型:数值。 

参数类型:point1 和 point2 是数组。

返回两点之间的距离。point2 参数是可选的。例如,length(point1, point2) 与 length(sub(point1, point2)) 一样。

例如,将此表达式添加到摄像机的焦距属性中,从而将焦平面锁定到摄像机的目标点,以便目标点对准焦点:

  length(position, pointOfInterest)


lookAt(fromPoint, atPoint)


返回类型:数组 [3]。

 

参数类型:fromPoint 和 atPoint 是数组 [3]。

 

参数 fromPoint 是您要定向的图层的世界空间中的位置。参数 atPoint 是您要将图层指向的世界空间中的点。返回值可用作“方向”属性的表达式,使图层点的 z 轴指向 atPoint。此方法对摄像机和光照特别有用。如果您对摄像机使用此表达式,请关闭自动方向。例如,聚光灯的方向属性的以下表达式会将光点指向同一合成中的 1 号图层的锚点:lookAt(position, thisComp.layer(1).position)


讲师加盟

明狮网-学习交流QQ群:24903810

VIP看全网课程,系统课程持续更新

免费指导 在线咨询

 

COPYRIGHT © 2018 VIDEO-STUDY.COM ALL RIGHTS RESERVED.

冀ICP备2021010530号-1  技术支持:明狮教育   免责申明

明狮交流群

明狮交流群