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是否为有限数
- 07-01· 禁教唐诗算术能还幼儿快
- 07-01· 2011年06月17日
- 07-01· 唐诗宋词英译:李商隐 筹
- 07-01· 仿评《唐诗1000首》第186首
- 07-01· 没事干的时候背背唐诗吧
- 07-01· [转载]唐诗中“斜”字该读
- 07-01· 湖南醴陵瓷业转型升级
- 07-01· 奇瑞风云2两厢黑色|2010款
- 07-01· 摩根士丹利华鑫摩根士丹
- 07-01· 摩根士丹利华鑫近期优选
- 07-01· 中金投行部大摩出售中金
- 07-01· 摩根士丹利招聘6月2日【实
- 07-01· 营养防病圣典
- 07-01· 《博伽梵歌原意》之第十
- 07-01· [不错]斑斓圣典---减肥中常
- 07-01· 武乐圣典《太极武当》:武
- 07-01· 铁血英雄-现阶段战功牌兑
- 07-01· 2011年06月10日【原创】南歌
- 07-01· 【淘宝网信息】- 2010年的
- 07-01· 深圳品牌女装有哪些?