static public class TriangleSolutions{...}
查看 :MyTool.Dynamic.CompleteTriangle全解三角形
目录
1.Get_A_Angle_AAA 提供 : 两个角,获得第三角 : 角A=180-(角B+角C) 同理
2.Getdiameter_Edge_Angle 提供 : 角和对边 , 获得外接圆直径
3.GetEdge_Angle_diameter 提供 : 角和外接圆直径 , 获得角的对边
4.GetAngle_Edge_diameter 提供 : 角的对边和外接圆直径 , 获得<=90的角
5.Get_A_Angle_EEE 提供 : 三个边 , 获得一个角
6.Get_A_Edge_EAE 提供 : 两个边和一个夹角 , 获得夹角的对边
1.Get_A_Angle_AAA 提供 : 两个角,获得第三角 : 角A=180-(角B+角C) 同理
/// <summary>
/// 提供 : 两个角,获得第三角 : 角A=180-(角B+角C) 同理
/// </summary>
/// <param name="B_Angle">角B</param>
/// <param name="C_Angle">角C</param>
/// <returns>return : 角A</returns>
static public float Get_A_Angle_AAA(float B_Angle,float C_Angle){//获取角
return 180-(B_Angle+C_Angle);
}
2.Getdiameter_Edge_Angle 提供 : 角和对边 , 获得外接圆直径
/// <summary>
/// 提供 : 角和对边 , 获得外接圆直径
/// </summary>
/// <param name="Angle">角</param>
/// <param name="Edge">角的对边</param>
/// <returns>return : 外接圆直径</returns>
static public float Getdiameter_Edge_Angle(float Angle,float Edge){//获取外接圆直径
return Edge/Mathf.Sin(Angle*Mathf.Deg2Rad);//获取外接直径
}
3.GetEdge_Angle_diameter 提供 : 角和外接圆直径 , 获得角的对边
/// <summary>
/// 提供 : 角和外接圆直径 , 获得角的对边
/// </summary>
/// <param name="Angle">角</param>
/// <param name="diameter">外接圆直径</param>
/// <returns>return : 角的对边</returns>
static public float GetEdge_Angle_diameter(float Angle , float diameter){//通过外接圆直径获得边
return Mathf.Sin(Angle*Mathf.Deg2Rad)*diameter;//通过直径获得边
}
4.GetAngle_Edge_diameter 提供 : 角的对边和外接圆直径 , 获得<=90的角
/// <summary>
/// 提供 : 角的对边和外接圆直径 , 获得<=90的角
/// </summary>
/// <param name="Edge">角的对边</param>
/// <param name="diameter">外接圆直径</param>
/// <returns>return : <=90的角</returns>
static public float GetAngle_Edge_diameter(float Edge ,float diameter){//通过外接圆直径获得<=90的角
return Mathf.Asin(Edge/diameter)*Mathf.Rad2Deg;//获得<=90的角
}
5.Get_A_Angle_EEE 提供 : 三个边 , 获得一个角
/// <summary>
/// 提供 : 三个边 , 获得一个角
/// </summary>
/// <param name="A_Edge">角A的对边</param>
/// <param name="B_Edge">角B的对边</param>
/// <param name="C_Edge">角C的对边</param>
/// <returns>return : 角A</returns>
static public float Get_A_Angle_EEE(float A_Edge ,float B_Edge,float C_Edge){//从三边获得一角
return Mathf.Acos((B_Edge*B_Edge+C_Edge*C_Edge - A_Edge*A_Edge) / (2*(B_Edge*C_Edge)))*Mathf.Rad2Deg;
}
6.Get_A_Edge_EAE 提供 : 两个边和一个夹角 , 获得夹角的对边
/// <summary>
/// 提供 : 两个边和一个夹角 , 获得夹角的对边
/// </summary>
/// <param name="A_Angle">夹角A</param>
/// <param name="B_Edge">角B的对边</param>
/// <param name="C_Edge">角C的对边</param>
/// <returns>return : 角A的对边</returns>
static public float Get_A_Edge_EAE(float A_Angle,float B_Edge,float C_Edge){//夹角获取对边
return Mathf.Sqrt(B_Edge*B_Edge+C_Edge*C_Edge-2*B_Edge*C_Edge*Mathf.Cos(A_Angle*Mathf.Deg2Rad));
}