求角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;
}求正确的解法,穷人,没分了。不好意思啊
A = (3,9)
B = (0,3)
C = (5 , 4 )求角BAC 的 度数
计算直线BA和直线CA的角度差即可
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;
}
ArcCos, ACos具体是什么不知道,你自己找找吧。