Ninja Library - スクリーン関数

njCalcScreen

3D空間上の点の透視投影変換

書式

int njCalcScreen( p, sx, sy )
NJS_POINT3 *p
Float *sx
Float *sy

引数

 3D空間上の点のカメラ座標表現
sx   投影後のx座標
sy   投影後のy座標

戻り値

TRUE   投影結果が描画領域内にある
FALSE   投影結果が描画領域内に無い

解説

指定した3D空間上の点をスクリーンに透視投影し、スクリーン座標を求めます。

3D 空間上の点は、カメラ座標表現で指定します。

結果を*sxと*syで示し、その座標がスクリーン内にあればTRUE、無ければFALSEが戻ります。

なお、スクリーン座標(2D 座標)は、ハードウェア座標のX,Y 成分に一致します。


用例

3次元空間上のカメラ座標が(1000, 1000, 1000)の点をスクリーンに
投影した後のスクリーン座標を求めます。
NJS_POINT3 p;
Float sx, sy;
p.x = 1000.f;
p.y = 1000.f;
p.z = 1000.f;

njCalcScreen(&p, &sx, &sy);
/* Result */
NG
sx : 820.000000, sy : 740.000000

備考

この関数による計算結果にはスクリーン、アスペクト比、ニアクリッピング、ファークリッピング、および描画領域の設定が反映されます。

参照

njInitSystem() グラフィックシステムの初期化
njSetScreen() スクリーンの設定
njSetAspect() スクリーンの縦横比の設定
njClipZ() ニアクリップ/ファークリップの範囲指定

njCalcScreen
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000