角平分线
有三个点,计算出角平分线。首先要算出两个点之间的方位角,根据方位角算出夹角。下面以角平分线长度是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;
}