上へ

ミュラー・リア―錯視

 

錯視(視知覚図形における物理的な関係と見えの関係が一致しないこと)の一例としてMueller-Lyer illusionがある。これは図1に示すような2本の矢羽の長さに関するものである。

無題.jpg

図1 ミュラー・リア―錯視

 

図1の図は、Visual C++で作成したプログラムMullerLyer.exeを実行すると表示される。プログラムはプログラム名MullerLyer.exeをクリックするとダウンロードあるいは実行できる。実行すると図2のウィンドウが表示される。

 

図2 実行開始時に表示されるウィンドウ。

 

図2のウィンドウにおける「GO」ボタンのクリックで図1の画面となる。キーNを押すと右側の矢羽の長さが短くなり、キーMを押すと長くなる。図1の画面左上の「Show」ボタンを押すと、左右の矢羽の軸の長さがピクセル単位で表示される(図3)。

無題.jpg

図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節「錯視」>で行っている。

 

上へ