水曜日, 5月 03, 2006

psetメソッドとrandom関数で丸い虹を作る

ブロッケン現象というのがある。
http://www.geocities.jp/kockspages/kouzan/phenomena.html

山の上から谷底を見た時などに、条件が重なると丸い虹に自分の影が映ったりする。そういえば飛行機からも同じような丸い虹をみたことがある。

psetメソッドのテストのために作った円を描くプログラムをちょっと修正して、この丸い虹を描くプログラムを作ってみた。

虹の色が七色といったのはニュートンで、色の数は最終的にはドレミの音階から七という数字に落ち着いたのだという。
http://ja.wikipedia.org/wiki/%E8%99%B9

この虹色の七色は、配列に入れたRGBの値から参照するようにした。

//psetメソッドとrandom関数で丸い虹を作る
//虹色 1=赤 2=橙 3=黄 4=緑 5=青 6=藍 7=紫
r=配列!作る "255"入れる"255"入れる"238"入れる"000"入れる"000"入れる"025"入れる"224"入れる.
g=配列!作る "000"入れる"178"入れる"255"入れる"255"入れる"157"入れる"000"入れる"000"入れる.
b=配列!作る "000"入れる"000"入れる"000"入れる"033"入れる"255"入れる"255"入れる"255"入れる.

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

輪=100.n=0.
[n=n+1.
角度=0. 半径=輪-(n*7).
 [角度<360]!の間[
  x=半径*cos(角度).
  y=半径*sin(角度).
  c=色!(r!(n)見る)(g!(n)見る)(b!(n)見る)作る.
  [描画! (x+random(8))(y+random(8))(c)(1) pset]! 2 繰り返す.
  角度=角度+1
 ]実行.
]! 7 繰り返す.

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



random関数で微妙に円に座標をずらしてみたのだが、なんかそれっぽく見えないだろうか。