80 lines
2.4 KiB
C
80 lines
2.4 KiB
C
|
#ifndef HGL_MATH_PHYSICS_CONST_INCLUDE
|
|||
|
#define HGL_MATH_PHYSICS_CONST_INCLUDE
|
|||
|
|
|||
|
namespace hgl
|
|||
|
{
|
|||
|
constexpr double HGL_GOLDEN_RATIO =0.61803398874989484820458683436563811772030917980576;//<2F>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
constexpr double HGL_SILVER_RATIO =2.4142135623730950488; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
constexpr double HGL_SPEED_OF_SOUND =331.3f; //<2F><><EFBFBD><EFBFBD>(<28><>/<2F><>)
|
|||
|
constexpr double HGL_SPEED_OF_LIGHT =299792458; //<2F><><EFBFBD><EFBFBD>(<28><>/<2F><>)
|
|||
|
|
|||
|
constexpr double HGL_ABSOLUTE_ZERO =-273.15f; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
constexpr double HGL_UNIVERSAL_GRAVITATION =6.67384e-11; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
constexpr double HGL_EARTH_GRAVITATIONAL_ACCELERATION =9.80665; //<2F><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(ţ<><C5A3>)
|
|||
|
constexpr double HGL_EARTH_MASS =5.9722e+24; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
constexpr double HGL_EARTH_RADIUS =6371000; //<2F><><EFBFBD><EFBFBD><EFBFBD>뾶(<28><>)
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param m1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param m2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param length <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵľ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
template<typename T>
|
|||
|
inline T UniversalGravitation(const T m1,const T m2,const T length)
|
|||
|
{
|
|||
|
return HGL_UNIVERSAL_GRAVITATION*((m1*m2)/(length*length));
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD><br>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)/(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뾶<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>)=<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
* @param m <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param raidus <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뾶
|
|||
|
* @return <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>(ţ<EFBFBD><EFBFBD>)
|
|||
|
*/
|
|||
|
template<typename T>
|
|||
|
inline T UniversalGravitation(const T m,const T radius)
|
|||
|
{
|
|||
|
return (HGL_UNIVERSAL_GRAVITATION*m)/(radius*radius);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param m <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param v <EFBFBD>ٶ<EFBFBD>
|
|||
|
* @param r <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
template<typename T>
|
|||
|
inline T CentripetalForce(const T m,const T v,const T r)
|
|||
|
{
|
|||
|
return (m*v*v)/r;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ٶȼ<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param power <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param weight <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
template<typename T>
|
|||
|
inline T AddSpeed(const T &power,const T &weight)
|
|||
|
{
|
|||
|
return power/weight;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>Խ<EFBFBD>죬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD>)
|
|||
|
* @param m0 <EFBFBD><EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param v <EFBFBD>˶<EFBFBD><EFBFBD>ٶ<EFBFBD>
|
|||
|
*/
|
|||
|
template<typename T>
|
|||
|
inline T RunWeight(const T &m0,const T &v)
|
|||
|
{
|
|||
|
return m0/sqrt(1-(v*v)/(HGL_SPEED_OF_LIGHT*HGL_SPEED_OF_LIGHT));
|
|||
|
}
|
|||
|
}//namespace hgl
|
|||
|
#endif//HGL_MATH_PHYSICS_CONST_INCLUDE
|