Created
June 1, 2013 11:01
-
-
Save Kirilliann/5690018 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function parab(jdn,e,q,incl,Omega,peri,j0){ | |
/* jdn -текущая юлианская дата j0 - юлианская дата перигелия*/ | |
var t=jdn-j0 | |
var k=0.01720209895 | |
var rad=180/Math.PI | |
function sind(a){return Math.sin(a/rad)} | |
function cosd(a){return Math.cos(a/rad)} | |
var Q1=(k/(2*q))*Math.sqrt((1+e)/q) | |
var Q2=(k/(2*q))*Math.sqrt((2)/q) | |
var W=Q2*t*3 | |
var G=W/2; | |
var Y=Math.pow(G+Math.sqrt(G*G+1),1/3) | |
var s=Y-1/Y; | |
var r=q*(1+s*s) | |
var u2=2*Math.atan(s)*rad | |
s=Q1*t+gg | |
r=q*(1+e)/(1+Math.cos(u2/rad)) | |
var dzeta=r*cosd(u2) | |
var nu=r*sind(u2) | |
var A1=cosd(Omega) | |
var A2=sind(Omega) | |
var A3=0 | |
var B1=-sind(Omega)*cosd(incl) | |
var B2=cosd(Omega)*cosd(incl) | |
var B3=sind(incl) | |
var w=peri | |
var P1=A1*cosd(w)+B1*sind(w); // | |
var P12=A2*cosd(w)+B2*sind(w); | |
var P13=A3*cosd(w)+B3*sind(w); | |
var Q1=B1*cosd(w)-A1*sind(w); | |
var ecl=23.5 | |
var Q12=B2*cosd(w)-A2*sind(w); | |
var Q13=B3*cosd(w)-A3*sind(w); | |
var P2=P12*cosd(ecl)-P13*sind(ecl); | |
var P3=P12*sind(ecl)+P13*cosd(ecl); | |
var Q2=Q12*cosd(ecl)-Q13*sind(ecl); | |
var Q3=Q12*sind(ecl)+Q13*cosd(ecl); | |
var x=P1*dzeta+Q1*nu; | |
var y=P2*dzeta+Q2*nu; | |
var z=P3*dzeta+Q3*nu; | |
var t1=(jdn-2433282)/365.25; | |
var T2=(t1/100); | |
var L=100.00532+359.9937288*t1; | |
var L1=L+180; | |
var l1=358.47583+35999.04972*T2+0.00015*T2*T2; | |
var p=1.0014-0.01643*Math.cos(l1/rad)-0.00014*Math.cos(2*l1/rad); | |
var lambda=L1+1.9171*Math.sin(l1/rad)+0.0200*Math.sin(2*l1/rad)+0.0003*Math.sin(3*l1/rad); | |
var X0=p*Math.cos(lambda/rad); | |
var Y0=p*Math.sin(lambda/rad); | |
var Z0=0; | |
var Xs=X0; | |
var Ys=Y0*Math.cos(ecl/rad); | |
var Zs=Y0*Math.sin(ecl/rad); | |
var Xm=x+Xs; | |
var Ym=y+Ys; | |
var Zm=z+Zs; | |
var alpha1=Math.atan2(Ym,Xm)*rad/15; | |
if (alpha1<0){ | |
alpha1=alpha1+24; | |
} | |
var lko=Math.sqrt((Xm*Xm)+(Ym*Ym)); | |
var delta1=Math.atan2(Zm,lko)*rad; | |
var dlt=Math.sqrt(Xm*Xm+Ym*Ym+Zm*Zm) | |
var m1 =5.5+5*Math.log(dlt)/Math.log(10) + 10.0*Math.log(r)/Math.log(10) | |
return [dlt,delta1,alpha1, m1] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment