月曜日, 5月 15, 2006

ドリトルでアート No.01 4つのオブジェによるフェース

昨日まで、ドリトルでCGを描くためのプログラム部品(メソッド)やちょっとしたグラフィックのテクニックを試してみた。今日からはこれを使って、ドリトルでモダンアート(っぽい)作品を作ってみることにする。

最初の作品は、オブジェクト指向ということでこんな名前にしてみた。「4つのオブジェによるフェース」。

人間の目は、三つの点が配置されたものを見ると、顔として認識する(類像現象)という。こんな認知心理学的な現象があるので、岩のくぼみや壁のシミが人の顔に見えたりする。まして、四つの図形がそれなりの位置に配置されていれば、どうしても顔にしか見えないなんていうことになる。

そこで、boxfメソッドとcirclefメソッドを使って、4つのオブジェを画面上に描いてみる。

//4つのオブジェによるフェース

描画:gload=[|file x y| タートル!作る ぺんなし (x)(y) 位置 (file) 変身する].
描画:circlef=[|x y r color| タートル! 作る 消える ペンなし (x)(y)位置 (r)円 (color)塗る].
描画:boxf=[|x1 y1 x2 y2 color|タートル! 作る 消える ペンなし (x1)(y1)位置 ペンあり (x2-x1)(0)移動する (0)(y2-y1)移動する ((x2-x1)*-1)(0)移動する 閉じる 図形にする (color) 塗る].
配色=配列!作る (赤)入れる(青)入れる(黒)入れる.
描画! ("c:\image\canvas.jpg") gload.

lex=-150. ley=+150. ler=50. lef=random(70)-70.
rex=+150. rey=+150. rer=50. ref=random(70)-70.
nsx=+000. nsy=-050. nsh=40. nsw=20. nsf=random(80)-80.
msx=+000. msy=-150. msh=10. msw=60. msf=random(80)-80.

オブジェ1=描画! (lex+lef)(ley+lef)(ler+lef/2)(配色!(random(3))見る) circlef.
オブジェ2=描画! (rex+ref)(rey+ref)(rer+ref)(配色!(random(3))見る) circlef.
オブジェ3=描画! (nsx-nsw)(nsy+nsh+nsf)(nsx+nsw)(nsy-nsh)(配色!(random(3))見る) boxf.
オブジェ4=描画! (msx-msw)(msy+msh+msf)(msx+msw)(msy-msh)(配色!(random(3))見る) boxf.

//--------- ここまで ----------



random関数を使って、微妙に大きさや位置、色を変えているので、実行!ボタンを押す度に違う表情?の顔ができあがる。最後の行をコメントにして、3つの図形でやっても面白い。