[matplotlibで錯視] 16. きらめくスターバースト – 放射状光線の錯覚を生成する

その他

はじめに

「きらめくスターバースト」は、中心から放射状に光線が発せられているように見える錯視です。実際には、画像には光線は存在せず、特定のパターンの配置によって脳が光線を知覚してしまう現象です。この記事では、Pythonのmatplotlibライブラリを使用して、この興味深い錯視を再現する方法を解説します。

コード

解説

モジュールのインポート

バージョン

七角形を作成する関数

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角形の場合は下記のようになります。

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

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

まとめ

本記事では、matplotlibを使って「きらめくスターバースト」錯視を作成する方法を紹介しました。放射状に配置した線分と特定のパターンによって、実際には存在しない光線が見えるという錯視効果を再現することができました。Pythonとmatplotlibの組み合わせにより、視覚心理学の興味深い現象を簡単にプログラミングで表現できることが分かりました。

参考

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

コメント