![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
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::Cos 関数は、三角関数テーブルを使って、指定した角度の余弦(コサイン)を計算します。
![]() |
注意 |
|---|---|
| 事前に 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
ラジアン区間 [0, FLOAT64_PI / 2] を何分割して三角関数を計算するかを指定します。 分割数を多くすると精度は向上しますが、ヒープ メモリの消費量が増えます。
SFXTrigonometric::Initialize 関数は、高速に三角関数を計算するための三角関数テーブルを作成します。
![]() |
注意事項 |
|---|---|
SFXTrigonometric::Initialize 関数は、以前の作成した三角関数テーブルの内容を破棄します。 | |
SFXTrigonometric::Initialize 関数は、コンストラクタの直後に呼び出します。
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::Sin 関数は、三角関数テーブルを使って、指定した角度の正弦(サイン)を計算します。
![]() |
注意 |
|---|---|
| 事前に SFXTrigonometric::Initialize 関数を呼び出して三角関数テーブルを初期化する必要があります。 | |
Float64 c; SFXTrigonometric tri; tri.Initialize(); // 三角関数テーブルを初期化する c = tri.Sin(FLOAT64_PI / 2); // c = 1; (FLOAT64_PI は円周率)
SFXTrigonometric::Tan 関数は、三角関数テーブルを使って、指定した角度の正接(タンジェント)を計算します。
![]() |
注意 |
|---|---|
| 事前に SFXTrigonometric::Initialize 関数を呼び出して三角関数テーブルを初期化する必要があります。 | |
Float64 c; SFXTrigonometric tri; tri.Initialize(); // 三角関数テーブルを初期化する c = tri.Tan(FLOAT64_PI / 4); // c = 1; (FLOAT64_PI は円周率)
[ public ] Void Terminate(Void);
SFXTrigonometric::Terminate 関数はデストラクタで自動的に呼ばれます。
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|