[matplotlibで錯視] 9. ムンカー錯視

その他

はじめに

ムンカー錯視とは、帯状の構造内部にある物体が同じ色であるにも関わらず違った色に見える錯視である。このメカニズムは、周りの色と同じ色あいに見えるようになる色の同化効果と、反対の色あいに見えるようになる色の対比効果が関係していることが考えられている。

コード

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

解説

モジュールのインポート

図の生成

表示範囲をx,y軸ともに0から1とする。

左の図の設定

縞模様の作成

ax.axhspan()で等間隔にならぶ帯状の長方形を作成する。0.05*i, と0.025+0.05*iは長方形を生成するy軸方向の値であり、リスト内包表記により指定の回数だけ繰り返す。
xmin、xmaxは長方形を表示するx軸の範囲であり、facecolor=’0’により黒色とした。zorder=2とすることで黒い長方形が最前面にくるようにした。

六角形の表示

CirclePolygonで円を多角形で近似した構造を作ることができる。
resolution = 6とすることで6角形とすることができる。zorder =1とすることで黒い帯よりも下面に表示されるようにした。
ax.add_patch(cp6_l)により、図中に挿入した。

右の図の設定

右図では表示順を black -> lime -> whiteの順とするために、
[ax.axhspan(0.05*i-0.025, 0.05*i,xmin=0.5, xmax=1, facecolor=’1′,zorder=3) for i in range(21)]のように帯状の白い長方形のzorderを3として最前面とした。その次に6角形、その後ろに黒い帯状の長方形となるようにzorderを設定した。

参考

脳がだまされる!? 「錯視」の不思議を探ってみよう(立命館大学文学部・北岡 明佳准教授)2013/10/21 | WAOサイエンスパーク
同じ色なのに違って見える 「ムンカー錯視」画像が話題
拡大すると同じ色と分かる。
matplotlib.axes.Axes.axhspan — Matplotlib 3.1.0 documentation
matplotlib.patches.CirclePolygon — Matplotlib 3.1.0 documentation

コメント