TNB Library
クラス | 型定義 | 関数
単位付き値関係

クラス

class  CAbstractUnit
 単位管理抽象クラス [詳解]
 
class  CValueUnitT< U >::CCode
 単位コード管理クラス [詳解]
 
class  CEarthCoordinates
 地球座標(緯度,経度)管理クラス [詳解]
 
class  CPfUnit
 接頭単位管理クラス [詳解]
 
class  CUnionValueUnit
 UNION 単位付値管理クラス [詳解]
 
class  CUnitAcceleration
 単位管理(加速度)クラス [詳解]
 
class  CUnitAmpere
 単位管理(電流)クラス [詳解]
 
class  CUnitArea
 単位管理(面積)クラス [詳解]
 
class  CUnitCubic
 単位管理(体積)クラス [詳解]
 
class  CUnitDegree
 単位管理(角度)クラス [詳解]
 
class  CUnitDensity2
 単位管理(面積密度)クラス [詳解]
 
class  CUnitDensity3
 単位管理(体積密度)クラス [詳解]
 
class  CUnitDistance
 単位管理(距離)クラス [詳解]
 
class  CUnitDummy
 単位管理(ダミー)テンプレートクラス [詳解]
 
class  CUnitFlux
 単位管理(流量)クラス [詳解]
 
class  CUnitFrequency
 単位管理(周波数)クラス [詳解]
 
class  CUnitParDummy
 単位管理(Par用ダミー)クラス [詳解]
 
class  CUnitPressure
 単位管理(圧力)クラス [詳解]
 
class  CUnitRatio
 単位管理(割合)クラス [詳解]
 
class  CUnitSpeed
 単位管理(速度)クラス [詳解]
 
class  CUnitTemperature
 単位管理(温度)クラス [詳解]
 
class  CUnitTime
 単位管理(時間)クラス [詳解]
 
class  CUnitTime2
 単位管理(時間^2)クラス [詳解]
 
class  CUnitVolt
 単位管理(電圧)クラス [詳解]
 
class  CUnitWeight
 単位管理(重量)クラス [詳解]
 
class  CValueParT< U1, U2 >
 汎用管理クラス [詳解]
 
class  CValueParUnitT< U1, U2, EX >
 単位付値管理テンプレートクラス [詳解]
 
class  CValueUnitT< U >
 単位付値管理テンプレートクラス [詳解]
 
struct  TUnitParam
 単位情報テーブル型 [詳解]
 

型定義

typedef CValueParUnitT< CUnitDistance, CUnitTime2, CUnitAccelerationCValueAcceleration
 加速度管理クラス [詳解]
 
typedef CValueUnitT< CUnitAmpereCValueAmpere
 電流管理クラス [詳解]
 
typedef CValueUnitT< CUnitAreaCValueArea
 面積管理クラス [詳解]
 
typedef CValueUnitT< CUnitCubicCValueCubic
 体積管理クラス [詳解]
 
typedef CValueUnitT< CUnitDegreeCValueDegree
 角度管理クラス [詳解]
 
typedef CValueParUnitT< CUnitWeight, CUnitArea, CUnitDensity2CValueDensity2
 面積密度管理クラス [詳解]
 
typedef CValueParUnitT< CUnitWeight, CUnitCubic, CUnitDensity3CValueDensity3
 体積密度管理クラス [詳解]
 
typedef CValueUnitT< CUnitDistanceCValueDistance
 距離管理クラス [詳解]
 
typedef CValueParUnitT< CUnitCubic, CUnitTime, CUnitFluxCValueFlux
 流量管理クラス [詳解]
 
typedef CValueUnitT< CUnitFrequencyCValueFrequency
 周波数管理クラス [詳解]
 
typedef CValueUnitT< CUnitDummyCValueNonUnit
 単位なし管理クラス [詳解]
 
typedef CValueUnitT< CUnitPressureCValuePressure
 圧力管理クラス [詳解]
 
typedef CValueUnitT< CUnitRatioCValueRatio
 割合管理クラス [詳解]
 
typedef CValueParUnitT< CUnitDistance, CUnitTime, CUnitSpeedCValueSpeed
 速度管理クラス [詳解]
 
typedef CValueUnitT< CUnitTemperatureCValueTemperature
 温度管理クラス [詳解]
 
typedef CValueUnitT< CUnitTimeCValueTime
 時間管理クラス [詳解]
 
typedef CValueUnitT< CUnitTime2CValueTime2
 時間^2管理クラス [詳解]
 
typedef CValueUnitT< CUnitVoltCValueVolt
 電圧管理クラス [詳解]
 
typedef CValueUnitT< CUnitWeightCValueWeight
 重量管理クラス [詳解]
 

関数

CValueArea CalcCircleArea (const CValueDistance &r)
 [計算] 円面積計算 (π × 半径 × 半径) [詳解]
 
CValueDistance CalcCircleDistance (const CValueDistance &r)
 [計算] 円周囲長計算 (2 × π × 半径) [詳解]
 
CValueDegree CalcDegreeAverage (const CValueDegree &d1, const CValueDegree &d2, double r1=1.0, double r2=1.0)
 [計算] 角度の平均計算. [詳解]
 
CValueDegree CalcDegreeAverage (size_t size, const CValueDegree *pDegs)
 [計算] 角度の平均計算. [詳解]
 
CValueDegree CalcDegreeDifference (const CValueDegree &d1, const CValueDegree &d2)
 [計算] 角度の開き計算. [詳解]
 
CValueArea CalcEllipseArea (const CValueDistance &x, const CValueDistance &y)
 [計算] 楕円面積計算 (π × 水平半径 × 垂直半径) [詳解]
 
CValueDistance CalcEllipseDistance (const CValueDistance &x, const CValueDistance &y)
 [計算] 楕円周囲長計算 (π × √( 2 (水平半径^2 + 垂直半径^2)) [詳解]
 
CValueDistance CalcEllipseDistance_t2 (const CValueDistance &x, const CValueDistance &y)
 [計算] 楕円周囲長計算 (type2) [詳解]
 
CValueDistance CalcEllipseDistance_t3 (const CValueDistance &x, const CValueDistance &y)
 [計算] 楕円周囲長計算 (type3) [詳解]
 
CValueDistance CalcRightTriangleHeight (const CValueDistance &di, const CValueDegree &de)
 [計算] 直角三角形の高さ計算 [詳解]
 
CValueDistance CalcSlantingDistance (const CValueDistance &x, const CValueDistance &y)
 [計算] 斜め距離計算 (√(水平距離^2 + 垂直距離^2)) [詳解]
 
CValueArea CalcTriangleArea (const CValueDistance &x, const CValueDistance &y)
 [計算] 三角面積計算 (底辺 × 高さ ÷ 2) [詳解]
 
CRealNumber cos (const CValueDegree &d)
 [計算] cos (値 = cos(角度)) [詳解]
 
CRealNumber cosh (const CValueDegree &d)
 [計算] cosh (値 = cosh(角度)) [詳解]
 
template<typename T >
DWORD GetUnitKindCode (const T &t)
 [取得] 単位種コード取得 [詳解]
 
template<typename T >
CStr GetUnitKindString (const T &t)
 [取得] 単位種文字列取得 [詳解]
 
CValueDegree MakeDegree (BYTE dd, BYTE mm, double ss)
 [計算] 角度(度,分,秒)計算. [詳解]
 
CValueDegree MakeDegree (int dd, int mm=0, double ss=0.0)
 [計算] 角度(度,分,秒)代入. [詳解]
 
CValueSpeed operator* (const CValueAcceleration &a, const CValueTime &t)
 [計算] 掛算 (速度 = 加速度 × 時間) . [詳解]
 
CValueCubic operator* (const CValueArea &a, const CValueDistance &d)
 [計算] 掛算 (体積 = 面積 × 距離) [詳解]
 
CValueCubic operator* (const CValueDistance &d, const CValueArea &a)
 [計算] 掛算 (体積 = 距離 × 面積) [詳解]
 
CValueArea operator* (const CValueDistance &d1, const CValueDistance &d2)
 [計算] 掛算 (面積 = 距離 × 距離) [詳解]
 
CValueAcceleration operator* (const CValueFrequency &f, const CValueSpeed &s)
 [計算] 掛算 (加速度 = 周波数 × 速度) . [詳解]
 
CRealNumber operator* (const CValueFrequency &f, const CValueTime &t)
 [計算] 掛算 (値 = 周波数 × 時間) [詳解]
 
CValueAcceleration operator* (const CValueSpeed &s, const CValueFrequency &f)
 [計算] 掛算 (加速度 = 速度 × 周波数) . [詳解]
 
CValueSpeed operator* (const CValueTime &t, const CValueAcceleration &a)
 [計算] 掛算 (速度 = 時間 × 加速度) . [詳解]
 
CRealNumber operator* (const CValueTime &t, const CValueFrequency &f)
 [計算] 掛算 (値 = 時間 × 周波数) [詳解]
 
CValueTime2 operator* (const CValueTime &t1, const CValueTime &t2)
 [計算] 掛算 (時間^2 = 時間 × 時間) [詳解]
 
CValueTime operator/ (const CRealNumber &v, const CValueFrequency &f)
 [計算] 割算 (時間 = 値 ÷ 周波数) [詳解]
 
CValueFrequency operator/ (const CRealNumber &v, const CValueTime &t)
 [計算] 割算 (周波数 = 値 ÷ 時間) [詳解]
 
CValueSpeed operator/ (const CValueAcceleration &a, const CValueFrequency &f)
 [計算] 割算 (速度 = 加速度 ÷ 周波数) . [詳解]
 
CValueDistance operator/ (const CValueArea &a, const CValueDistance &d)
 [計算] 割算 (距離 = 面積 ÷ 距離) [詳解]
 
CValueFlux operator/ (const CValueCubic &c, const CValueTime &t)
 [計算] 割算 (流量 = 体積 ÷ 時間). [詳解]
 
CValueSpeed operator/ (const CValueDistance &d, const CValueTime &t)
 [計算] 割算 (速度 = 距離 ÷ 時間). [詳解]
 
CValueAcceleration operator/ (const CValueDistance &d, const CValueTime2 &t)
 [計算] 割算 (加速度 = 距離 ÷ 時間^2) . [詳解]
 
CValueDistance operator/ (const CValueSpeed &s, const CValueFrequency &f)
 [計算] 割算 (距離 = 速度 ÷ 周波数). [詳解]
 
CValueAcceleration operator/ (const CValueSpeed &s, const CValueTime &t)
 [計算] 割算 (加速度 = 速度 ÷ 時間) . [詳解]
 
CValueTime operator/ (const CValueTime2 &t2, const CValueTime &t)
 [計算] 割算 (時間 = 時間^2 ÷ 時間) [詳解]
 
CValueDensity2 operator/ (const CValueWeight &d, const CValueArea &a)
 [計算] 割算 (面積密度 = 重量 ÷ 面積). [詳解]
 
CValueDensity3 operator/ (const CValueWeight &d, const CValueCubic &t)
 [計算] 割算 (体積密度 = 重量 ÷ 体積). [詳解]
 
CRealNumber sin (const CValueDegree &d)
 [計算] sin (値 = sin(角度)) [詳解]
 
CRealNumber sinh (const CValueDegree &d)
 [計算] sinh (値 = sinh(角度)) [詳解]
 
CValueDistance sqrt (const CValueArea &a)
 [計算] 平方根 (距離 = √面積) [詳解]
 
CValueTime sqrt (const CValueTime2 &t2)
 [計算] 平方根 (時間 = √(時間^2)) [詳解]
 
CRealNumber tan (const CValueDegree &d)
 [計算] tan (値 = tan(角度)) [詳解]
 
CRealNumber tanh (const CValueDegree &d)
 [計算] tanh (値 = tanh(角度)) [詳解]
 
template<typename T >
CStr ToStringWithJapanUnit (const T &t, LPCTSTR lpszFormat=NULL)
 [作成] 文字列作成 [詳解]
 
template<typename T >
CStr ToStringWithUnitMark (const T &t, LPCTSTR lpszFormat=NULL)
 [作成] 文字列作成 [詳解]
 

詳解

SI単位や日本の単位など、単位と値をペアで管理し、それらの計算をサポートもサポートする クラス群です。比較時や計算時は自動的に単位を合わせて行ないます。
また、単位同士の計算による単位変換(距離÷時間は速度になる、など)もサポートしています。
現在、距離面積体積重量温度時間時間^2周波数角度圧力割合電流(アンペア)電圧(ボルト)、 の単位付値クラスが用意してあります。 他に、速度(距離/時間)加速度(距離/時間^2)面積密度(重量/面積)体積密度(重量/体積)流量(体積/時間) と言う、「単位 / 単位」と言う単位も用意してあります (上記にない組み合わせの場合、CValueParTテンプレートを使って定義することが可能です)。
使用例:
          1530m/s x 6kHz
         ――――――――   ≒  0.92m/s      
          4 x 1 x 2.5MHz
    
        CValueSpeed ms1530(1530, CValueSpeed::M, CValueSpeed::SEC);     
        CValueFrequency khz6(6, CValueFrequency::KHZ);
        CValueFrequency mhz25(2.5, CValueFrequency::MHZ);

        CValueSpeed r = (ms1530 * khz6) / (4 * 1 * mhz25);

        TRACE1("r = %s\n", r.ToString(r.M, r.SEC));
        ASSERT( r.GetValue(r.M, r.SEC).IsAlmostEqual(0.92));
    
使用例:(CValueParT を使用した例)
         270μs - 10μs
        ――――――――  ≒ 20cm
           13μs/cm
    
        CValueTime us270(270, CValueTime::MICRO);
        CValueTime us10(10, CValueTime::MICRO);
        CValueParT<CUnitTime, CUnitDistance>
            ucm13(13, CValueTime::MICRO, CValueDistance::CM);       

        CValueDistance r = (vt1 - vt2) / xx;

        TRACE1("r = %s\n",r.ToString(r.CM));
        ASSERT( r.GetValue(r.CM).IsAlmostEqual(20, 1) );
    

型定義詳解

◆ CValueAcceleration

加速度管理クラス

覚え書き
分子単位が 距離、分母単位が 時間^2 となります。 それぞれ 接頭単位コード も使用できます。 また、一つの拡張単位コードで、単位を指定することも出来ます。
基準単位は、m/s^2(CValueDistance::M, CValueTime2::SEC2) です。
参照
使用できるメソッドは CValueParUnitT を参照してください。
使用例
// 123.3m/s^2
CValueAcceleration d1(123.3); //コンストラクタで単位省略すると基本単位 (m/s^2) になります。
TRACE1("%s\n", d1.ToString()); // m/s^2で表示
// 9.2 ピコメートル/s^2
CValueAcceleration d2(9.2, CValueDistance::PICO, CValueTime2::SEC2);
TRACE1("%s\n", d2.ToString()); // pm/s^2 で表示
// 1.2G
d2.Set(9.2, CValueAcceleration::G);
TRACE1("%s\n", d2.ToString(CValueAcceleration::GAL)); // Galで表示
TRACE1("%s\n", d2.ToString(CValueDistance::KM, CValueTime2::SEC2)); // km/s^2で表示
// 100G
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString(); // Gで表示
@ PICO
ピコ (1.0E-12)
Definition: TnbValueUnit.h:130
単位付値管理テンプレートクラス
必要ファイル
TnbValueParUnit.h
日付
06/12/26 新規作成

TnbValueParUnit.h988 行目に定義があります。

◆ CValueAmpere

電流管理クラス

覚え書き
単位として 電流単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、アンペア(CValueAmpere::A) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3A
CValueAmpere d1(123.3); //コンストラクタで単位省略すると基本単位 (A) になります。
TRACE1("%s\n", d1.ToString()); //Aで表示
// 9.2μA
TRACE1("%s\n", d2.ToString()); //μAで表示
// 0.2Bi
d2.Set(0.2, CValueAmpere::BI);
TRACE1("%s\n", d2.ToString(CValueAmpere::A)); //Aで表示
// 100Bi
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //Biで表示
@ MICRO
マイクロ (1.0E-6)
Definition: TnbValueUnit.h:128
単位付値管理テンプレートクラス
Definition: TnbValueUnit.h:215
必要ファイル
TnbValueUnit.h
日付
07/01/11 新規作成

TnbValueUnit.h2413 行目に定義があります。

◆ CValueArea

面積管理クラス

覚え書き
単位として 面積単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、平方メートル(CValueArea::M2) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3m2
CValueArea d1(123.3); //コンストラクタで単位省略すると基本単位 (m2) になります。
TRACE1("%s\n", d1.ToString()); //m2で表示
// 9.2μm2
TRACE1("%s\n", d2.ToString()); //μm2で表示
// 9.2アール
d2.Set(9.2, CValueArea::A);
TRACE1("%s\n", d2.ToString(CValueArea::M2)); //m2で表示
// 1.2エーカー
d2.Set(1.2, CValueArea::ACRE);
// 100エーカー
d2.Set(100); //単位を省略すると数値だけの変更になります。
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h1167 行目に定義があります。

◆ CValueCubic

体積管理クラス

覚え書き
単位として 体積単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、立方メートル(CValueCubic::M3) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3m3
CValueCubic d1(123.3); //コンストラクタで単位省略すると基本単位 (m3) になります。
TRACE1("%s\n", d1.ToString()); //m3で表示
// 9.2μm3
TRACE1("%s\n", d2.ToString()); //μm3で表示
// 9.2リットル
d2.Set(9.2, CValueCubic::LITRE);
TRACE1("%s\n", d2.ToString(CValueCubic::M3)); //m3で表示
// 1.2バレル
d2.Set(1.2, CValueCubic::BBL);
// 100バレル
d2.Set(100); //単位を省略すると数値だけの変更になります。
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h1335 行目に定義があります。

◆ CValueDegree

角度管理クラス

覚え書き
単位として 角度単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、°(Degree)(CValueDegree::DEG) です。
本クラスのインスタンスは、三角関数「sin,sinh,cos,cosh,tan,tanh」に直接引数で渡すことが可能です (保持単位が角度の場合、ラジアン変換して計算します)。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3°
CValueDegree d1(123.3); //コンストラクタで単位省略すると基本単位 (°) になります。
TRACE1("%s\n", d1.ToString()); //°で表示
TRACE1("%f\n", sin(d1)); // sin(123.3°)を計算
// 3453.4秒
TRACE1("%s\n", d2.ToString()); //秒で表示
// 1.2(RAD)
d2.Set(1.2, CValueDegree::RAD);
TRACE1("%s\n", d2.ToString(CValueDegree::DEG)); //°で表示
// .5(RAD)
d2.Set(.5); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //ラジアンで表示
@ RAD
ラジアン
@ DEG
角度(度)
@ DEGS
角度(秒)
CRealNumber sin(const CValueDegree &d)
[計算] sin (値 = sin(角度))
必要ファイル
TnbValueUnit.h
日付
07/01/10 新規作成

TnbValueUnit.h1993 行目に定義があります。

◆ CValueDensity2

面積密度管理クラス

覚え書き
分子単位が 重量、分母単位が 面積 となります。 それぞれ 接頭単位コード も使用できます。
基準単位は、g/㎡(CValueWeight::G, CValueArea::M2) です。
参照
使用できるメソッドは CValueParUnitT を参照してください。
使用例
// 123.3 g/㎡
CValueDensity2 d1(123.3); //コンストラクタで単位省略すると基本単位 (g/㎡) になります。
TRACE1("%s\n", d1.ToString()); // g/㎡で表示
// 9.2 ピコg/㎡
TRACE1("%s\n", d2.ToString()); // pg/㎡ で表示
TRACE1("%s\n", d2.ToString(CValueWeight::KG, CValueArea::M2)); // kg/㎡で表示
@ M2
平方メートル
必要ファイル
TnbValueParUnit.h
日付
07/01/22 新規作成

TnbValueParUnit.h1132 行目に定義があります。

◆ CValueDensity3

体積密度管理クラス

覚え書き
分子単位が 重量、分母単位が 体積 となります。 それぞれ 接頭単位コード も使用できます。
基準単位は、g/m^3(CValueWeight::G, CValueCubic::M3) です。
参照
使用できるメソッドは CValueParUnitT を参照してください。
使用例
// 123.3 g/m^3
CValueDensity3 d1(123.3); //コンストラクタで単位省略すると基本単位 (g/m^3) になります。
TRACE1("%s\n", d1.ToString()); // g/m^3で表示
// 9.2 ピコg/m^3
CValueDensity3 d2(9.2, CValueWeight::PICO, CValueCubic::M3);
TRACE1("%s\n", d2.ToString()); // pg/m^3 で表示
TRACE1("%s\n", d2.ToString(CValueWeight::KG, CValueCubic::M3)); // kg/m^3で表示
必要ファイル
TnbValueParUnit.h
日付
06/12/26 新規作成

TnbValueParUnit.h1210 行目に定義があります。

◆ CValueDistance

距離管理クラス

覚え書き
単位として 距離単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、メートル(CValueDistance::M) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3m
CValueDistance d1(123.3); //コンストラクタで単位省略すると基本単位 (m) になります。
TRACE1("%s\n", d1.ToString()); //mで表示
// 9.2ピコメートル
TRACE1("%s\n", d2.ToString()); //pmで表示
// 9.2ヤード
d2.Set(9.2, CValueDistance::YARD);
TRACE1("%s\n", d2.ToString(CValueDistance::M)); //mで表示
// 1.2光年
d2.Set(1.2, CValueDistance::LY);
// 100光年
d2.Set(100); //単位を省略すると数値だけの変更になります。
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h979 行目に定義があります。

◆ CValueFlux

流量管理クラス

覚え書き
分子単位が 体積、分母単位が 時間 となります。 それぞれ 接頭単位コード も使用できます。
基準単位は、m^3/s(CValueCubic::M3, CValueTime::SEC) です。
参照
使用できるメソッドは CValueParUnitT を参照してください。
使用例
// 123.3 m^3/s
CValueFlux d1(123.3); //コンストラクタで単位省略すると基本単位 (m^3/s) になります。
TRACE1("%s\n", d1.ToString()); // m^3/sで表示
// 9.2 mm^3/ms
CValueFlux d2(9.2, CValueCubic::MM3, CValueTime::MSEC);
TRACE1("%s\n", d2.ToString()); // mm^3/ms で表示
必要ファイル
TnbValueParUnit.h
日付
07/01/18 新規作成

TnbValueParUnit.h1287 行目に定義があります。

◆ CValueFrequency

周波数管理クラス

覚え書き
単位として 周波数単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、Hz(CValueFrequency::HZ) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3Hz
CValueFrequency d1(123.3); //コンストラクタで単位省略すると基本単位 (Hz) になります。
TRACE1("%s\n", d1.ToString()); //Hzで表示
// 9.2kHz
CValueFrequency d2(9.2, CValueFrequency::KHZ);
TRACE1("%s\n", d2.ToString()); //kHzで表示
// 1.2MHz
d2.Set(1.2, CValueFrequency::MHZ);
TRACE1("%s\n", d2.ToString(CValueFrequency::HZ)); //hzで表示
// 100MHz
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //MHzで表示
必要ファイル
TnbValueUnit.h
日付
07/01/10 新規作成

TnbValueUnit.h1857 行目に定義があります。

◆ CValueNonUnit

単位なし管理クラス

覚え書き
単位なしの値を扱いたい時に使用します。
必要ファイル
TnbValueUnit.h
日付
07/01/22 新規作成

TnbValueUnit.h2562 行目に定義があります。

◆ CValuePressure

圧力管理クラス

覚え書き
単位として 圧力単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、水銀柱mm(CValuePressure::MMHG) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3水銀柱mm
CValuePressure d1(123.3); //コンストラクタで単位省略すると基本単位 (水銀柱mm) になります。
TRACE1("%s\n", d1.ToString()); //水銀柱mmで表示
// 9.2Torr
CValuePressure d2(9.2, CValuePressure::Torr);
TRACE1("%s\n", d2.ToString()); //Torrで表示
// 1.2Pa
d2.Set(1.2, CValuePressure::PA);
TRACE1("%s\n", d2.ToString(CValuePressure::MMHG)); //mmHgで表示
// 100pa
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //paで表示
必要ファイル
TnbValueUnit.h
日付
07/01/10 新規作成

TnbValueUnit.h2237 行目に定義があります。

◆ CValueRatio

割合管理クラス

覚え書き
単位として 割合単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、パーセント(CValueRatio::PERCENT) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3%
CValueRatio d1(123.3); //コンストラクタで単位省略すると基本単位 (%) になります。
TRACE1("%s\n", d1.ToString()); //%で表示
// 9.2割
CValueRatio d2(9.2, CValueRatio::WARI);
TRACE1("%s\n", d2.ToString()); //割で表示
// 1.2
d2.Set(1.2, CValueRatio::DEC);
TRACE1("%s\n", d2.ToString(CValueRatio::PERCENT)); //%で表示
// 100.0
d2.Set(100.0); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); // 100.0 と表示
必要ファイル
TnbValueUnit.h
日付
07/01/10 新規作成

TnbValueUnit.h2325 行目に定義があります。

◆ CValueSpeed

速度管理クラス

覚え書き
分子単位が 距離、分母単位が 時間 となります。 それぞれ 接頭単位コード も使用できます。 また、一つの拡張単位コードで、単位を指定することも出来ます。
基準単位は、m/s(CValueDistance::M, CValueTime::SEC) です。
参照
使用できるメソッドは CValueParUnitT を参照してください。
使用例
// 123.3m/s
CValueSpeed d1(123.3); //コンストラクタで単位省略すると基本単位 (m/s) になります。
TRACE1("%s\n", d1.ToString()); // m/sで表示
// 9.2 ピコメートル/s
CValueSpeed d2(9.2, CValueDistance::PICO, CValueTime::SEC);
TRACE1("%s\n", d2.ToString()); // pm/s で表示
// 1.2km/h
d2.Set(9.2, CValueSpeed::KPH);
TRACE1("%s\n", d2.ToString(CValueSpeed::KT)); //ノットで表示
TRACE1("%s\n", d2.ToString(CValueDistance::KM, CValueTime::SEC)); // km/sで表示
// 100km/h
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString(); // km/hで表示
必要ファイル
TnbValueParUnit.h
日付
06/12/26 新規作成

TnbValueParUnit.h876 行目に定義があります。

◆ CValueTemperature

温度管理クラス

覚え書き
単位として 温度単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、℃(CValueTemperature::C) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3℃
CValueTemperature d1(123.3); //コンストラクタで単位省略すると基本単位 (℃) になります。
TRACE1("%s\n", d1.ToString()); //℃で表示
// 9.2°F
CValueTemperature d2(9.2, CValueTemperature::F);
TRACE1("%s\n", d2.ToString()); //°Fで表示
// 1.2ケルビン
d2.Set(1.2, CValueTemperature::K);
TRACE1("%s\n", d2.ToString(CValueTemperature::C)); //℃で表示
// 100ケルビン
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); // Kで表示
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h1546 行目に定義があります。

◆ CValueTime

時間管理クラス

覚え書き
単位として 時間単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、秒(CValueTime::SEC) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3秒
CValueTime d1(123.3); //コンストラクタで単位省略すると基本単位 (秒) になります。
TRACE1("%s\n", d1.ToString()); //秒で表示
// 9.2ピコ秒
TRACE1("%s\n", d2.ToString()); //ピコ秒で表示
// 1.2WEEK
d2.Set(1.2, CValueTime::WEEK);
TRACE1("%s\n", d2.ToString(CValueTime::DAY)); //日で表示
// 100WEEK
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //week
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h1641 行目に定義があります。

◆ CValueTime2

時間^2管理クラス

覚え書き
単位として 時間^2単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、秒^2(CValueTime2::SEC2) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3秒^2
CValueTime2 d1(123.3); //コンストラクタで単位省略すると基本単位 (秒^2) になります。
TRACE1("%s\n", d1.ToString()); //秒^2で表示
// 9.2ピコ秒^2
TRACE1("%s\n", d2.ToString()); //ピコ秒^2で表示
// 1.2WEEK^2
d2.Set(1.2, CValueTime2::WEEK2);
TRACE1("%s\n", d2.ToString(CValueTime2::DAY2)); //日^2で表示
// 100WEEK^2
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //week^2
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h1735 行目に定義があります。

◆ CValueVolt

電圧管理クラス

覚え書き
単位として 電圧単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、ボルト(CValueVolt::V) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3V
CValueVolt d1(123.3); //コンストラクタで単位省略すると基本単位 (V) になります。
TRACE1("%s\n", d1.ToString()); //Vで表示
// 9.2ピコV
TRACE1("%s\n", d2.ToString(CValueVolt::MV)); //MVで表示
// 100ピコV
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //ピコVで表示
必要ファイル
TnbValueUnit.h
日付
07/01/11 新規作成

TnbValueUnit.h2498 行目に定義があります。

◆ CValueWeight

重量管理クラス

覚え書き
単位として 重量単位コード接頭単位コード が使用できます。
接頭単位コードは、基準単位を基準にします。
基準単位は、グラム(CValueWeight::G) です。
参照
使用できるメソッドは CValueUnitT を参照してください。
使用例
// 123.3g
CValueWeight d1(123.3); //コンストラクタで単位省略すると基本単位 (g) になります。
TRACE1("%s\n", d1.ToString()); //gで表示
// 9.2ピコグラム
TRACE1("%s\n", d2.ToString()); //pgで表示
// 1.2カラット
d2.Set(1.2, CValueWeight::CT);
TRACE1("%s\n", d2.ToString(CValueWeight::G)); //gで表示
// 100カラット
d2.Set(100); //単位を省略すると数値だけの変更になります。
TRACE1("%s\n", d2.ToString()); //ct
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h1457 行目に定義があります。

関数詳解

◆ CalcCircleArea()

CValueArea TNB::CalcCircleArea ( const CValueDistance r)

[計算] 円面積計算 (π × 半径 × 半径)

引数
r半径距離
戻り値
面積(単位は m2 になります)

TnbValueUnit.h1218 行目に定義があります。

◆ CalcCircleDistance()

CValueDistance TNB::CalcCircleDistance ( const CValueDistance r)

[計算] 円周囲長計算 (2 × π × 半径)

引数
r半径距離
戻り値
距離

TnbValueUnit.h1001 行目に定義があります。

◆ CalcDegreeAverage() [1/2]

CValueDegree TNB::CalcDegreeAverage ( const CValueDegree d1,
const CValueDegree d2,
double  r1 = 1.0,
double  r2 = 1.0 
)

[計算] 角度の平均計算.

覚え書き
単位ベクトル合算法による計算。
引数
d1角度1
d2角度2
r1角度1の比率。省略すると 1.0。
r2角度2の比率。省略すると 1.0。
戻り値
平均角

TnbValueUnit.h2114 行目に定義があります。

◆ CalcDegreeAverage() [2/2]

CValueDegree TNB::CalcDegreeAverage ( size_t  size,
const CValueDegree pDegs 
)

[計算] 角度の平均計算.

覚え書き
単位ベクトル合算法による計算。
引数
size配列数
pDegs角度単位の配列
戻り値
平均角 (単位 DEG)

TnbValueUnit.h2091 行目に定義があります。

◆ CalcDegreeDifference()

CValueDegree TNB::CalcDegreeDifference ( const CValueDegree d1,
const CValueDegree d2 
)

[計算] 角度の開き計算.

覚え書き
必ず0〜180°になります。
引数
d1角度1
d2角度2
戻り値
開き角度(単位 DEG)

TnbValueUnit.h2132 行目に定義があります。

◆ CalcEllipseArea()

CValueArea TNB::CalcEllipseArea ( const CValueDistance x,
const CValueDistance y 
)

[計算] 楕円面積計算 (π × 水平半径 × 垂直半径)

引数
x水平半径距離
y垂直半径距離
戻り値
面積(単位は m2 になります)

TnbValueUnit.h1229 行目に定義があります。

◆ CalcEllipseDistance()

CValueDistance TNB::CalcEllipseDistance ( const CValueDistance x,
const CValueDistance y 
)

[計算] 楕円周囲長計算 (π × √( 2 (水平半径^2 + 垂直半径^2))

引数
x水平半径距離
y垂直半径距離
戻り値
距離

TnbValueUnit.h1012 行目に定義があります。

◆ CalcEllipseDistance_t2()

CValueDistance TNB::CalcEllipseDistance_t2 ( const CValueDistance x,
const CValueDistance y 
)

[計算] 楕円周囲長計算 (type2)

覚え書き
A = 半径1、B=半径2。 ただし、A > B とする。
π・√(2 × (A^2 + B^2)) - (A - B)^2 ÷ 2.2
引数
x水平半径距離
y垂直半径距離
戻り値
距離

TnbValueUnit.h1029 行目に定義があります。

◆ CalcEllipseDistance_t3()

CValueDistance TNB::CalcEllipseDistance_t3 ( const CValueDistance x,
const CValueDistance y 
)

[計算] 楕円周囲長計算 (type3)

覚え書き
A = 半径1、B=半径2。 ただし、A > B とする。
2 × A × Π * (1 - (B^2 ÷ A^2)) ÷ 4 - (B^2 ÷ A^2))^2 × 3 ÷ 64 - (B^2 ÷ A^2))^3 × 5 ÷ 256)
引数
x水平半径距離
y垂直半径距離
戻り値
距離

TnbValueUnit.h1050 行目に定義があります。

◆ CalcRightTriangleHeight()

CValueDistance TNB::CalcRightTriangleHeight ( const CValueDistance di,
const CValueDegree de 
)

[計算] 直角三角形の高さ計算

引数
di底辺長さ
de角度(底辺に接する直角以外の角度)
戻り値
直角三角形の高さ

TnbValueUnit.h2078 行目に定義があります。

◆ CalcSlantingDistance()

CValueDistance TNB::CalcSlantingDistance ( const CValueDistance x,
const CValueDistance y 
)

[計算] 斜め距離計算 (√(水平距離^2 + 垂直距離^2))

引数
x水平距離
y垂直距離
戻り値
斜め距離

TnbValueUnit.h987 行目に定義があります。

◆ CalcTriangleArea()

CValueArea TNB::CalcTriangleArea ( const CValueDistance x,
const CValueDistance y 
)

[計算] 三角面積計算 (底辺 × 高さ ÷ 2)

引数
x底辺距離
y高さ距離
戻り値
面積(単位は ㎡ になります)

TnbValueUnit.h1208 行目に定義があります。

◆ cos()

CRealNumber TNB::cos ( const CValueDegree d)

[計算] cos (値 = cos(角度))

引数
d角度
戻り値

TnbValueUnit.h2014 行目に定義があります。

◆ cosh()

CRealNumber TNB::cosh ( const CValueDegree d)

[計算] cosh (値 = cosh(角度))

引数
d角度
戻り値

TnbValueUnit.h2021 行目に定義があります。

◆ GetUnitKindCode()

DWORD TNB::GetUnitKindCode ( const T &  t)

[取得] 単位種コード取得

引数
t単位付値クラスのインスタンス。
戻り値
単位種コード
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h852 行目に定義があります。

◆ GetUnitKindString()

CStr TNB::GetUnitKindString ( const T &  t)

[取得] 単位種文字列取得

引数
t単位付値クラスのインスタンス。
戻り値
単位種文字列
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h836 行目に定義があります。

◆ MakeDegree() [1/2]

CValueDegree TNB::MakeDegree ( BYTE  dd,
BYTE  mm,
double  ss 
)

[計算] 角度(度,分,秒)計算.

引数
[in]dd
[in]mm
[in]ss
戻り値
角度

TnbValueUnit.h2066 行目に定義があります。

◆ MakeDegree() [2/2]

CValueDegree TNB::MakeDegree ( int  dd,
int  mm = 0,
double  ss = 0.0 
)

[計算] 角度(度,分,秒)代入.

覚え書き
負の角度を入れる場合、ddを負にしてください。
引数
[in]dd
[in]mm
[in]ss
戻り値
角度

TnbValueUnit.h2045 行目に定義があります。

◆ operator*() [1/10]

CValueSpeed TNB::operator* ( const CValueAcceleration a,
const CValueTime t 
)

[計算] 掛算 (速度 = 加速度 × 時間) .

引数
a加速度
t時間
戻り値
速度 (単位は m/s になります)

TnbValueParUnit.h1040 行目に定義があります。

◆ operator*() [2/10]

CValueCubic TNB::operator* ( const CValueArea a,
const CValueDistance d 
)

[計算] 掛算 (体積 = 面積 × 距離)

引数
a面積
d距離
戻り値
体(単位は平方メートルになります)

TnbValueUnit.h1343 行目に定義があります。

◆ operator*() [3/10]

CValueCubic TNB::operator* ( const CValueDistance d,
const CValueArea a 
)

[計算] 掛算 (体積 = 距離 × 面積)

引数
d距離
a面積
戻り値
体積(単位は平方メートルになります)

TnbValueUnit.h1354 行目に定義があります。

◆ operator*() [4/10]

CValueArea TNB::operator* ( const CValueDistance d1,
const CValueDistance d2 
)

[計算] 掛算 (面積 = 距離 × 距離)

引数
d1距離
d2距離
戻り値
面積(単位は平方メートルで格納されます)。

TnbValueUnit.h1175 行目に定義があります。

◆ operator*() [5/10]

CValueAcceleration TNB::operator* ( const CValueFrequency f,
const CValueSpeed s 
)

[計算] 掛算 (加速度 = 周波数 × 速度) .

引数
f周波数
s速度
戻り値
加速度(単位は m/sec^2 になります)

TnbValueParUnit.h1007 行目に定義があります。

◆ operator*() [6/10]

CRealNumber TNB::operator* ( const CValueFrequency f,
const CValueTime t 
)

[計算] 掛算 (値 = 周波数 × 時間)

引数
f周波数
t時間
戻り値

TnbValueUnit.h1865 行目に定義があります。

◆ operator*() [7/10]

CValueAcceleration TNB::operator* ( const CValueSpeed s,
const CValueFrequency f 
)

[計算] 掛算 (加速度 = 速度 × 周波数) .

引数
s速度
f周波数
戻り値
加速度(単位は m/sec^2 になります)

TnbValueParUnit.h996 行目に定義があります。

◆ operator*() [8/10]

CValueSpeed TNB::operator* ( const CValueTime t,
const CValueAcceleration a 
)

[計算] 掛算 (速度 = 時間 × 加速度) .

引数
t時間
a加速度
戻り値
速度 (単位は m/s になります)

TnbValueParUnit.h1051 行目に定義があります。

◆ operator*() [9/10]

CRealNumber TNB::operator* ( const CValueTime t,
const CValueFrequency f 
)

[計算] 掛算 (値 = 時間 × 周波数)

引数
t時間
f周波数
戻り値

TnbValueUnit.h1876 行目に定義があります。

◆ operator*() [10/10]

CValueTime2 TNB::operator* ( const CValueTime t1,
const CValueTime t2 
)

[計算] 掛算 (時間^2 = 時間 × 時間)

引数
t1時間
t2時間
戻り値
時間^2(単位はSEC^2になります)

TnbValueUnit.h1743 行目に定義があります。

◆ operator/() [1/12]

CValueTime TNB::operator/ ( const CRealNumber v,
const CValueFrequency f 
)

[計算] 割算 (時間 = 値 ÷ 周波数)

引数
v
f周波数
戻り値
時間(単位は秒になります)

TnbValueUnit.h1887 行目に定義があります。

◆ operator/() [2/12]

CValueFrequency TNB::operator/ ( const CRealNumber v,
const CValueTime t 
)

[計算] 割算 (周波数 = 値 ÷ 時間)

引数
v
t時間単
戻り値
周波数(単位はHzになります)

TnbValueUnit.h1898 行目に定義があります。

◆ operator/() [3/12]

CValueSpeed TNB::operator/ ( const CValueAcceleration a,
const CValueFrequency f 
)

[計算] 割算 (速度 = 加速度 ÷ 周波数) .

引数
a加速度
f周波数
戻り値
速度 (単位は m/s になります)

TnbValueParUnit.h1062 行目に定義があります。

◆ operator/() [4/12]

CValueDistance TNB::operator/ ( const CValueArea a,
const CValueDistance d 
)

[計算] 割算 (距離 = 面積 ÷ 距離)

引数
a面積
d距離
戻り値
距離(単位はメートルで格納されます)。

TnbValueUnit.h1186 行目に定義があります。

◆ operator/() [5/12]

CValueFlux TNB::operator/ ( const CValueCubic c,
const CValueTime t 
)

[計算] 割算 (流量 = 体積 ÷ 時間).

引数
c体積
t時間
戻り値
流量

TnbValueParUnit.h1295 行目に定義があります。

◆ operator/() [6/12]

CValueSpeed TNB::operator/ ( const CValueDistance d,
const CValueTime t 
)

[計算] 割算 (速度 = 距離 ÷ 時間).

引数
d距離
t時間
戻り値
速度

TnbValueParUnit.h884 行目に定義があります。

◆ operator/() [7/12]

CValueAcceleration TNB::operator/ ( const CValueDistance d,
const CValueTime2 t 
)

[計算] 割算 (加速度 = 距離 ÷ 時間^2) .

引数
d距離
t時間^2
戻り値
加速度

TnbValueParUnit.h1018 行目に定義があります。

◆ operator/() [8/12]

CValueDistance TNB::operator/ ( const CValueSpeed s,
const CValueFrequency f 
)

[計算] 割算 (距離 = 速度 ÷ 周波数).

引数
s速度
f周波数
戻り値
距離

TnbValueParUnit.h895 行目に定義があります。

◆ operator/() [9/12]

CValueAcceleration TNB::operator/ ( const CValueSpeed s,
const CValueTime t 
)

[計算] 割算 (加速度 = 速度 ÷ 時間) .

引数
s速度
t時間
戻り値
加速度 (単位は m/sec^2 になります)

TnbValueParUnit.h1029 行目に定義があります。

◆ operator/() [10/12]

CValueTime TNB::operator/ ( const CValueTime2 t2,
const CValueTime t 
)

[計算] 割算 (時間 = 時間^2 ÷ 時間)

引数
t2時間^2
t時間
戻り値
時間(単位はSECになります)

TnbValueUnit.h1754 行目に定義があります。

◆ operator/() [11/12]

CValueDensity2 TNB::operator/ ( const CValueWeight d,
const CValueArea a 
)

[計算] 割算 (面積密度 = 重量 ÷ 面積).

引数
d重量
a面積
戻り値
面積密度

TnbValueParUnit.h1140 行目に定義があります。

◆ operator/() [12/12]

CValueDensity3 TNB::operator/ ( const CValueWeight d,
const CValueCubic t 
)

[計算] 割算 (体積密度 = 重量 ÷ 体積).

引数
d重量
t体積
戻り値
体積密度

TnbValueParUnit.h1218 行目に定義があります。

◆ sin()

CRealNumber TNB::sin ( const CValueDegree d)

[計算] sin (値 = sin(角度))

引数
d角度
戻り値

TnbValueUnit.h2000 行目に定義があります。

◆ sinh()

CRealNumber TNB::sinh ( const CValueDegree d)

[計算] sinh (値 = sinh(角度))

引数
d角度
戻り値

TnbValueUnit.h2007 行目に定義があります。

◆ sqrt() [1/2]

CValueDistance TNB::sqrt ( const CValueArea a)

[計算] 平方根 (距離 = √面積)

引数
a面積
戻り値
距離(単位はメートルになります)

TnbValueUnit.h1196 行目に定義があります。

◆ sqrt() [2/2]

CValueTime TNB::sqrt ( const CValueTime2 t2)

[計算] 平方根 (時間 = √(時間^2))

引数
t2時間^2
戻り値
時間(単位はSECになります)

TnbValueUnit.h1764 行目に定義があります。

◆ tan()

CRealNumber TNB::tan ( const CValueDegree d)

[計算] tan (値 = tan(角度))

引数
d角度
戻り値

TnbValueUnit.h2028 行目に定義があります。

◆ tanh()

CRealNumber TNB::tanh ( const CValueDegree d)

[計算] tanh (値 = tanh(角度))

引数
d角度
戻り値

TnbValueUnit.h2035 行目に定義があります。

◆ ToStringWithJapanUnit()

CStr TNB::ToStringWithJapanUnit ( const T &  t,
LPCTSTR  lpszFormat = NULL 
)

[作成] 文字列作成

引数
t単位付値クラスのインスタンス。
lpszFormatprintf()で double 一つを表示する場合のフォーマットを指定。省略すると "%f" になります。
戻り値
文字列
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h799 行目に定義があります。

◆ ToStringWithUnitMark()

CStr TNB::ToStringWithUnitMark ( const T &  t,
LPCTSTR  lpszFormat = NULL 
)

[作成] 文字列作成

引数
t単位付値クラスのインスタンス。
lpszFormatprintf()で double 一つを表示する場合のフォーマットを指定。省略すると "%f" になります。
戻り値
文字列
必要ファイル
TnbValueUnit.h
日付
06/12/26 新規作成

TnbValueUnit.h818 行目に定義があります。