前言:在学习用C++计算地球某点的太阳高度角的过程中,查阅了各类资料,但内容繁杂,下面对其进行总结整理,希望可以帮到学习卫星的同学和朋友们。
太阳高度角的计算有以下公式:
上式中h为太阳高度角,为某目标点的地理纬度,为太阳赤纬,t为时角。
基本步骤如下:
①输入已知目标点的地理纬度和经度
②计算太阳赤纬
③计算时角t
接下来按以上步骤进行计算,以下是我的计算思路:
①输入目标点的地理纬度和经度
cout Longitude_position;cout Latitude_position;②计算太阳赤纬
一年内任何一天的赤纬角可以用如下公式计算:
在上式中,N为年积日,为从每年的一月一日算起,当天是第几天。故此时我们还需要计算年积日N。
年积日可以如下面公式计算:
double N = floor(month*275.0/9.0)-floor((month+9)/12.0)*(floor((year-4*floor(year/4.0)+2)/3.0)+1)+day-30;因此我们还需要输入当时时刻的日期:
cout year;cin >> month;cin >> day;
计算年积日N后将其带入赤纬的计算公式即可计算出太阳赤纬。计算太阳赤纬的函数如下:
//采用简便方法计算//计算太阳赤纬double Solar_declination(int year,int month,int day){double N = floor(month*275.0/9.0)-floor((month+9)/12.0)*(floor((year-4*floor(year/4.0)+2)/3.0)+1)+day-30;cout