You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在脚本中使用Adobe Illustrator的曲率工具生成自然曲线?

用脚本实现类似曲率工具的自然曲线连接

核心思路:Catmull-Rom样条转贝塞尔曲线

Adobe曲率工具的底层逻辑是基于Catmull-Rom样条生成的平滑曲线,这种样条能保证路径点处的连续曲率,和曲率工具的自然效果完全匹配。由于多数绘图API(比如Adobe Illustrator脚本API)仅支持贝塞尔路径,我们可以通过将Catmull-Rom样条转换为三次贝塞尔曲线的方式,在脚本中实现相同效果。

实现步骤

1. 基础转换公式

对于连续的四个点P0, P1, P2, P3,从P1到P2的Catmull-Rom段可转换为一段三次贝塞尔曲线,控制点计算规则如下:

  • 贝塞尔起点:P1
  • 贝塞尔终点:P2
  • 左控制点:P1 + (P2 - P0) / 6
  • 右控制点:P2 - (P3 - P1) / 6

2. 首尾点边界处理

为保证首尾段曲线的平滑性,需要虚拟额外的控制点:

  • 首端虚拟点:2*P0 - P1(基于第一个点和第二个点的反向延伸)
  • 末端虚拟点:2*Pn - Pn-1(基于最后一个点和倒数第二个点的正向延伸)

示例代码(Adobe Illustrator JavaScript)

function createCurvatureToolPath(points) {
    if (points.length < 2) return;

    var doc = app.activeDocument;
    var path = doc.pathItems.add();

    var bezierPoints = [];
    // 初始化首尾虚拟点
    var prevPrev = [2*points[0][0] - points[1][0], 2*points[0][1] - points[1][1]];
    var prev = points[0];

    for (var i = 1; i < points.length; i++) {
        var curr = points[i];
        var next = (i < points.length - 1) ? points[i+1] : [2*curr[0] - prev[0], 2*curr[1] - prev[1]];

        // 计算贝塞尔控制点
        var ctrl1X = prev[0] + (curr[0] - prevPrev[0])/6;
        var ctrl1Y = prev[1] + (curr[1] - prevPrev[1])/6;
        var ctrl2X = curr[0] - (next[0] - prev[0])/6;
        var ctrl2Y = curr[1] - (next[1] - prev[1])/6;

        // 构建贝塞尔路径点数组
        if (i === 1) {
            bezierPoints.push([prev[0], prev[1], 0, 0, 0, 0]); // 起点无控制点
        }
        bezierPoints.push([curr[0], curr[1], ctrl1X, ctrl1Y, ctrl2X, ctrl2Y]);

        // 更新前序点指针
        prevPrev = prev;
        prev = curr;
    }

    // 应用转换后的路径
    path.setEntirePath(bezierPoints);
    path.filled = false;
    path.stroked = true;
}

// 调用示例:传入一组路径坐标点
var samplePoints = [
    [100, 200],
    [200, 300],
    [300, 150],
    [400, 250],
    [500, 100]
];
createCurvatureToolPath(samplePoints);

关键说明

  • 该算法生成的曲线和曲率工具的自然平滑效果完全一致,无需调用官方未开放的曲率工具API。
  • 若需调整曲线贴合度,可修改公式中的分母(比如将6改为更大的数,曲线会更贴近路径点;改小则会更平滑)。

内容的提问来源于stack exchange,提问作者JWBae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:35:07