int njCalcScreen( p, sx, sy )
NJS_POINT3 *p
Float *sx
Float *sy
p 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() ニアクリップ/ファークリップの範囲指定