SophiaFramework UNIVERSE 5.3 |
SFXTrigonometric クラスは、三角関数テーブルを使用して、高速に三角関数の計算をするクラスです。
最初に、SFXTrigonometric::Initialize 関数を使用して、ラジアン区間 [0, FLOAT64_PI / 2] (FLOAT64_PI: 円周率) を等分割した値とその余弦(コサイン)で構成される三角関数テーブルを作成します。 そして、SFXTrigonometric::Cos 関数、SFXTrigonometric::Sin 関数、SFXTrigonometric::Sin 関数を使用して、 指定された角度(単位:ラジアン)の余弦(コサイン)、正弦(サイン)、または正接(タンジェント)を高速に計算します。 これらの関数では、内部的に三角関数テーブルを利用しています。
計算頻度とパフォーマンス | |
---|---|
一般に三角関数の計算は時間がかかります。 頻繁に三角関数の計算が必要である場合、SFXTrigonometric クラスを使うとパフォーマンスが改善される可能性があります。 |
計算精度とメモリ使用量 | |
---|---|
ラジアン区間 [0, FLOAT64_PI / 2] ( FLOAT64_PI: 円周率 )の分割数 N を増やすと計算精度は向上しますが、 テーブルに保持する値が増加するので、ヒープ メモリを多く消費します。 (ヒープ メモリの使用量は、N * 8 バイトとなります。) |
三角関数テーブルを分割数 180 で作成して、三角関数の値を計算します。
Float64 x, y; Float64 e = 1.0e-10; // 漸近精度 Float64 pi = 3.14159265358979; // 円周率 SFXTrigonometric tri; tri.Initialize(180, e); // 三角関数テーブルを初期化する x = tri.Cos(pi / 3); y = tri.Sin(pi / 3);
コンストラクタ/デストラクタ |
---|
SFXTrigonometric( Void ) SFXTrigonometric クラスのコンストラクタです。
|
~SFXTrigonometric( Void ) SFXTrigonometric クラスのデストラクタです。
|
パブリック関数 | |
---|---|
Float64 |
Cos(
Float64 param
) 指定された角度の余弦(コサイン)を計算します。
|
static Float64 |
DegreeToGradian(
Float64 param
) 角度の単位を度からグラジアンに変換します。
|
static Float64 |
DegreeToRadian(
Float64 param
) 角度の単位を度からラジアンに変換します。
|
static Float64 |
GradianToDegree(
Float64 param
) 角度の単位をグラジアンから度に変換します。
|
static Float64 |
GradianToRadian(
Float64 param
) 角度の単位をグラジアンからラジアンに変換します。
|
SFCError |
Initialize(
SInt16 division = 90
) 三角関数テーブルを初期化します。
|
static Float64 |
RadianToDegree(
Float64 param
) 角度の単位をラジアンから度に変換します。
|
static Float64 |
RadianToGradian(
Float64 param
) 角度の単位をラジアンからグラジアンに変換します。
|
Float64 |
Sin(
Float64 param
) 指定された角度の正弦(サイン)を計算します。
|
Float64 |
Tan(
Float64 param
) 指定された角度の正接(タンジェント)を計算します。
|
Void |
Terminate( Void ) 三角関数テーブルが使用していたヒープメモリを解放します。
|
[ public, explicit ] SFXTrigonometric(Void);
初期化を行います。 コンストラクタでは三角関数テーブルは生成されません。
三角関数テーブルを作成するには、 SFXTrigonometric::Initialize 関数を呼び出す必要があります。
[ public ] ~SFXTrigonometric(Void);
このデストラクタは、 SFXTrigonometric::Terminate 関数を呼び出して三角関数テーブルが使用していたヒープメモリを解放します。
指定された角度の余弦(コサイン)
この関数は、 三角関数テーブルを使用して、 指定された角度の余弦(コサイン)を計算します。
前提条件 | |
---|---|
事前に SFXTrigonometric::Initialize 関数を呼び出して、 三角関数テーブルを初期化する必要があります。 |
Float64 c; SFXTrigonometric tri; tri.Initialize(); // 三角関数テーブルを初期化する c = tri.Cos(FLOAT64_PI); // c = -1; (FLOAT64_PI は円周率)
変換後の角度(単位: グラジアン)
この関数は、指定された角度の単位を度からグラジアンに変換して返します。
SFXTrigonometric::RadianToGradian | SFXTrigonometric::RadianToDegree | SFXTrigonometric::GradianToRadian | SFXTrigonometric::GradianToDegree | SFXTrigonometric::DegreeToRadian
変換後の角度(単位: ラジアン)
この関数は、指定された角度の単位を度からラジアンに変換して返します。
Float64 n = SFXTrigonometric::DegreeToRadian(180); // n = 3.1415...
SFXTrigonometric::RadianToGradian | SFXTrigonometric::RadianToDegree | SFXTrigonometric::GradianToRadian | SFXTrigonometric::GradianToDegree | SFXTrigonometric::DegreeToGradian
変換後の角度(単位: 度)
この関数は、指定された角度の単位をグラジアンから度に変換して返します。
SFXTrigonometric::RadianToGradian | SFXTrigonometric::RadianToDegree | SFXTrigonometric::GradianToRadian | SFXTrigonometric::DegreeToRadian | SFXTrigonometric::DegreeToGradian
変換後の角度(単位: ラジアン)
この関数は、指定された角度の単位をグラジアンからラジアンに変換して返します。
SFXTrigonometric::RadianToGradian | SFXTrigonometric::RadianToDegree | SFXTrigonometric::GradianToDegree | SFXTrigonometric::DegreeToRadian | SFXTrigonometric::DegreeToGradian
[ public ] SFCError Initialize( SInt16 division = 90 // ラジアン区間 [0, FLOAT64_PI / 2] の分割数(デフォルト値: 90) );
ラジアン区間 [0, FLOAT64_PI / 2] を何分割して三角関数を計算するかを指定します。 分割数を多くすると精度は向上しますが、ヒープ メモリの消費量が増えます。
この関数は、高速に三角関数を計算するための三角関数テーブルを作成します。
division 引数には、ラジアン区間 [0, FLOAT64_PI / 2] を何分割して三角関数を計算するかを指定します。 デフォルトの分割数は 90 です。
注意事項 | |
---|---|
この関数は、以前の作成した三角関数テーブルの内容を破棄します。 従って、この関数内部でエラーが発生した場合、直前のテーブルの内容を復元することはできません。 |
この関数は、 SFXTrigonometric::Cos 関数、 SFXTrigonometric::Sin 関数、 SFXTrigonometric::Tan 関数を呼び出す前に実行する必要があります。 通常、コンストラクタ実行直後に呼び出します。
SFXTrigonometric tri; tri.Initialize(180);
変換後の角度(単位: 度)
この関数は、指定された角度の単位をラジアンから度に変換して返します。
Float64 n = SFXTrigonometric::RadianToDegree(6.2831); // n = 359.99...
SFXTrigonometric::RadianToGradian | SFXTrigonometric::GradianToRadian | SFXTrigonometric::GradianToDegree | SFXTrigonometric::DegreeToRadian | SFXTrigonometric::DegreeToGradian
変換後の角度(単位: グラジアン)
この関数は、指定された角度の単位をラジアンからグラジアンに変換して返します。
SFXTrigonometric::RadianToDegree | SFXTrigonometric::GradianToRadian | SFXTrigonometric::GradianToDegree | SFXTrigonometric::DegreeToRadian | SFXTrigonometric::DegreeToGradian
指定された角度の正弦(サイン)
この関数は、 三角関数テーブルを使用して、 指定された角度の正弦(サイン)を計算します。
前提条件 | |
---|---|
事前に SFXTrigonometric::Initialize 関数を呼び出して、 三角関数テーブルを初期化する必要があります。 |
Float64 c; SFXTrigonometric tri; tri.Initialize(); // 三角関数テーブルを初期化する c = tri.Sin(FLOAT64_PI / 2); // c = 1; (FLOAT64_PI は円周率)
指定された角度の正接(タンジェント)
この関数は、三角関数テーブルを使用して、 指定された角度の正接(タンジェント)を計算します。
前提条件 | |
---|---|
事前に SFXTrigonometric::Initialize 関数を呼び出して、 三角関数テーブルを初期化する必要があります。 |
Float64 c; SFXTrigonometric tri; tri.Initialize(); // 三角関数テーブルを初期化する c = tri.Tan(FLOAT64_PI / 4); // c = 1; (FLOAT64_PI は円周率)
[ public ] Void Terminate(Void);
この関数は、三角関数テーブルが使用していたヒープメモリを解放します。
注意 | |
---|---|
この関数は、SFXTrigonometric::~SFXTrigonometric デストラクタで自動的に呼び出されます。 |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |