/**获取角度*/ // 求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:原点,可以和起始坐标一致,更加功能自由选择
原文:http://www.cnblogs.com/jaden/p/4834400.html