English
SGL User's ManualPROGRAMMER'S TUTORIAL
戻る進む
PROGRAMMER'S TUTORIAL

11.演算関数


 本章では、SGLがサポートする各種演算用ライブラリ関数の紹介をします。

11-1. 一般的な演算関数

 最初に、一般的な演算関数の紹介を行います。

【FIXED slDivFX ( FIXED a , FIXED b ) ;】
 指定されたパラメータ間での割り算を行います(b/a)。

【FIXED slMulFX ( FIXED a , FIXED b ) ;】
 指定されたパラメータ間での掛け算を行います(a*b)。

【FIXED slSquartFX ( FIXED sqrtfx ) ;】
 符号なし固定小数点(FIXED型)の平方根を返します。

【Uint32 slSquart ( Uint32 sqrt ) ;】
 符号なし整数値の平方根を返します。

11-2. 三角関数

 三角関数に関わる演算関数を紹介します。

【FIXED slSin ( ANGLE angs ) ;】
 指定角(ANGLE型)に対する正弦値を返します。

【FIXED slCos ( ANGLE angc ) ;】
 指定角(ANGLE型)に対する余弦値を返します。

【FIXED slTan ( ANGLE angt ) ;】
 指定角(ANGLE型)に対する正接値を返します。

図11-1 三角関数イメージ

【ANGLE slAtan ( FIXED tx , FIXED ty ) ;】
 指定された方向の角度を返します。

図11-2 “slAtan”イメージ

11-3. 特殊な演算関数

 ここでは、特殊な演算関数を紹介します。

【FIXED slCalcPoint ( FIXED cx , FIXED cy , FIXED cz , FIXED *ret ) ;】
 カレントマトリクスに指定したポイントを掛け合わせ、演算結果をパラメータ“ret”に代入します。

【FIXED slInnerProduct ( VECTOR a , VECTOR b ) ;】
 指定されたパラメータ間での、ベクトルの内積をとります。
図 11-3 に示す戻り値が返されます。

図11-3 ベクトル内積戻り値
┌─● ベクトル内積戻り値 ●───────────────────────────┐
│A(X1,Y1,Z1)*B(X2,Y2,Z2)=X1*X2+Y1*Y2+Z1*Z2│
│                       =Return Value     │
└─────────────────────────────────────────┘

【Uint32 slDec2Hex ( Uint32 val ) ;】
 BCDコードで表される数値を16進コードに変換します。

【Uint32 slHex2Dec ( Uint32 val ) ;】
 16進コードで表される数値をBCDコードに変換します。

【Uint16 slAng2Hex ( ANGLE ang ) ;】
 ANGLEコードで表される角値を16進コードに変換します。
変換された値は、0x000〜0x167の範囲で返されます。

【Uint16 slAng2Dec ( ANGLE ang ) ;】
 ANGLEコードで表される角値をBCDコードに変換します。
変換された値は、0x000〜0x359の範囲で返されます。

【FIXED slAng2FX ( ANGLE ang ) ;】
 ANGLEコードで表される角値をFIXEDコードに変換します。
変換された値は、0.0〜359.99の範囲で返されます。

表11-1 各数値表記法による数値表記例
10進数BCD16進数
 表 記 920x920x5CH

付記 本章に登場したSGLライブラリ関数

 本章では、次表の関数を解説しました。

表11-2 本章に登場したSGLライブラリ関数
関数型
   関 数 名   
     パ ラ メ ー タ    
         機   能         
FIXEDslDivFXFIXED a,FIXED b割り算(a/b)
FIXEDslMulFXFIXED a,FIXED b掛け算(a*b)
FIXEDslSquartFXFIXED sqrtfx符号なし固定小数点の平方根
Uint32slSquartUint32 sqrt符号なし整数の平方根
FIXEDslSinANGLE angs指定角に対する正弦値を返す
FIXEDslCosANGLE angc指定角に対する余弦値を返す
FIXEDslTanANGLE angt指定角に対するタンジェント値を返す
ANGLEslAtanFIXED tx,FIXED ty指定された方向の角度を返す
FIXEDslCalcPointFIXED zx,cy,cz,FIXED *retカレントマトリクスに指定したポイントを掛けて返す
FIXEDslInnerProductVECTOR a,VECTOR bベクトルの内積をとる
Uint32slDec2HexUint32 valBCDコードから16進コードへの変換
Uint32slHex2DecUint32 val16進コードからBCDコードへの変換
Uint16slAng2HexANGLE angANGLEコードから16進コードへの変換
Uint16slAng2DecANGLE angANGLEコードからBCDコードへの変換
FIXEDslAng2FXANGLE angANGLEコードからFIXEDコードへの変換


戻る進む
SGL User's ManualPROGRAMMER'S TUTORIAL
Copyright SEGA ENTERPRISES, LTD., 1997