木曜日, 5月 18, 2006

ドリトルでアート No.04 グラデーションタイル

今日は、色のグラデーションをやってみる。psetメソッドで四角いタイルを4枚作り、ランダムに選んだそのうちの1枚のタイルの色を、明→暗または暗→明に変化させてみる。

タイマーオブジェクトで一定間隔のループを作り出し、タイルの色はrandomo関数で決めている。次々に変化するタイルの色の組み合わせが楽しい。

//グラデーションタイル

描画:pset=[ |x y color size|
ラベル! 作る (size)(size) 大きさ (x)(y) 位置 (color) 色 "" 書く
].

s=200. d=1.
タイル=配列!作る
(描画! (s*-1-d)(s*+1+d)(赤)(s) pset)入れる (描画! (0*+1+d)(s*+1+d)(青)(s) pset)入れる
(描画! (s*-1-d)(0*-1-d)(緑)(s) pset)入れる (描画! (0*+1+d)(0*-1-d)(黄)(s) pset)入れる.
時計=タイマー!作る.

時計![
 n=(random(4)). m=0.r=(random(255)). g=(random(255)). b=(random(255)).
 [r*g*b>127*127*127]!なら[k=-1]そうでなければ[k=+1]実行.[m=m+k.
  タイル!(n) 見る (色!(r+m)(g+m)(b+m)作る) 色.
  []! 5000 繰り返す
 ]! 128 繰り返す
]実行.

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



[]! 5000 繰り返す、の部分は徐々に明るくしたり暗くしたりするための遅延を作り出すループ処理だ。こういうグラデーションのテクニックも、結構CG作品には使えそうだ。