#include #define CosZemeSirkaRadDb .638324569; //cos(KonstStupneToRadDb(50,333)) pro Nejdek #define SinZemeSirkaRadDb .769767331; //sin(KonstStupneToRadDb(50,333)) pro Nejdek #define KonstStupneToRadDb .017453292; //pi/180 #define KonstRadToStupneDb 57.2957795; //180/pi double StupneToRadiany (double StupneDb); double RadianyToStupne (double RadianyDb); double SlunecniDeklinaceDb, SlunecniVyskaNadObzoremDb, SlunecniAzimutDb, SlunecniCasovyUhelDb ; char DenI, MesicC, HodinaC ; void main(void) { DenI=21; MesicC=7; HodinaC=12; // pokusna data SlunecniDeklinaceDb=(-23.45* cos((MesicC*30) + DenI-21)); SlunecniDeklinaceDb=StupneToRadiany(SlunecniDeklinaceDb); SlunecniCasovyUhelDb=(HodinaC - 12)*.2617993; // 15° převedeno na RAD SlunecniVyskaNadObzoremDb= sin(SlunecniDeklinaceDb) * SinZemeSirkaRadDb; SlunecniVyskaNadObzoremDb+=cos(SlunecniDeklinaceDb) * cos(SlunecniCasovyUhelDb) * CosZemeSirkaRadDb; SlunecniVyskaNadObzoremDb=asin(SlunecniVyskaNadObzoremDb); SlunecniVyskaNadObzoremDb = RadianyToStupne(SlunecniVyskaNadObzoremDb); // 60.4169922 vysledek OK SlunecniVyskaNadObzoremDb=sin(SlunecniDeklinaceDb)*SinZemeSirkaRadDb+cos(SlunecniDeklinaceDb)*cos(SlunecniCasovyUhelDb)*CosZemeSirkaRadDb; SlunecniVyskaNadObzoremDb=asin(SlunecniVyskaNadObzoremDb); SlunecniVyskaNadObzoremDb = RadianyToStupne(SlunecniVyskaNadObzoremDb); // 15.8247070 tak tahle ne SlunecniVyskaNadObzoremDb ++; SlunecniAzimutDb ++; while (1); } ///////// double StupneToRadiany(double StupneDb) { return StupneDb * KonstStupneToRadDb; } double RadianyToStupne(double RadianyDb) { return RadianyDb * KonstRadToStupneDb; }