« ■電子浮世絵版画家の東西見聞録[17]新旧サムギョプサルを堪能する旅/HAL_ | index | ■KNNエンパワーメントコラム ボディチェックを簡素化する方法はないか/神田敏晶 »

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

with Ajax Amazon

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

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━ TOKUPRE PR ━
チラシ印刷ポスター印刷新聞折込チラシカタログ印刷冊子印刷
ポストカード印刷巻き三つ折り観音折りなどに対応した印刷サービス
印刷会社はこちらから↓↓↓ 選挙ポスター印刷もあります。
http://www.ddc.co.jp/index.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━ TOKUPRE PR ━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

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

トラックバック

このエントリーのトラックバックURL:

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

back number

Trackbacks

デジクリ出演... (tech tech okdt 2008年12月15日)

来月は12月だし... (area-Bログ 2008年11月10日)

広告を変えるレスポンスCM動画... (福岡デザイン日記 2008年10月01日)

専門用語には必ず「読みがな」を付けてほしい... (M.C.P.C. 2008年07月22日)

T-Time... (あさりの楽天倉庫 2008年07月03日)

[社会]人と関わること... (DTP+印刷営業メモ 2008年06月18日)

【これはひどい】ゴミの有料化は特別なコトではありま... (あかつき@PocketDTP 2008年06月16日)

なんでも面白おかしく書けば良いとは思わない... (InDesign居残り補習室 2008年06月16日)

新しいiMacのレビュー記事... (Mein zweiter Blog 2008年06月03日)

デザイナーという仕事... (大阪のホームページ制作会社リッツ・デザイン・ワークス制作つれづれ 2008年05月28日)

DTPデザイナーは確実にいる... (M.C.P.C. 2008年05月29日)

DTP作業に従事する人... (InDesign居残り補習室 2008年05月29日)

【DTP】「DTPデザイナー」じゃ、ダメですか?... (glad design blog 2.0 2008年06月02日)

[作品配布]ゴールデンウィークまでに****しなく... (Yunyの鉄は、熱いうちに打て。 2007年03月05日)

カレンダーを自動生成したい... (スタジオ・ポットSD 2008年01月17日)

categories

          
Apple Store(Japan)
Apple Store(Japan)
XML FEED