[matplotlibで錯視] 16. きらめくスターバースト

その他

はじめに

中心から放射状に光線が発せられているように見える「きらめくスターバースト」錯視をmatplotlibで作成して表示する。

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

バージョン

七角形を作成する関数

RegularPolygonを使って多角形を作成する。numVerticesで何角にするかを選択でき、radiusで半径、orientationで向き、lwで線の太さを調整できる。ここでは角を7とし、半径、向きと線の太さを調整できる関数を作成する。

図の作成

figsize=(5,5)で縦横比の等しい図を作成する。

表示範囲の設定

軸の非表示と背景色の設定

set_facecolorで背景色を設定する。
spines.top.set_visible(False)で上軸を非表示にできる。bottom, left,rightについても同様にする。
tick_paramsのlabelleftなどをFalseとすることでラベルを非表示にすることができる。

軸の非表示と背景色の設定

make_7kaku(9,0,5)のようにして、半径9, 角度0,線幅5の7角形を作成し、ax.add_artist()で図中に追加する。複数の7角形を同様の手法で追加すると下のような錯視が得られる。

9角形の場合

9角形の場合は下記のようになる。

参考

あるはずのない光線が見える新たな錯視が報告される
同じ色のはずなのに違う色に見えるといった、視覚による錯覚を「錯視」と呼びます。これまでにさまざまな幾何学的錯視が報告されていますが、新たに、「光線を放っているように見える幾何学」の存在が発表されました。
matplotlib.patches.RegularPolygon — Matplotlib 3.4.3 documentation
matplotlib.axes.Axes.set_facecolor — Matplotlib 3.4.3 documentation

コメント