以前、CSVデータで指定された座標値に点を表示するスクリプトがありましたが、今回はIllustrator CS2で指定座標を線で結ぶものです。以前のものと少し異なり、X座標値が99999の場合、そこで一旦線で結ぶのを中断し、次の座標点から新たに線を描画します。また、線は一本一本バラバラになっており一本のパスで結ばれません。
描画する座標値はCSV形式のテキストファイルで、X,Y座標の順番で定義されたものになります。例えば以下のようなデータになります。
描画する座標値は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
>
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
>
- ActionScript逆引きクイックリファレンス―5&MX&MX2004&8対応 for Windows & Macintosh
- 田中 康博 古籏 一浩 林 拓也
- 毎日コミュニケーションズ 2005-12
- おすすめ平均
- Flash(ActionScript)の開発前の調査にも役立ちます
- 良書です。
- Google Maps API逆引きクイックリファレンス―WEB2.0対応
- 古籏 一浩
- 毎日コミュニケーションズ 2006-09
- おすすめ平均
- 簡単にできます
- ようやく出ました。使えるGoogleMapsリファレンス。
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
by G-Tools , 2007/11/26