您的位置:首页 > 服装鞋帽 > 女装 > Math

Math

luyued 发布于 2011-01-18 10:26   浏览 N 次  

Location: e32math.h
Link against: euser.lib

Math是一个工具类,只含有一些static成员函数,其中的大部分函数均返回TInt,如果成功,则返回KErrNone,否则返回系统错误码。下面逐个进行介绍:

1.TInt ACos(TReal &aTrg,const TReal &aSrc);

计算反余弦 aTrg为返回结果,范围为[0,pi];aSrc为输入参数,范围为[-1,1],如果超出这个范围,函数返回错误码。

2.TInt ASin(TReal& aTrg,const TReal& aSrc);

计算反正弦 跟ACos类似,aTrg范围为[-pi/2,pi/2];aSrc范围为[-1,1]。

3.TInt ATan(TReal& aTrg, const TReal& aSrc);

计算反正切 aTrg范围为(-pi/2,pi/2);aSrc范围为[-infinity ,infinity]。

4.TInt ATan(TReal& aTrg, const TReal& aSrcT, const TReal& aSrcB);

计算X轴与自原点到点(x,y)引出的射线的夹角,aSrcT为y,aSrcB为x。这个函数的结果等同于arctan(y/x),但:a.如果x为负数,结果+/-pi。b.如果x为0,y非零,结果为+/-pi/2。例如:

Math::ATan(result, 2.0 , 2.0); result=0.785398

Math::ATan(result, 2.0 , -2.0); result=2.35619

Math::ATan(result, -2.0 , -2.0); result=-2.35619

Math::ATan(result, 2.0 , 0.0); result=1.570796

Math::ATan(result, -2.0 , 0.0); result=-1.570796

result的范围为(-pi, pi],这里值的判断可以根据象限来判定,如果点(x,y)在一、二象限,result为正;三、四象限result为负。

5. TInt Sin(TReal& aTrg, const TReal& aSrc);
TInt Cos(TReal& aTrg, const TReal& aSrc);
TInt Tan(TReal &aTrg, const TReal &aSrc);


6.TInt Exp(TReal& aTrg, const TReal& aSrc); // 计算e的x次方
TInt Pow(TReal& aTrg, const TReal& aSrc, const TReal& aPower); // 计算y的x次方
TInt Pow10(TReal &aTrg, const TInt exp); // 计算10的x次方


7.TInt Frac(TReal &aTrg, const TReal &aSrc);
得到一个TReal的小数部分。例如Frac(2.4)=0.4, Frac(2)=0, Frac(-1)=0, Frac(-1.4)=0.4.
TInt Int(TReal &aTrg, const TReal &aSrc);
得到一个TReal的整数部分。例如int(2.4)=2, int(2)=2, int(-1)=-1, int(-1.4)=-1, int(-1.999)=-1.
TInt Int(TInt16 &aTrg, const TReal &aSrc);
同样是得到一个TReal的整数部分。这个函数适用于已知结果为TInt16类型的整数(就是说TInt16足够盛放结果)。
Int(TInt32 &aTrg, const TReal &aSrc); 类似于上一函数


8.TInt Log(TReal &aTrg, const TReal &aSrc); // 以10为底的对数
TInt Ln(TReal &aTrg, const TReal &aSrc); // 以e为底的对数


9.TInt Mod(TReal &aTrg, const TReal &aSrc, const TReal &aModulus);
取模aSrc%aModulus,结果的符号跟aSrc相同,5 mod 3 = 2, -5 mod 3 = -2.


10. TReal Poly(TReal aVal, const SPoly *aPoly);
计算多项式的值a[n]X^n + a[n-1]X^(n-1) + ... + a[2]X^2 + a[1]X^1 + a[0]
aPoly为指向SPoly结构体集合的指针。这里需要了解结构体SPoly,它包含了多项式的系数。
struct SPoly
{
TInt num;
TReal c[1];
};


11.TInt Rand(TInt64 &aSeed);

产生一个0到KMaxTInt之间的随机数,具体方法参照
TReal FRand(TInt64 &aSeed);
产生一个0到1之间的随机数。
TUint32 Random();
Gets 32 random bits from the kernel's random pool

12. TInt Round(TReal &aTrg, const TReal &aSrc, TInt aDecimalPlaces);
四舍五入。aDecimalPlaces为精确到小数点后的位数。例如:
TReal trg;
TInt result = Math::Round(trg, 3.3252346, 1); // trg = 3.3
result = Math::Round(trg, 123.4123551231, 5); // trg = 123.41236

13. TInt Sqrt(TReal &aTrg, const TReal &aSrc); // 开平方

14. TBool IsZero(const TReal &aVal); // 判断aVal是否为零
TBool IsNaN(const TReal &aVal); // 判断aVal是否为数字
TBool IsInfinite(const TReal &aVal); // 判断aVal是否为无穷大
TBool IsFinite(const TReal &aVal); // 判断aVal是否为有限数

图文资讯
广告赞助商