00001 #include <math.h>
00002
00003 #define HR_PER_RADIAN (12.0 / PI)
00004 #define PI_OVER_180 (PI / 180)
00005
00006 static short days_thru_month[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
00007
00008 class SolarAngles {
00009 private:
00010
00011
00012
00013
00014
00015 public:
00016
00017
00018
00019
00020
00021 SolarAngles(void);
00022 ~SolarAngles(void);
00023
00024 double eq_time(short day_of_yr);
00025 double solar_time(double std_time, short day_of_yr, double std_meridian, double longitude);
00026 double local_time(double std_time, short day_of_yr, double std_meridian, double longitude);
00027 double declination(short day_of_yr);
00028 double cos_incident(double lititude, double slope, double az, double sol_time, short day_of_yr);
00029 double incident(double lititude, double slope, double az, double sol_time, short day_of_yr);
00030 double zenith(short day_of_yr, double lititude, double sol_time);
00031 double altitude(short day_of_yr, double lititude, double sol_time);
00032 double hr_sunrise(short day_of_yr, double lititude);
00033 double day_len(short day_of_yr, double lititude);
00034 short day_of_yr(short month, short day);
00035 };