Illustratorスクリプト:選択オブジェクトの中心座標を取得するには
お世話になっております。
選択しているオブジェクトの中心座標が、X:30、Y:40だったらという分岐をしたいです。
var sel = app.activeDocument.selection[0];
alert(sel.visibleBounds) ;
これだと上、左、下、右の順番での座標らしいのですが、これを使って計算して中心を取得するという方法しかないんでしょうか?
他にやり方があったら教えていただきたいです。
お世話になっております。
選択しているオブジェクトの中心座標が、X:30、Y:40だったらという分岐をしたいです。
var sel = app.activeDocument.selection[0];
alert(sel.visibleBounds) ;
これだと上、左、下、右の順番での座標らしいのですが、これを使って計算して中心を取得するという方法しかないんでしょうか?
他にやり方があったら教えていただきたいです。
多忙のTen Aさんに代わりまして(勝手に)
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;
ここ、変えっぱなしだと(自分使い用ならいいんですが) 使った人が泣く恐れがあるので、
var coordinateSystemOrg = app.coordinateSystem; //元の設定
app.coordinateSystem = CoordinateSystem.ARTBOARDCOORDINATESYSTEM;
//処理本体
app.coordinateSystem = coordinateSystemOrg;
のように、処理後に元の状態に戻してやるといいです。
return Math.abs((nagasa1 + nagasa2) / 2);
このMath.absは不要かと。
試しに、ルーラー原点あたりに中心がくるように長方形かなんか置いて現状のコードを実行してみるといいです。
単位を換算するには、UnitValueオブジェクトを利用するといいんですが、
return obj * 25.4 / 72;
としても、誤差のない値がとれます。0.3528だと端数が出るかと。
とりあえず以上です。関数もうまく使えていて、全体に見やすくていいと思います。
あ、追記(すみません)
MAINfn以外の4つの関数はMAINfn関数の専用で使うのであれば、MAINfn(){ }のブロック内に書いたほうがいいかなーと思います(ここは個人の感想の範疇です)。
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.