ミュラー・リア―錯視
錯視(視知覚図形における物理的な関係と見えの関係が一致しないこと)の一例としてMueller-Lyer illusionがある。これは図1に示すような2本の矢羽の長さに関するものである。
図1 ミュラー・リア―錯視
図1の図は、Visual C++で作成したプログラムMullerLyer.exeを実行すると表示される。プログラムはプログラム名MullerLyer.exeをクリックするとダウンロードあるいは実行できる。実行すると図2のウィンドウが表示される。
図2 実行開始時に表示されるウィンドウ。
図2のウィンドウにおける「GO」ボタンのクリックで図1の画面となる。キーNを押すと右側の矢羽の長さが短くなり、キーMを押すと長くなる。図1の画面左上の「Show」ボタンを押すと、左右の矢羽の軸の長さがピクセル単位で表示される(図3)。
図3 軸の長さの表示
図3の画面では矢羽の長さは変えられないが、画面上部に表示されている「GO」ボタンをクリックすると、図1のような画面に戻り、矢羽の長さの調節ができるようになる。矢羽の長さのキー押しによる調節は次のようなキー押しイベントに対するイベント・ハンドラ(メンバ関数)によって行っている。
=======================================================
private: System::Void Form1_KeyDown(System::Object^ sender,
System::Windows::Forms::KeyEventArgs^
e) {
if (ckGO)
{
//
// 右の矢羽の長さの調整
//
switch(
e->KeyCode.ToString()[0]){
case 'M': DrawArrow(
currentS + 1 ); break;
case 'N': if ((xR + currentS - 1) > x0) DrawArrow( currentS - 1 ); break;
default: break;
}
}
}
=========================================================
プログラムのソースファイルは圧縮ファイルMullerLyer.zipにまとめた。ファイル名MullerLyer.zipをマウスの右ボタンでクリックしてダウンロードしたものを、マウスの右ボタンでクリックして表示されるメニュから「解凍」あるいは「展開」を選んで解凍すると、Visual C++などで開くことができる。
プログラムの詳しい説明は<岡本安晴「大学生のための心理学VC++プログラミング入門」勁草書房、第15.2節「錯視」>で行っている。