SDHK_Tool.Static.SS_TriangleSolutions 用于unity3d解三角形

目录

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 提供 : 两个边和一个夹角 , 获得夹角的对边

全篇:

 


 

 

* 作者:闪电Y黑客

* 日期: 2019.6.11

* 功能:解三角的静态方法

 

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));
}

 

全篇:

using UnityEngine;

/*
 * 作者:闪电Y黑客
 * 
 * 日期: 2019.6.11
 * 
 * 功能:解三角的静态方法
 */

namespace SDHK_Tool.Static
{

    /// <summary>
    /// 用于unity3d解三角形
    /// </summary>
    static public class SS_TriangleSolutions
    {


        //=[三角形求值]=================================================
        /// <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);
        }
        
        /// <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);//获取外接直径
        }
        
        /// <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;//通过直径获得边
        }
        
        /// <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的角
        }


        /// <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;
        }
        
        /// <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));
        }
    }


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值