GLUPROJECT
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
gluProject
オブジェクト座標系をウィンドウ座標系にマップする
書式
GLint gluProject(
GLdouble objX,
GLdouble objY,
GLdouble objZ,
const GLdouble *model,
const GLdouble *proj,
const GLint *view,
GLdouble* winX,
GLdouble* winY,
GLdouble* winZ )
delim $$
引き数
- 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$ を次のように計算する:
v sup prime ~=~ P ~times~ M ~times~ v
ここで、$P$ は現在の射影行列 proj, $M$ は現在の
モデルビュー行列 model である(どちらも $4 times 4$ 行列で、
列要素が連続の配列となる)。
'$times$' は行列の積を表す。
すると、ウィンドウ座標は次のように算出される:
"winX" ~=~ "view" (0) ~+~ "view" (2) ~*~ (v sup prime (0) ~+~ 1)~/~2
"winY" ~=~ "view" (1) ~+~ "view" (3)~*~(v sup prime (1) ~+~ 1)~/~2 .EN
"winZ" ~=~ (v sup prime (2) ~+~ 1)~/~ 2
関連項目
glGet(3G), gluUnProject(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 関連項目
-
Time: 07:01:13 GMT, January 12, 2009