クリエイター手抜きプロジェクト[149]Illustrator CS/CS2編 CSVデータで指定された座標を線で結ぶ/古籏一浩

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


以前、CSVデータで指定された座標値に点を表示するスクリプトがありましたが、今回はIllustrator CS2で指定座標を線で結ぶものです。以前のものと少し異なり、X座標値が99999の場合、そこで一旦線で結ぶのを中断し、次の座標点から新たに線を描画します。また、線は一本一本バラバラになっており一本のパスで結ばれません。

描画する座標値はCSV形式のテキストファイルで、X,Y座標の順番で定義されたものになります。例えば以下のようなデータになります。


10,20
100,90
90,70
200,220
130,500
400,450
300,100
150,340
20,280
160,180
99999,99999
20,400
50,420
80,500
30,600

このような座標値のデータを読み込みドキュメント上に線を結んで描画します。
スクリプトを実行するとCSVファイルを選択するダイアログが表示されるので、エクセル等で作成したCSVデータを選択します。
あとは自動的に点が描画されます。


docObj = app.activeDocument;
filename = File.openDialog("CSVファイルを指定してください");
lineFlag = false;
if (filename)
{
fileObj = new File(filename);
flag = fileObj.open("r");
if (flag == true)
{
while (!fileObj.eof)
{
pointData = fileObj.readln();
data = pointData.split(",");
if (parseFloat(data[0]) == 99999)
{
lineFlag = false;
continue;
}
if (lineFlag)
{
drawLine(oldX, oldY, parseFloat(data[0]), parseFloat(data[1]));
}else{
lineFlag = true;
}
oldX = parseFloat(data[0]);
oldY = parseFloat(data[1]);
drawPoint(parseFloat(data[0]), parseFloat(data[1]));
}
fileObj.close();
}else{
alert("CSVファイルが開けませんでした");
}
}

function setColor(r,g,b)
{
var tmpColor = new RGBColor();
tmpColor.red = r;
tmpColor.green = g;
tmpColor.blue = b;
return tmpColor;
}

function drawPoint(x, y)
{
var pObj = docObj.pathItems.ellipse(0,0,10,10);
pObj.filled = true; // 塗りあり
pObj.stroked = true; // 線あり
pObj.strokeWidth = 1; // 線幅1ポイント
pObj.fillColor = setColor(255,0,0); // 塗りの色を指定
pObj.strokeColor = setColor(0,0,0); // 線の色を指定
pObj.translate(x,y); // 指定座標に移動
pObj.translate(-5,5); // ○のサイズ分だけ移動
}

function drawLine(x1,y1,x2,y2)
{
var lineObj = docObj.pathItems.add();
lineObj.stroked = true;
lineObj.setEntirePath( [ [x1, y1], [x2, y2] ] );
lineObj.strokeColor = setColor(0,0,200); // 線の色を青に指定
}

スクリプトでは線と●印を表示しますが、●印を表示させたくない場合は

drawPoint(parseFloat(data[0]), parseFloat(data[1]));



// drawPoint(parseFloat(data[0]), parseFloat(data[1]));

に変更してください。
Illustrator CSの場合は、スクリプトはShift JISコードで保存し拡張子を.jsに、CS2の場合はUTF-8コードで保存し拡張子を.jsxにしてください。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >

先週分までのクリエイター手抜きプロジェクトのプログラム&説明を用意してあります。ぜひ活用してください。
< http://www.openspc2.org/projectX/index.html >

以前行なわれたグーグルデベロッパー交流会のときのレポートを書いてみました。まあ、話半分で読んでもらえばよいかと思います。
< http://www.openspc2.org/Google/Mystery/index.html >


photo
ActionScript逆引きクイックリファレンス―5&MX&MX2004&8対応 for Windows & Macintosh
田中 康博 古籏 一浩 林 拓也
毎日コミュニケーションズ 2005-12
おすすめ平均 star
starFlash(ActionScript)の開発前の調査にも役立ちます
star良書です。

Flash逆引きクイックリファレンス 8&MX2004対応for Windows & Macintosh Flash Hacks―プロが教えるテクニック&ツール100選 速習Webテクニック FLASH8 ActionScript 実例サンプル47 (Quick master of web technique) おしえて!!FLASH 8 ActionScript (毎コミおしえて!!シリーズ) 有名クリエイターがこっそり教えるFlash作成のウラ技



photo
Google Maps API逆引きクイックリファレンス―WEB2.0対応
古籏 一浩
毎日コミュニケーションズ 2006-09
おすすめ平均 star
star簡単にできます
starようやく出ました。使えるGoogleMapsリファレンス。

Google Maps API徹底活用ガイド Google Maps Hacks -地図検索サービス徹底活用テクニック- Google Maps APIv2活用リファレンス Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用 PHP×WebサービスAPIコネクションズ



photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 基礎 Ajax + JavaScript 標準DOMスクリプティング JavaScript+DOMによるWebアプリデザインの基礎 初めてのJavaScript―Ajax&DOM対応

by G-Tools , 2007/11/26