Ninjaライブラリ - ビュー関数

njCalcScreen

点の透視投影

書式

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

引数

*p3D空間上の点座標
*sx投影後のx座標
*sy投影後のy座標

戻値

OK投影結果が描画領域内にある
NG投影結果が描画領域内に無い

解説

指定した3D空間上の点をスクリーンに透視投影し、スクリーン座標を求めます。 結果を *sxと*syで示し、その座標がスクリーン内にあればOKを、なければNGを返します。

用例

3D空間上の点(1000, 1000, 1000)をスクリーンに投影した後のスクリーン座標を求めます。
NJS_POINT3 p;
Float sx, sy;
p.x = 1000.f;
p.y = 1000.f;
p.z = 1000.f;
sbInitSystem( NJD_RESOLUTION_640x480_NTSCNI, NJD_FRAMEBUFFER_MODE_RGB565, 1 );
njCalcScreen(&p, &sx, &sy);
結果
NG
sx = 820.000000, sy = 740.000000

備考

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

参照

sbInitSystem()
njSetScreen()
njSetAspect()
njClipZ()

njCalcScreen
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998