Java 計算角平分線

有三個點,計算出角平分線。首先要算出兩個點之間的方位角,根據方位角算出夾角。下面以角平分線長度是20示例計算。

        double dStartAngle = Math.atan2(mdE1 - mdE2, mdN1 - mdN2);
        double dEndAngle = Math.atan2(mdE3 - mdE2, mdN3 - mdN2);
        double dWAngle = dEndAngle - dStartAngle;//外角角度
        if (dWAngle < 0) {
            dWAngle += 2 * Math.PI;
        } else if (dWAngle  > (2 * Math.PI)) {
            dWAngle -= 2 * Math.PI;
        }
        double dNAngle = 2 * Math.PI - dWAngle;//夾角  這個角度是比較小的

        /// 這裏算出來角度都是弧度單位的

        double temp = dWAngle / 2 + dStartAngle;
         ///外角平分線的點
        double N = 20 * Math.cos(temp) + mdN2;
        double E = 20 * Math.sin(temp) + mdE2;

        ///夾角(內角)平分線的點
         N = 2 * mdN2 - N;
         E = 2 * mdE2 - E;

計算方位角:

    //計算兩點方位角
    public double getAzimuth(double dN1, double dE1, double dN2, double dE2) {
        double dAzimuth = 0;

        dAzimuth = Math.atan2(dE2 - dE1, dN2 - dN1) * 180 / Math.PI;
        if (dAzimuth < 0)
            dAzimuth += 360;

        return dAzimuth;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章