■プログラム説明(ソースコード説明)
刺繍のようなジグザグ縫い(?)をスクリプトで処理するには、実際の針と同じような座標を設定していきます。座標は以下のように配列に順次入れていきます。
pData[cnt++] = [i+n2,y-dy+n1];
pData[cnt++] = [i+n2+step,y+dy+n1];
このようにして配列に入れた座標はsetEntirePathの引数として指定することで連続した直線を描かせることができます。
pObj.setEntirePath(pData);
■ソースコード
function setColor(r,g,b)
{
var tmpColor = new RGBColor();
tmpColor.red = r;
tmpColor.green = g;
tmpColor.blue = b;
return tmpColor;
}
redColor = setColor(255,0,0); // 赤色
startX = parseFloat(prompt("開始X座標",0));
endX = parseFloat(prompt("終了X座標",300));
dy = parseFloat(prompt("縫い幅",10));
step = parseFloat(prompt("糸の間隔",8));
diff1 = parseFloat(prompt("縫い幅の誤差",2));
diff2 = parseFloat(prompt("間隔の誤差",2));
y = 0; // Y座標は原点に固定
docObj = activeDocument;
pObj = docObj.pathItems.add();
pData = new Array();
for (cnt=0,i=startX; i<endX; i+=step)
{
n1 = Math.random()*diff1;
n2 = Math.random()*diff2;
pData[cnt++] = [i+n2,y-dy+n1];
pData[cnt++] = [i+n2+step,y+dy+n1];
}
pObj.setEntirePath(pData);
pObj.filled = false; // 塗りなし
pObj.stroked = true; // 線あり
pObj.strokeWidth = 1; // 線幅10ポイント
pObj.strokeColor = redColor; // 線の色を指定(赤色)
■使い方
1:ファイルメニューからスクリプトを実行します。
2:必要な座標や幅などを入力します。
3:1つのパスで刺繍縫いのような線ができあがります。
■ポイント
なし
■実際のスクリプトをダウンロード(sample.js.zip)