« 2009年11月 | メイン | 2010年01月 »

2009年12月 アーカイブ

2009年12月31日

ペンローズ・タイル

ペンローズのタイルというものがある。鋭角72°、鈍角108°の同じ大きさの菱形を

このように分けてできる2種類のタイルで、同じパターンを繰り返すことなく、平面を無限に隙間なく敷き詰められるというものである。繰り返し無しというのがポイントで、例えば2種類のタイルを上の図のように合わせると菱形であるから、その菱形を繰り返し並べると無限に敷き詰められるのは当たり前である。そうではなくて、どの一部分を取っても、全体がそれを繰り返し並べたものではないように、平面を敷き詰めることが可能なのである。

10年以上前に、それを何かで読んで、ボール紙をはさみで切って試したことがある。いつかプログラムを作って自動的に埋めさせてみたいと思って、ついこの間までそのボール紙を取ってあったが、実現しないまま、もういいかと思って捨ててしまった。そしたら、今月、某TV番組でペンローズ・タイルが紹介されたのを見て、過去の思い出が蘇り、日々そのことが気になるようになってしまった。
頂点に並ぶタイルは最大5枚だから、単純に探索する順をランダムにして5手先まで縦型探索するのを繰り返せば良いのではないか…と思って、意図的かつ不可避に1人で過ごすことを選択したクリスマスイブの前日にその選択が正解だったことにするためにトライしたら、うまくいかなかった。やっぱり何十手も先まで読まないとNGとわからない置き方があるのと、それ以前に重なり判定が難しすぎるのである。(実際にイメージバッファに描きながら次に描く所が未使用かどうかを調べる方法でも難しい)

年を越す前になんとか一悶着、いや一段落を…と思ってインターネットを読み漁ったら、プログラむのにうってつけの簡単な方法が見つかった。
Conway's concept of "inflation" and "deflation"

"inflation"は少し面倒なので、"deflation"と切り抜きで繰り返せるようにしてみた。
"deflation"によるペンローズ・タイリングのJavaアプレットの起動ページ
ソースコード
一応、"deflate"と"zoom"を繰り返すと、無限にパターンが作れるはずである。

続きを読む "ペンローズ・タイル" »

About 2009年12月

2009年12月にブログ「Weblog on mebius.tokaichiba.jp」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2009年11月です。

次のアーカイブは2010年01月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35