tmp update

This commit is contained in:
张壹 2024-09-12 07:05:41 +08:00
parent 333339dc6a
commit 0bcf481b95
3 changed files with 23 additions and 35 deletions

View File

@ -88,16 +88,11 @@ double gctl::sqrtn(double d,int n,double eps)
return halfx;
}
/**
* @brief
*
* @param[in] x_len x方向半径
* @param[in] y_len y方向半径
* @param[in] x_arc
* @param[in] arc x轴正方向的夹角
*
* @return
*/
double gctl::geographic_area(double lon1, double lon2, double lat1, double lat2, double R)
{
return fabs(R*R*(arc(lon2) - arc(lon1))*(sind(lat2) - sind(lat1)));
}
double gctl::ellipse_radius_2d(double x_len, double y_len, double arc, double x_arc)
{
if (fabs(x_len - y_len) < 1e-8) // 就是个圆 直接加
@ -108,20 +103,6 @@ double gctl::ellipse_radius_2d(double x_len, double y_len, double arc, double x_
return sqrt(pow(x_len*cos(arc-x_arc),2) + pow(y_len*sin(arc-x_arc),2));
}
/**
* @brief
*
* 线线
*
*
* @param x_len x方向半径
* @param y_len y方向半径
* @param arc x轴正方向的夹角
* @param elev
* @param out_arc
* @param out_rad
* @param x_arc x轴正方向绕原点逆时针旋转的角度 0
*/
void gctl::ellipse_plus_elevation_2d(double x_len, double y_len, double arc, double elev,
double &out_arc, double &out_rad, double x_arc)
{
@ -158,17 +139,6 @@ void gctl::ellipse_plus_elevation_2d(double x_len, double y_len, double arc, dou
return;
}
/**
* @brief
*
* @param[in] x_len x方向半径
* @param[in] y_len y方向半径
* @param[in] z_len z方向半径
* @param[in] phi x轴正方向的夹角
* @param[in] theta z轴正方向的夹角
*
* @return
*/
double gctl::ellipsoid_radius(double x_len, double y_len, double z_len, double phi, double theta)
{
return x_len*y_len*z_len/sqrt(pow(y_len*z_len*sin(theta)*cos(phi),2) +

View File

@ -71,6 +71,18 @@ namespace gctl
*/
double sqrtn(double val, int order, double eps = 1e-5);
/**
* @brief
*
* @param lon1
* @param lon2
* @param lat1
* @param lat2
* @param R
* @return
*/
double geographic_area(double lon1, double lon2, double lat1, double lat2, double R);
/**
* @brief
*

View File

@ -42,6 +42,12 @@ namespace gctl
return (T(0) < d) - (d < T(0));
}
template <typename T>
inline T arc(T deg)
{
return deg*GCTL_Pi/180.0;
}
template <typename T>
inline T sind(T deg)
{