クリエイター手抜きプロジェクト[96]Illustrator CS/CS2編 数学曲線を描く
── 古籏一浩 ──

投稿:  著者:


Illustratorには、螺旋や円弧などの曲線が標準で描けるようにツールで用意されています。直線でも曲線でも難なく描けそうですが、サインカーブなど数式に従ったものは、スクリプトを使わないときれいに描くことができません。数式で示される曲線に対しては、やはりスクリプトの方がはるかに便利です。シンプルなところでサインカーブを描くスクリプトが以下のものです。


redColor = activeDocument.swatches["レッド"].color;
w = 1; // 横の拡大率
h = 100; // 縦の拡大率
step = 5; // 計算上の間隔
startP = 0; // 開始角度
endP = 360; // 終了角度
passData = [];
count = 0;
for (i=startP; i< =endP; i+=step)
{
r = i * Math.PI / 180;
y = Math.sin(r) * h;
x = i * w;
passData[count++]= [x, y];
}
docObj = activeDocument;
pObj = docObj.pathItems.add();
pObj.setEntirePath(passData);
pObj.filled = false; // 塗りなし
pObj.stroked = true; // 線あり
pObj.strokeWidth = 3; // 線幅3ポイント
pObj.strokeColor = redColor; // 線の色を指定(赤色)

スウォッチカラーを指定しているので、色を変更したい場合には一番最初の行で指定しているスウォッチ名を変更してください。

横に書いてあるコメントが、変数/値の内容を示しています。ひとつ注意しないといけないのは、計算上の間隔です。曲線を描くと書いていますが、実際には直線を描いています。細かい点と点を直線で結ぶ事で曲線を表現しているのです。このため、間隔が粗いと曲線ではなくカクカクした感じになってしまいます。

きれいな曲線にしたい場合には、stepの値を小さくしてください。0.01といった小数値も指定することができます。ただし、あまりに細かくしてしまうと、Illustratorが停止してしまったり極度に遅くなるので注意が必要です。

サインカーブだけでなくコサインカーブや、いろいろな数学曲線を描くことができます。コサインにしたい場合にはMath.sinをMath.cosにしてください。タンジェントの場合はMath.tanです。いくつか組み合わせると面白い曲線を描く事もできます。

y = Math.sin(r) * h;
x = i * w;

y = Math.cos(r) * Math.sin(r) * h;
x = Math.cos(r) * w;

にしてみてください。蝶ネクタイのような感じの曲線が描かれます。数学曲線の計算式などはWebサイト上にたくさんありますので、いろいろ式を変更して描かせてみると面白いでしょう。

【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
Illustratorで数式ボックスなどで数式を入力したら、曲線を描く機能があってもよさそうな気はします。と書いても実際の需要は少なそう。こんなページ作ってみました。
< http://www.openspc2.org/writer/index.html
>
< http://www.openspc2.org/reibun/FinalCutPro5/
>
< http://www.openspc2.org/reibun/AfterEffects7.0/
>


photo
Ajax逆引きクイックリファレンスWeb2.0対応for Windows & Macintosh
古籏 一浩
毎日コミュニケーションズ 2006-03
おすすめ平均 star
starサンプル多いのが良い
starJavaScript初心者にはちょっとわかりづらい

入門 Ajax Ajax 実装のための基礎テクニック Ajaxイン・アクション AJAX Webアプリケーション アイデアブック Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用



photo
改訂第3版 JavaScriptポケットリファレンス Pocket reference
古籏 一浩
技術評論社 2003-05-24
おすすめ平均 star
star良書、しかし「ポケット」は長所でもあり短所
star良書、しかし「ポケット」は長所でもあり短所
star付属CD-ROMなし
star中級者に最適なリファレンス

改訂新版 SQLポケットリファレンス 入門 Ajax オールカラー HTMLポケットリファレンス 改訂第5版 オールカラー  HTML ポケットリファレンス VBScriptポケットリファレンス

by G-Tools , 2006/07/24