【转】Java.Math API 反正切算角度(四个象限情况要调整)
原文网址:http://hunter090730.iteye.com/blog/485770
Math.PI 记录的圆周率
Math.E 记录e的常量
Math中还有一些类似的常量,都是一些工程数学常用量。
Math.abs 求绝对值
Math.sin 正弦函数;Math.asin 反正弦函数
Math.cos 余弦函数;Math.acos 反余弦函数
Math.tan 正切函数;Math.atan 反正切函数;Math.atan2 商的反正切函数
Math.toDegrees 弧度转化为角度;Math.toRadians 角度转化为弧度
Math.ceil 得到不小于某数的最大整数
Math.floor 得到不大于某数的最大整数
Math.IEEEremainder 求余
Math.max 求两数中最大
Math.min 求两数中最小
Math.sqrt 求开方
Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常
Math.exp 求e的任意次方
Math.log10 以10为底的对数
Math.log 自然对数
Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小)
Math.round //四舍五入法最接近该参数的int/long值.
Math.random 返回0,1之间的一个随机数
public static void main(String args[]) {
System.out.println("result:"+11+1);
System.out.println("result:"+"12345".valueOf(54321));
double d = -4.4999999;
System.out.println(Math.ceil(d));//不小于参数的最小整数值.
System.out.println(Math.floor(d));//不大于参数的最大整数值.
System.out.println(Math.round(d));//四舍五入法最接近参数的int/long值.
}
输出为:
result:111
result:54321
-4.0
-5.0
-4
public static void main(String[] args) {
System.out.println("Hello World!");
float x = (float) 0.0;
float y = (float) -1.0;
double angle = Math.toDegrees(Math.atan(x / y));
System.out.println("angle: " + calcAngle(1, 1));
System.out.println("angle: " + calcAngle(1, -1));
System.out.println("angle: " + calcAngle(-1, -1));
System.out.println("angle: " + calcAngle(-1, 1));
}
public static float calcAngle(float x, float y) { float angle = (float) 0.0; angle = (float) Math.toDegrees(Math.atan(x / y)); if (x < 0) { if (y > 0) { angle = angle + 360; } else { angle = angle + 180; } } else { if (y < 0) { angle = angle + 180; } } return angle; } 输出: Hello World! angle: 45.0 angle: 135.0 angle: 225.0 angle: 315.0