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

njCalcScreen

3D空間上の点をスクリーンに透視投影した後のスクリーン座標を求める

書式

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

引数

*p   3D空間上の点座標
*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;
njInitSystem( NJD_RESOLUTION_640x480_NTSCNI,
	NJD_FRAMEBUFFER_MODE_RGB565, 1 );
njCalcScreen(&p, &sx, &sy);

結果
NG
sx = 820.000000, sy = 740.000000

備考

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

参照

njInitSystem()
njSetScreen()
njSetAspect()
njClipZ()

njCalcScreen
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999