◆ ◆ ◆
Path Property
路径属性和方法
name
返回路径名称。
points(t)
获取路径上所有点的 x、y 坐标。返回数偶数组的数组。
图层蒙版路径,点的坐标相对于其左上角的图层的原点。
贝塞尔曲线形状路径,点的坐标相对于路径的形状组的锚点。
笔刷笔触路径,点的坐标与笔触的开始相关,第一个点为 [0,0]。
复制路径时,可以将此方法传递到点参数的 createPath() 方法。
参数 t:采样路径的合成时间(以秒为单位)。缺省值默认为 time。
//返回蒙版路径第一个顶点的坐标
x = mask("蒙版 1").maskPath.points();
x[0]
inTangents(t)
获取路径上所有点的入点手柄的 x、y 坐标。
切点坐标值是相对于父点的坐标的位移。即,值 [0,0] 在入点处不产生弯度。
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);
“有钱的捧个钱场,好看的点下在看”