您的位置:首页 > 其它

通过两点坐标计算角度

2015-09-24 10:07 369 查看
/**获取角度*/
// 求3点形成的夹角
public float getAngle(Point pt1, Point pt2, Point pt0) {
double ma_x = pt1.getX() - pt0.getX();
double ma_y = pt1.getY() - pt0.getY();
double mb_x = pt2.getX() - pt0.getX();
double mb_y = pt2.getY() - pt0.getY();
double k = (ma_x * mb_y - mb_x * ma_y);

if (k != 0) {
k = (k / Math.sqrt(k * k));
} else {
k = 1;
}

double v1 = (ma_x * mb_x) + (ma_y * mb_y);
double ma_val = Math.sqrt(ma_x * ma_x + ma_y * ma_y);
double mb_val = Math.sqrt(mb_x * mb_x + mb_y * mb_y);
double cosM = v1 / (ma_val * mb_val);

return (float) (Math.acos(cosM) * 180 / Math.PI * k);
}


p1:起始坐标

p2:最后坐标

p0:原点,可以和起始坐标一致,更加功能自由选择
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: