ペンローズタイリングとは、ペンローズが開発した非周期的な図形の敷き詰め方である。
以下のサイトで、ペンローズタイリングの方法と、そのpythonスクリプトが公開されている。
Penrose Tiling Explained
図の描画には、pycairoが使われていて、事前にインストールする必要がある。(pip で普通に入ったので、特に問題はないと思う。)
また、スクリプト内には xrange が使われているが、python3では入っていないので、range に置き換える必要がある。
実際に使って、図を作ってみた。
デフォルトでは色の設定が赤と青だが、自分で色を変えることが出来る。
また図形の細かさも 変数 NUM_SUBDIVISIONS を変更することで調整出来る。
操作として、時計回りに注目する三角形を分割していくのだが、デフォルトでは二つで一組になるように、偶数番目の三角形は奇数番目に鏡映操作を施したものになっている。
その操作を off にして計算したものがこちら。
自分で実際に試せるところが、pythonの魅力だなぁと改めて感じた。