Android之三角函数

在Android里自定义view的时候,会用到三角函数,主要用到 java.lang.Math里的函数:

E = 2.7182818284590452354
PI = 3.14159265358979323846
Math.pow(double a, double b); a的b次方
Math.sqrt(double a);a开根号
Math.sin(Math.PI/2);90 度的正弦值
Math.cos(0);0度的余弦值
Math.tan(Math.PI/3);60度的正切值
Math.atan(1);1的反正切值
Math.PI;π
Math.toRadians(double angdeg) 角度转化为弧度
Math.toDegrees(Math.PI/2);弧度转化为角度 (π/2的角度值)
Math.ceil() 大于等于( >= )给定参数的的最小整数
Math.abs() 求绝对值
Math.floor() 求小于等于某个数的最大整数
Math.round() 四舍五入

关于atan2()这个函数重点讲一下:

cx,cy为原点(这里指画圆时的圆心),x,y为当前点。这里api里参数是先y后x,但其实是先x后y,而且在Android里还应该是cy-y,因为在数学坐标系里x轴以上的点的y值肯定是大于x轴以下的点的y值的(位置在上的点的y值大于位置在下边的点的y值),但在Android坐标系里下边的点的y值是大于上边的点的y值的,

atan2(double y, double x)
Math.atan2(x - cx, cy - y)

atan()和atan2()的区别

atan(double a)接受一个参数,但是这里有个问题,atan(-1)可以是45°和225°的弧度值,这就坑壁了

atan2(double y, double x)接受两个参数,参考上边:在数学坐标系里是当前点与圆心连线和y轴正方形的夹角的弧度值,当然在Android坐标系里就是当前点与圆心连线与y轴负方向的夹角的弧度值。所以在Android坐标系里,通过atan2()求出的弧度值,如果参与cos()计算,正负值都需要时,需要Math.atan2(x - cx, cy - y)-Math.PI/2;因为cos在-π/2和π/2之间都是正数,但在Android坐标系里通过atan2求得的弧度值的cos,我们需要在0和π之间都取正数。

你可能感兴趣的:(Android之三角函数)