:note

スベスベあるか? カクカクだけか?

InDesignの選択オブジェクトが、直線だけか、曲線を含んでいるかを知りたいとき、

曲線の場合は、パスはアンカーポイントとコンロールハンドルの座標たちで構成されています。

直線ならコントロールハンドルは存在せず、 パス上の全てのPathPointのアンカーポイントの座標群はEntirePathと同じになります。

そんな感じでチェックをするのをかいてみた。

//選択オブジェクトが直線だけで構成されていたらマゼンダにする
for(var i=0; i < app.selection.length; i++){
  if(checkCorner (app.selection[i]) == true){
    app.selection[i].strokeColor="Magenta";
  }
}
//直線だけならtrueを
//曲線を含むならfalseを
//返します。
function checkCorner (sel){
  var ePa=sel.paths[0].entirePath;
  var pPo=sel.paths[0].pathPoints.everyItem().anchor;
  if(ePa.toString() == =pPo.toString()){
    //$.writeln("corner");
    return true;
  }
  else{
    //$.writeln("smooth");
    return false;
  }
}
スベスベあるか? カクカクだけか? /images/2010/09/667-corner_or_smooth.png

ちょっとでも曲線が混じっていたら、”false”を返します。

角オプションの角丸などは曲線ではありません。

もしかして、もっと簡単な方法があるのだろうか?

 
comments powered by Disqus
back to top