Ae 表达式语言引用​:Path Property

  ◆  ◆

Path Property

路径属性和方法

db52ff505e684dda2d764b01af27e61e.png

name 

返回路径名称。

points(t)

获取路径上所有点的 x、y 坐标。返回数偶数组的数组。

图层蒙版路径,点的坐标相对于其左上角的图层的原点。

贝塞尔曲线形状路径,点的坐标相对于路径的形状组的锚点。

笔刷笔触路径,点的坐标与笔触的开始相关,第一个点为 [0,0]。

复制路径时,可以将此方法传递到点参数的 createPath() 方法。

参数 t:采样路径的合成时间(以秒为单位)。缺省值默认为 time。

//返回蒙版路径第一个顶点的坐标
x = mask("蒙版 1").maskPath.points();
x[0]

inTangents(t)

获取路径上所有点的入点手柄的 x、y 坐标。

切点坐标值是相对于父点的坐标的位移。即,值 [0,0] 在入点处不产生弯度。

a4f10196bb6a2f609123e4e798131308.png

outTangents(t)

获取路径上所有点的出点手柄的 x、y 坐标。

切点坐标值是相对于父点坐标的位移,值为 [0,0] 时在引出切点处不产生弯度。

isClosed( ) 

决定路径是开放的还是闭合的。

如果路径是闭合的,则返回 true;如果路径是开放的,则返回 false。

当复制路径时,可以针对 is_closed 参数将此方法传递给 createPath() 方法。

pointOnPath(percentage, t) 

获取路径上任意点的 x、y 坐标,该点表示为路径弧长的百分比。

参数 percentage:默认值为 0.5,即 50%。

第一个点为 0%,最后一个点为 100%。如果路径是闭合的,那么 0% 和 100% 将返回相同的坐标。

弧长的百分比用于确保沿路径的速度一致。除了 0% 和 100% 之外,百分比并非必须与路径上的贝塞尔曲线点对应,比如,对于三个点的路径,第二点并非必须在 50%。

这也意味着对于具有相同点的开放路径和闭合路径,由于闭合路径含有附加长度,因此沿开放路径的百分比将不会返回与闭合路径相同的坐标。

参数 t:默认为 time,指定采样到路径的时间。

thisComp.layer("BG").mask("蒙版 1").maskPath.pointOnPath(0.5)

normalOnPath(percentage, time) 

获取路径上经过计算的任意点的法线的 x、y 坐标。法线的切点坐标值是相对于父点的坐标的位移,值 [0,0] 与父点相同。

曲线上的法线指的是垂直于曲线上一点的切线的直线。

参数 percentage:法线的父点表示为路径的弧长的百分比。默认值为 0.5,即 50%。

normalOnPath() 返回的坐标从其父点开始计算。父点的坐标与 normalOnPath() 坐标之间的直线距离将始终为 1。

参数 t:默认为 time,指定采样到路径的时间。

//可以将返回的坐标相乘以产生更长的法线
myPath = thisComp.layer("BG").mask("蒙版 1").maskPath;
myPath.normalOnPath(0.5)*100

tangentOnPath(percentage, time) 

获取路径上经过计算的任意点的出点手柄的 x、y 坐标。切点坐标值是相对于父点的坐标的位移,值 [0,0] 在出点处不产生弯度。

入点手柄是此值的负值(将 x、y 坐标乘以 -1)。

参数 percentage:切线的父点表示为路径的弧长的百分比。如果用户定义的点也在该弧长百分比的范围内,那么 tangentOnPath() 返回的坐标从其父点开始计算,并且将与 outTangents() 返回的那些坐标有所不同。

父点的坐标与 tangentOnPath() 坐标之间的直线距离将始终为 1。

参数 t:默认为 time,指定采样到路径的时间。

createPath(points, inTangents, outTangents, is_closed) 

根据一组点和切线创建路径对象。

这些点由表示其 x、y 坐标的数偶数组的数组定义。数组的长度必须至少为 1,可以为任意更大的长度。点的入点手柄和出点手柄由表示其 x、y 位移坐标的数偶数组的数组定义。

切线数组的长度必须与点参数完全相同。切点坐标值是相对于父点的坐标的位移,值 [0,0] 在入点处不产生弯度。

可以将路径的 points()、inTangents()、outTangents() 和 isClosed() 方法传递给 points、inTangents、outTangents 和 is_closed 参数来复制路径。可以将同一路径的 points 和 tangents 传递给 createPath(),经过修改即可生成不同结果。

//以下表达式将通过不传递 inTangents 和 outTangents 参数从“蒙版 1”曲线将平滑点转为角点。
myPath = thisComp.layer("BG").mask("蒙版 1").maskPath;
myPath.createPath(myPath.points(),[] ,[] ,false);


//通过传递“蒙版 1”的 points 和 tangents,并通过将 is_closed 设置为 true 来将其转换为闭合路径。
myMask = mask("蒙版 1").path;
myMask.createPath(myMask.points(), myMask.inTangents(), myMask.outTangents(), true);

c35f069dbf6a3fef9a56e3e79d918fdf.png

“有钱的捧个钱场,好看的点下在看”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值