A(x1,y1) B(x2,y2) C(x3,y3) 
判断AC与BC夹角是否大于90度

解决方案 »

  1.   

    public static float Angle(Point cen, Point first, Point second) 

    float dx1, dx2, dy1, dy2; 
    float angle;  dx1 = first.X - cen.X; 
    dy1 = first.Y - cen.Y;  dx2 = second.X - cen.X;  dy2 = second.Y - cen.Y;  float c = (float)Math.Sqrt(dx1 * dx1 + dy1 * dy1) * (float)Math.Sqrt(dx2 * dx2 + dy2 * dy2);  if (c == 0) return -1;  angle = (float)Math.Acos((dx1 * dx2 + dy1 * dy2) / c); 
    return angle; 
      

  2.   

    判断一下AB^2同AC^2 + BC^2的大小关系即可,AC^2直接通过坐标的平方就可以求出来。
      

  3.   

    初三的都忘了,只能用初二的方法了: 
    if (((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) > ((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3) + (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3)))
                {
                    MessageBox.Show("大于90度");
                }
      

  4.   

    http://blog.csdn.net/wangyue4/archive/2010/05/20/5611309.aspx
    根据余弦定理求两个线段夹角
      

  5.   


    Point p1 = new Point(1, 1);
    Point p2 = new Point(2, 2);
    Vector v = p2 - p1;
    double angle = Math.Atan2(v.Y, v.X) * 180 / Math.PI;
      

  6.   

    如果只是判断和90°的关系,不用用余弦定理,多了很多步只要判断夹角的两边平方的和A和对边的平方B的关系就行了A>B  <90°
    A<B  >90°
    A=B  =90°