[matplotlibで錯視] 6. エーレンシュタイン錯視2

その他

はじめに

エーレンシュタイン錯視は、直線が交差する点に明るい領域(幻の円)が見える現象です。この記事では、matplotlibを使用してエーレンシュタイン錯視の変形版を作成し、その効果と生成方法について説明します。前回の記事で基本的なエーレンシュタイン錯視を紹介しましたが、今回はさらに発展させた形を作成していきます。

コード

解説

モジュールのインポートと図の作成

背景色の設定

fig.patch.set_facecolor(‘white’), ax.patch.set_facecolor(‘white’) で図を含めた画像全体の背景と図の背景を白にしています。

目盛と目盛ラベルを非表示

plt.tick_params(labelbottom=False, labelleft=False)で目盛ラベルを非表示にし、plt.tick_params(color=’white’)で目盛を白にして見えなくしています。

図の枠線の設定

図の枠線は、ax.spines[‘left’].set_visible(False)のようにすることで上下左右の枠線を非表示にできます。

図中の赤い線のプロット

l1とl2は描画したい線の座標を示しています。[ax.plot(l1,(i,i),’r-‘) for i in np.linspace(0,1,3)]では、l1をx軸の座標として、y座標を(0,0)、(0.5,0.5)、(1,1)とする線分をリスト内包表記でプロットしています。同様の方法でl2もプロットしました。さらに、x軸とy軸の座標を入れ替えた線も描画しています。

図中の黒線のプロット

赤線の場合と同様の方法により、黒線もプロットしました。

アスペクト比の調整

デフォルトの設定では、縦横比が等しくないので、ax.axis(‘scaled’)とすることで、xとy軸の表示間隔を揃えました。

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

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

まとめ

この記事では、matplotlibを使用してエーレンシュタイン錯視の変形版を作成する方法を紹介しました。放射状の線分の配置を工夫することで、異なる錯視効果を生み出せることが分かりました。Pythonのmatplotlibライブラリを使えば、様々な視覚的錯覚を簡単にプログラミングで再現できます。このように、プログラミングは視覚心理学の実験や錯視図形の作成にも応用できる強力なツールです。

参考

エーレンシュタイン錯視 - Wikipedia

コメント