// Pzdr.J.P. , wer.09.06.2005 // !!!!!!!!!!!!!!!!!!!!!!!!!!! Obliczaj() !!!!!!!!!!!!!!!!!!!!!!!!!!! function Obliczaj() { var SiteLat,SiteLon,SatLon,Elewacja, E1, A1, E2, A2 SiteLat=1*document.geo.LAT.value; SiteLon=1*document.geo.LON.value; SatLon=13.0; // *** Licz dla HB **** Elewacja=Elewacja_L(SatLon,SiteLat,SiteLon); if (Elewacja<=0) alert("Satelita poniżej horyzontu"); E1=Elewacja; document.dsp.Elew1.value=form(E1, 4); A1=Azymut_L(SatLon,SiteLat,SiteLon)-180; document.dsp.Azym1.value=form(A1, 4); SatLon=-30.0; // *** Licz dla Hispa **** Elewacja=Elewacja_L(SatLon,SiteLat,SiteLon); if (Elewacja<=0) alert("Satelita poniżej horyzontu"); E2=Elewacja; document.dsp.Elew2.value=form(E2, 4); A2=Azymut_L(SatLon,SiteLat,SiteLon)-180; document.dsp.Azym2.value=form(A2, 4); document.Skos2.Stopnie.value=form(Skos_L(SatLon,SiteLat,SiteLon), 4); // *** Licz dla roznice Hisp - HB **** document.Opusc.Stopnie.value=form(E1-E2, 4); document.Przekr.Stopnie.value=form(A2-A1, 4); document.Powtorka.Disp.value=1; // Wyswietl LCD } // !!!!!!!!!!!!!!!! Czytaj Miasto i Szer., Dlug. Geo. !!!!!!!!!!!!!!!!!!! function CzytajMiasto() { var Lat,Lon,MyVal var ValArray=new Array(); MyVal=document.Miasto.Lokalizacja.value; if (MyVal == null) alert("!!! Nie wczytuje Miast. Zmień przeglądarkę na nowszą !!!"); if (MyVal !== null) { // Wyciagnij dlug. i szer. geogr. ValArray=MyVal.split(","); Lat=ValArray[0]; // *** Pierwszy subarray zawiera Lat *** Lon=ValArray[1]; // *** Drugi subarray zawiera Lon *** document.geo.LAT.value=Lat; document.geo.LON.value=Lon; } } // !!!!!!!!!!!!!!!! Licz: Azymut_L; Elewacja_L; Skos_L !!!!!!!!!!!!!!!!!! function Azymut_L(SatLon,SiteLat,SiteLon) { Lon_Dif=Rad(SiteLon-SatLon); Az_Site=180+Deg( Math.atan(Math.tan(Lon_Dif)/Math.sin(Rad(SiteLat))) ); if (SiteLat<0) Az_Site=Az_Site-180; if (Az_Site<0) Az_Site=Az_Site+360.0; return Az_Site; } function Elewacja_L(SatLon,SiteLat,SiteLon) { Lon_Dif=Rad(SiteLon-SatLon); Lat_Site=Rad(SiteLat); r1=1+35786/6378.16; v1=r1*Math.cos(Lat_Site)*Math.cos(Lon_Dif)-1; v2=r1*Math.sqrt(1-Math.cos(Lat_Site)*Math.cos(Lat_Site)*Math.cos(Lon_Dif)*Math.cos(Lon_Dif)); Site_Elev=Deg(Math.atan(v1/v2)); if (Site_Elev<30) Site_Elev_Ref=(Site_Elev+Math.sqrt(Site_Elev*Site_Elev+4.132))/2 else Site_Elev_Ref=Site_Elev; if (Site_Elev_Ref<1) Site_Elev_Ref="< 1"; return Site_Elev_Ref; } function Skos_L(SatLon,SiteLat,SiteLon) { var Pol_Skos Pol_Skos=Deg(Math.atan(Math.sin(Rad(SiteLon-SatLon))/Math.tan(Rad(SiteLat)))); return Pol_Skos; } // !!!!!!!!!!!!!!!!!!!!!!!!!! Drobiazgi !!!!!!!!!!!!!!!!!!!!!!!!!!!! function Rad(x) { // *** Licz radiany **** var ra ra=x*Math.PI/180; return(ra) } function Deg(x) { // *** Licz stopnie **** var de de=x*180/Math.PI; return(de) } function form(co, p_ile) // *** Zaokraglaj do "p_ile" pozycji *** { var invalid = "**************************"; var nines = "999999999999999999999999"; var strin = "" + co; var fltin = parseFloat(strin); if (strin.length <= p_ile) return strin; if (strin.indexOf("e") != -1 || fltin > parseFloat(nines.substring(0, p_ile)+".4")) return invalid.substring(0, pile); var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, p_ile)))); return rounded.substring(0, p_ile); } // Pzdr.J.P. , wer.09.06.2005