クリエイター手抜きプロジェクト[467]Adobe Illustrator CS6〜CC 2015編 選択した四角形の上辺を選択する/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,600文字)


今回は、選択した四角形の上辺を選択するスクリプトです。このスクリプトを実行すると、四角形の上辺のポイントが選択されます。




// 四角形の辺を選択
function selectRectPoint(d){
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
var sel = selObj[i];
var maxX = Number.NEGATIVE_INFINITY;
var maxY = Number.NEGATIVE_INFINITY;
var minX = Number.POSITIVE_INFINITY;
var minY = Number.POSITIVE_INFINITY;
for(var j=0; j<sel.pathPoints.length; j++){
var x = sel.pathPoints[j].anchor[0];
var y = sel.pathPoints[j].anchor[1];
if (x<minX){ minX = x; }
if (y<minY){ minY = y; }
if (x>maxX){ maxX = x; }
if (y>maxY){ maxY = y; }
}
for(var j=0; j<sel.pathPoints.length; j++){
sel.pathPoints[j].selected = PathPointSelection.NOSELECTION;
}
for(var j=0; j<sel.pathPoints.length; j++){
var x = sel.pathPoints[j].anchor[0];
var y = sel.pathPoints[j].anchor[1];
switch(d){
case "左":
if ((x == minX) && (y == minY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
if ((x == minX) && (y == maxY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
break;
case "右":
if ((x == maxX) && (y == minY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
if ((x == maxX) && (y == maxY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
break;
case "上":
if ((x == minX) && (y == maxY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
if ((x == maxX) && (y == maxY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
break;
case "下":
if ((x == minX) && (y == minY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
if ((x == maxX) && (y == minY)){ sel.pathPoints[j].selected = PathPointSelection.ANCHORPOINT; }
break;
}
}
}
}
selectRectPoint("上");

さすがに上辺だけでは役に立ちにくいので、下辺や左辺なども選択できると便利です。この場合、上記のスクリプトの最終行を以下のように変更します。

●下辺を選択する場合
selectRectPoint("下");

●左辺を選択する場合
selectRectPoint("左");

●右辺を選択する場合
selectRectPoint("右");

また、同時に左辺と下辺を選択したい場合は、以下のように
selectRectPoint(〜) を2つ書きます。

selectRectPoint("左");
selectRectPoint("下");


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

IchigoJamのハードウェア(基板)には、BASICだけでなく、いろいろなプログラムを書き込んで入れておくことができます。これは自分の好きな言語を組み込んだり、OSを組み込むことができる、ということです。

そのうちのひとつがIchigoLatteです。IchigoLatteはJavaScriptが動作する軽量OSです。BASICより高速に動作しますし、ハードウェアも制御できます。

容量的な問題で様々な制限がありますが、JavaScriptを使って手軽にハードウェアを制御できたりゲームが作れるのは、なかなか楽しめます。

・IchigoLatte
http://ichigolatte.shizentai.jp/


・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Premiere Pro & Media Encoder自動化サンプル集
http://www.amazon.co.jp/dp/4802090471/

・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/

・データビジュアライゼーションのためのD3.js徹底入門
http://www.amazon.co.jp/dp/4797368861

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/