📄 mathbase.h
字号:
//MathBase.h
#if ( defined(__BORLANDC__) || _MSC_VER <= 1000 ) && !defined( __GNUG__ )
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <iostream.h>
# include <string.h>
#else
# include <cmath>
# include <cstdio>
# include <cstdlib>
# include <string>
# include <iostream>
#endif
#pragma once
#define PI (4.*atan(1.0));
//中心化经度
double CenterL(double dl)
{
return (dl-2.0748967728807)*100.0;
}
//中心化纬度
double CenterB(double db)
{
return (db-0.444297153027155)*100.0;
}
//还原中心化经度
double ReturnCenterL(double dl)
{
return dl/100.0+2.0748967728807;
}
//还原中心化纬度
double ReturnCenterB(double db)
{
return db/100.0+0.444297153027155;
}
//弧度——dd.mmsssssss
double Arc2DMS(double dd)
{
int iDegree,iMinute;
double dSecond;
dd=dd*180.0/PI; //度
iDegree=int(dd);
iMinute=int((dd-iDegree)*60.0);
dSecond=(dd-iDegree-iMinute/60.0)*3600.0;
return iDegree + iMinute/100.0+ dSecond/10000.0;
}
// 十进制度 -- 弧度
double int_radian(double intdeg)
{
return intdeg * 0.0174532925;
}
// 度分秒 -- 十进制度
double deg_int(double gms)
{
short g, m;
double m_gms, s, intdeg;
if(gms > -.000001 && gms < .000001) return 0;
g = (short)gms;
m_gms = gms - g;
m = short(100 * m_gms);
s = 100 * (100 * m_gms - m);
intdeg = g + m / 60.0 + s / 3600.0 + .000005;
return intdeg;
}
double myu(double a, double b) // Uniform Distribution
{
double y;
if(a>b) {
printf("\nThe first parameter should be less than the second!");
exit(1);
}
y = (double)rand()/(RAND_MAX);
return (a+(b-a)*y);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -