1. 程式人生 > >重寫Math 中sin cos asin  acos 方法,將其入參或者返回值 從弧度改為角度

重寫Math 中sin cos asin  acos 方法,將其入參或者返回值 從弧度改為角度

Math 中sin cos 方法的入參 單位是弧度,而我們在數學公式中填寫的都是角度;

Math 中asin  acos 方法的返回值 單位是弧度,而我們在數學公式中arcsin  arccos返回值都是角度;

所以這裡需要一個 角度弧度的換算,以及重寫sin cos  asin  acos

角度弧度關係:弧度/角度 = 2π/360 

package fuhm_util;

public class MathUtil {
	/**
	 * 入參單位:角度
	 * 
	 * @param a
	 * @return
	 */
	public static double sin(double a) {
		return Math.sin(angleToRadian(a));
	}

	/**
	 * 入參單位:角度
	 * 
	 * @param a
	 * @return
	 */
	public static double cos(double a) {
		return Math.cos(angleToRadian(a));
	}

	/**
	 * 返回值單位:角度
	 * 
	 * @param a
	 * @return
	 */
	public static double acos(double a) {
		return radianToAngle(Math.acos(a)); // default impl. delegates to
											// StrictMath
	}

	/**
	 * 返回值單位:角度
	 * 
	 * @param a
	 * @return
	 */
	public static double asin(double a) {
		return radianToAngle(Math.asin(a)); // default impl. delegates to
											// StrictMath
	}

	/**
	 * 角度 轉 弧度
	 * 
	 * @param value
	 * @return
	 */
	public static double angleToRadian(double value) {
		return value * Math.PI / 180;
	}

	/**
	 * 弧度 轉 角度
	 * 
	 * @param value
	 * @return
	 */
	public static double radianToAngle(double value) {
		return value * 180 / Math.PI;
	}
	
	public static void main(String[] args) {
		double acos = acos(0.5);
		System.out.println(acos);
		
	}
}