現在地 >> メニュー >>実践編01
Index:実践編01 >> 実践編02


マウスで3次元位置を求める


マウスで3次元位置を求めるには、
  1. クリックした位置のピクセルに関してデプス値を取得
  2. 「gluUnProject()」で3次元位置を計算する

[例]:(x,y)がクリックした位置

	static double modelview[16]; //モデルビュー
	glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
	static double projection[16]; //プロジェクション
	glGetDoublev(GL_PROJECTION_MATRIX, projection);
	static int viewport[4]; //ビューポート
	glGetIntegerv(GL_VIEWPORT, viewport);


	static float z;
	static double objX,objY,objZ;
	//ピクセルのデプス値を取得
	glReadPixels(x,glutGet(GLUT_WINDOW_HEIGHT) - y,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&z);
	//計算
	gluUnProject(x,glutGet(GLUT_WINDOW_HEIGHT) - y ,z,modelview,projection,viewport,&objX,&objY,&objZ);

	std::cout << "(x,y,z) = ("<<objX<<", "<<objY<<", "<<objZ<<")\n"; //出力


サンプルコード >> 実践編01::まとめコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます