Hatena::ブログ(Diary)

言語ゲーム このページをアンテナに追加 RSSフィード Twitter

とあるエンジニアが嘘ばかり書く日記
ホームページ | blog | twitter

2008-06-22

文脈自由絵画 Context Free Art http://contextfreeart.org

Context Free Art というのを試してみた。

f:id:propella:20080622004438p:image

再帰的な図形を簡単に描く為のプログラムらしい。いっちょやってみるか。例えば丸を描くのはこうする。丸 (CIRCLE) の他にも四角 (SQUARE) と三角 (TRIANGLE) が描ける。描ける図形は http://contextfreeart.org/mediawiki/index.php/Primitive_shapes に表がある。最初の startshape で図形の名前を指定して、その後に使いたい図形を書く。

startshape MARU

rule MARU {
  CIRCLE {}
}

f:id:propella:20080622004439p:image

赤く塗って日の丸にするには {} の中に丸の性質を書く。例えば赤にするために hue (色相 0 〜 360) saturation (彩度 -1 〜 1) brightness (明るさ -1 〜 1) を指定した。数字は相対値になる。他の性質は http://contextfreeart.org/mediawiki/index.php/Shape_adjustments に表がある。

startshape HINOMARU

rule HINOMARU {
  CIRCLE {hue 0 saturation 1 brightness 1}
}

f:id:propella:20080622004440p:image

図形を組み合わせて新しい図形を作れる。MEDAMA で赤と黒の目玉を作って、RYOUME で二つ並べる。ちなみに { x 1 } は左にに一歩ずれるという意味。

startshape RYOUME 

rule RYOUME {
  MEDAMA { x -1 }
  MEDAMA { x 1 }
}

rule MEDAMA {
  CIRCLE {}
  CIRCLE {size 0.5 hue 0 saturation 1 brightness 1}
}

f:id:propella:20080622004441p:image

ここからようやく Context Free っぽくなる。ある図形の定義に、自分自身を使う事が出来る。さっき値が相対値と書いたのは、例えば hue 15 というのは描けば描くほど色相を 15 ずつずらして描くという事。

startshape GURUGURU

rule GURUGURU {
  MEDAMA{}
  GURUGURU { x 1 size 0.9 rotate 40 hue 15}
}

rule MEDAMA {
  CIRCLE {}
  CIRCLE {size 0.5 hue 0 saturation 1 brightness 1}
}

f:id:propella:20080622004442p:image

ここからさらに面白くなる。同じルールを二つ作ると、勝手にどちらか選んでくれる。ルール名の後ろの数字は、選ぶ比率です。

startshape NYORO 

rule NYORO {
  MEDAMA{}
  NYORO { x 1 size 0.8 rotate 20 hue 15}
}

rule NYORO 0.2 {
  NYORO {}
  NYORO { flip 0 }
}

rule MEDAMA {
  CIRCLE {}
  CIRCLE {size 0.5 hue 0 saturation 1 brightness 0.9}
}

このように、気持ち悪い図形が幾らでも作れます。

ちなみに、有名な Aza Raskin 氏による Javascript 版もあります。 http://azarask.in/projects/algorithm-ink

mukaiyamamukaiyama 2008/06/22 19:30 お、これはおもしろそうですね。

odaoda 2008/06/23 03:03 わーむちゃ素敵。フラクタルやん?!今日ハマダさんと旅と人生について話をしててん。そしたらゴーヤはフラクタルなのだ、って事にイキ着いてんで。おもしろいなー。

propellapropella 2008/06/23 07:40 ゴーヤって食べるゴーヤ?あれすごい好物やねん。豆腐と一緒に炒めたやつ最高!


カレンダー
<< 2008/06 >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
最新コメント一覧