GLUPROJECT(3G)

名前
gluProject オブジェクト座標系をウィンドウ座標系にマップする

書式
GLint gluProject( GLdouble objX,
	GLdouble objY,
	GLdouble objZ,
	const GLdouble *model,
	const GLdouble *proj,
	const GLint *view,
	GLdouble* winX,
	GLdouble* winY,
	GLdouble* winZ )

引き数

objX, objY, objZ
    オブジェクト座標を指定する。

model
    現在のモデルビュー行列を指定する(glGetDoublev 関数で得られる形式)。

proj
    現在の射影行列を指定する(glGetDoublev 関数で得られる形式)。

view
    現在のビューポートを指定する(glGetIntegerv 関数で得られる形式)。

winX, winY, winZ
    算出されたウィンドウ座標が返される。

説明
gluProject は指定されたオブジェクト座標を、 model, proj, view を使ってウィンドウ座標に変換する。 変換結果は winX, winY, winZ に格納される。 返り値 GL_TRUE は成功を表し、返り値 GL_FALSE は 失敗を表す。

座標を計算は次のように行う。 まず $v ~=~ ("objX", "objY", "objZ", 1.0)$ で 4 行 1 列の行列を作る。 次に gluProject で $v sup prime$ を次のように計算する:

ここで、$P$ は現在の射影行列 proj, $M$ は現在の モデルビュー行列 model である(どちらも $4 times 4$ 行列で、 列要素が連続の配列となる)。 '$times$' は行列の積を表す。

すると、ウィンドウ座標は次のように算出される:

関連項目
glGet, gluUnProject