求角a的度数以下是我算的公式,但是貌似不对,求大侠 用C#解/// <summary>
    /// 根据余弦值求角度
    /// </summary>
    /// <param name="CosA">余弦值</param>
    /// <returns></returns>
    public double Angle(double CosA)
    {
        return Math.Atan(Math.Sqrt(1 / Math.Pow(CosA, 2) - 1)) * 180 / Math.PI;
    }
    /// <summary>
    /// 求a,b的余弦值
    /// </summary>
    /// <param name="a"></param>
    /// <param name="b"></param>
    /// <param name="c"></param>
    /// <returns></returns>
    public double Degress(double a, double b, double c)
    {
        double cosa = Math.Abs((Math.Pow(a, 2) + Math.Pow(b, 2) - Math.Pow(c, 2)) / (2 * a * b));
        return cosa;
    }
    /// <summary>
    /// 求两点间的距离
    /// </summary>
    /// <param name="x1">第一个点的x坐标</param>
    /// <param name="y1">第一个点的y坐标</param>
    /// <param name="x2">第二个点的x坐标</param>
    /// <param name="y2">第二个点的y坐标</param>
    /// <returns></returns>
    public double Distance(double x1, double y1, double x2, double y2)
    {
        double dist;
        dist = Math.Sqrt(Math.Pow(x1 - x2, 2) + Math.Pow(y1 - y2, 2));
        
        return dist;
    }求正确的解法,穷人,没分了。不好意思啊

解决方案 »

  1.   

    就是 三个点 A,B,C 
    A = (3,9)
    B = (0,3)
    C = (5 , 4 )求角BAC 的 度数
      

  2.   

    求ab,ac直线方程,计算K(斜率)的差,用反正切求角度。
      

  3.   

    把直线方程表示为y=kx+b的形式,分别得到直线ab、ac的斜率k。
      

  4.   

    不要自找麻烦..
    计算直线BA和直线CA的角度差即可
      

  5.   

            Point pa=new Point(3,9);
            Point pb = new Point(0, 3);
            Point pc = new Point(5, 4);
            private double pi = 3.14;
            double CalcDegree()
            {
                double degreeAB, degreeAC;
                if (pb.X == pa.X) degreeAB = pi/2;
                else degreeAB = Math.Atan((pb.Y - pa.Y)/(pb.X - pa.X));
                if (pc.X == pa.X) degreeAC = pi/2;
                else degreeAC = Math.Atan((pc.Y - pa.Y) / (pc.X - pa.X));
                return degreeAB - degreeAC;
            }
      

  6.   

    根据cos值求角度,有函数啊,为啥自己编?
    ArcCos, ACos具体是什么不知道,你自己找找吧。