はじめに
「きらめくスターバースト」は、中心から放射状に光線が発せられているように見える錯視です。実際には、画像には光線は存在せず、特定のパターンの配置によって脳が光線を知覚してしまう現象です。この記事では、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角形の場合は下記のようになります。

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

コメント