| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
| String??
Hi @all, Ich hab folgenden Code... Code:
function vmag(planName:String){
var cosi=(RaDec[2]*RaDec[2]) + (helioXYZ[3]*helioXYZ[3])-1/2*RaDec[2]*helioXYZ[3];
var i=cosd(cosi);
var m0=0;
if (planName=="Mercury"){m0=-0.003+1.815*(i/100)+1.023*((i/100)*(i/100));}
if (planName=="Venus" ){m0=-4.00+1.322*(i/100)+0.4247*((i/100)*(i/100)*(i/100));}
if (planName=="Mars" ){m0=-1.30+1.486*(i/100);}
if (planName=="Jupiter"){m0=-8.93;}
if (planName=="Saturn" ){m0=-8.68;}
return m0+5*Math.log(helioXYZ[3]*(RaDec[2]/149597870*149597870));
} Aber komischerweise sieht AS das irgendwie nicht als String? Im Debugger steht: unter Lokale Variablen Name: planName Wert="Mercury". Aber warum spring er nicht in die if Verzweigung und rechnet m0 aus ?? |
| | |
| | #2 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
tut er doch - hab mal im case "mercury" um nen trace erweitert. Code:
function vmag(planName:String){
var cosi=(RaDec[2]*RaDec[2]) + (helioXYZ[3]*helioXYZ[3])-1/2*RaDec[2]*helioXYZ[3];
var i=cosd(cosi);
var m0=0;
if (planName=="Mercury"){m0=-0.003+1.815*(i/100)+1.023*((i/100)*(i/100));trace("test")}
if (planName=="Venus" ){m0=-4.00+1.322*(i/100)+0.4247*((i/100)*(i/100)*(i/100));}
if (planName=="Mars" ){m0=-1.30+1.486*(i/100);}
if (planName=="Jupiter"){m0=-8.93;}
if (planName=="Saturn" ){m0=-8.68;}
return m0+5*Math.log(helioXYZ[3]*(RaDec[2]/149597870*149597870));
}
vmag("Mercury"); |
| | |
| | #4 (permalink) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
|
wieso kommt naN bei m0 raus? ich definiere doch m0 in der 6ten Zeile var m0 = 0 ? ...das mach ich eigentlich nur, um sie zu initalisiern. bei mir im Debugger schreibt er m0=0, was ja auch stimmt? nur ins if geht er nicht? |
| | |
| | #8 (permalink) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
|
...jo kann sein, ich hab sie nicht mit :Number definiert sonder nur mit var? das RaDec hab ich hier... Code: function RaDec(planet,erde,jd) {
// Equatorial coordinates
var xp=planet[0];//trace("x:"+xp);
var yp=planet[1];//trace("y:"+yp);
var zp=planet[2];//trace("z:"+zp);
// julian date
var jdobs=jd;
// Obliquity of Ecliptic
var obl=23.4393-3.563E-7*(jdobs-2451543.5);
// Convert to Geocentric coordinates
var x1=xp-erde[0];
var y1=(yp-erde[1])*cosd(obl)-(zp-erde[2])*sind(obl);
var z1=(yp-erde[1])*sind(obl)+(zp-erde[2])*cosd(obl);
// RA and dec
var ra=rev(atan2d(y1,x1));
var dec=atan2d(z1,Math.sqrt(x1*x1+y1*y1));
// Earth distance
var r=Math.sqrt(x1*x1+y1*y1+z1*z1);
return new Array(ra,dec,r);
} Code: function helioXYZ(jd,pNr) {
var rads = Math.PI/180;
var degs= 180/Math.PI;
var T=(jd-2451545.0)/36525;
var T2=T*T;
var T3=T2*T;
// Mean longitude
var L = Planet.DS[pNr][1][0] +
Planet.DS[pNr][1][1]*T +
Planet.DS[pNr][1][2]*T2+
Planet.DS[pNr][1][3]*T3;
// semimajor axis
var a = Planet.DS[pNr][2][0] +
Planet.DS[pNr][2][1]*T +
Planet.DS[pNr][2][2]*T2+
Planet.DS[pNr][2][3]*T3;
// eccentricity
var e = Planet.DS[pNr][3][0] +
Planet.DS[pNr][3][1]*T +
Planet.DS[pNr][3][2]*T2+
Planet.DS[pNr][3][3]*T3;
// inclination
var i = Planet.DS[pNr][4][0] +
Planet.DS[pNr][4][1]*T +
Planet.DS[pNr][4][2]*T2+
Planet.DS[pNr][4][3]*T3;
// longitude of ascending node
var N = Planet.DS[pNr][5][0] +
Planet.DS[pNr][5][1]*T +
Planet.DS[pNr][5][2]*T2+
Planet.DS[pNr][5][3]*T3;
// longitude of perihelion
var P = Planet.DS[pNr][6][0] +
Planet.DS[pNr][6][1]*T +
Planet.DS[pNr][6][2]*T2+
Planet.DS[pNr][6][3]*T3;
var M=range360(L-P);
var w=range360(L-N-M);
// Eccentric anomaly
var E0=M+(180.0/Math.PI)*e*Math.sin(M*rads)*(1+e*Math.cos(M*rads));//trace("E0:=" +E0);
var E=E0-(E0-(180.0/Math.PI)*e*Math.sin(E0*rads)-M)/(1-e*Math.cos(E0*rads));
while (Math.abs(E0-E) > 0.0005) {
E0=E;
E=E0-(E0-(180.0/Math.PI)*e*Math.sin(E0*rads)-M)/(1-e*Math.cos(E0*rads));
};
//trace("E :="+E);
var x=a*(Math.cos(E*rads)-e);
var y=a*Math.sqrt(1-e*e)*Math.sin(E*rads);
var r=Math.sqrt(x*x+y*y);
var v=range360(atan2d(y,x)); //trace("v:= "+v);
// Heliocentric Ecliptic Rectangular Coordinates
var xeclip=r*(cosd(N)*cosd(v+w)-sind(N)*sind(v+w)*cosd(i)); //trace("xpos:="+xeclip);
var yeclip=r*(sind(N)*cosd(v+w)+cosd(N)*sind(v+w)*cosd(i)); //trace("ypos:="+yeclip);
var zeclip=r*sind(v+w)*sind(i); //trace("zpos:="+zeclip);
//Entfernung Planet-Sonne(AU)
var reclip=Math.sqrt((xeclip*xeclip)+(yeclip*yeclip)+(zeclip*zeclip))
return new Array(xeclip,yeclip,zeclip,reclip);
} helioXYZ[3] bzw RaDec[2] zugreifen will? Nun frag ich mich, ob er die Werte von helioXYZ[3] bzw RaDec[2] eben in der vmag noch hat? hmm... |
| | |
| | #10 (permalink) |
| habs vergessen Registriert seit: Feb 2006
Beiträge: 990
|
und ob er wie werte helioXYZ[3] bzw RaDec[2] noch in vmag hat oder nicht kannst du innerhalb vmag doch eben tracen: Code:
function vmag(planName:String){
trace(helioXYZ[3] + " :: " + RaDec[2]);
var cosi=(RaDec[2]*RaDec[2]) + (helioXYZ[3]*helioXYZ[3])-1/2*RaDec[2]*helioXYZ[3];
var i=cosd(cosi);
var m0=0;
if (planName=="Mercury"){m0=-0.003+1.815*(i/100)+1.023*((i/100)*(i/100));trace("test")}
if (planName=="Venus" ){m0=-4.00+1.322*(i/100)+0.4247*((i/100)*(i/100)*(i/100));}
if (planName=="Mars" ){m0=-1.30+1.486*(i/100);}
if (planName=="Jupiter"){m0=-8.93;}
if (planName=="Saturn" ){m0=-8.68;}
return m0+5*Math.log(helioXYZ[3]*(RaDec[2]/149597870*149597870));
}
vmag("Mercury"); wohl nicht mehr. pwd |
| | |
| | #11 (permalink) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
|
jo, da steht undefind! ...ich versuch sie mal explizit als Number anzugeben! Also var variable:Number = ... oder? Ich hab die zwei functions wieder in einer überfunktion posPlan. Mit den Güligkeitsbereichen ist das so ne Sache in AS?? Vll sollt ich eh eher alles als _global angeben?? vorläufiges resultat kannst dir ja da: http://www.dwienand.de/pP.html anschaun. Geändert von Circushund (12-05-2006 um 11:48 Uhr) |
| | |
| | #13 (permalink) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
|
jetzt hab ich... Code: function vmag(planName:String,rErde:Number,rPlanet:Number){
trace(rErde + " :: " + rPlanet);
var cosi:Number=(rErde*rErde) + (rPlanet*rPlanet)-1/(2*rErde*rPlanet);trace("cosi " +cosi)
var i=cosd(cosi);
var m0=0;
if (planName=="Mercury"){m0=-0.003+1.815*(i/100)+1.023*((i/100)*(i/100));trace("m0" +m0)}
if (planName=="Venus" ){m0=-4.00+1.322*(i/100)+0.4247*((i/100)*(i/100)*(i/100));}
if (planName=="Mars" ){m0=-1.30+1.486*(i/100);}
if (planName=="Jupiter"){m0=-8.93;}
if (planName=="Saturn" ){m0=-8.68;}
return m0+5*Math.log(rPlanet*(rErde/149597870*149597870));
} Code: Planet.hell = vmag(Planet.DS[pNr][0],RaDec[2],helioXYZ[3]); Code: undefined :: undefined cosiNaN undefined :: undefined ![]() aber Danke dir für deine Hilfe trotzdem ... |
| | |
| | #15 (permalink) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
|
hmm... ich wollt dir nochmal zeigen was so komisch ist ... Code: function vmag(planName:String,rErde:Number,rPlanet:Number){
trace("Mein Name ist "+planName);
var cosi:Number=(rErde*rErde) + (rPlanet*rPlanet)-1/(2*rErde*rPlanet);
var i=cosd(cosi);trace("Mein i = " +cosi);
var m0=0;
if (planName == "Mercury"){m0=-0.003+1.815*(i/100)+1.023*((i/100)*(i/100));trace("hier mein m0 " +m0)}
if (planName == "Venus" ){m0=-4.00+1.322*(i/100)+0.4247*((i/100)*(i/100)*(i/100));trace("hier mein m0 " +m0)}
if (planName == "Mars" ){m0=-1.30+1.486*(i/100);trace("hier mein m0 " +m0)}
if (planName == "Jupiter"){m0=-8.93;trace("hier mein m0 " +m0)}
if (planName == "Saturn" ){m0=-8.68;trace("hier mein m0 " +m0)}
trace("So, nun bin ich fertig !");trace(" ");
return m0 + 5 * Math.log(rPlanet*rErde/1);
} Code: Mein Name ist Mercury Mein i = 0.673010042863747 So, nun bin ich fertig ! Mein Name ist Venus Mein i = 0.979031460040725 So, nun bin ich fertig ! Mein Name ist Earth Mein i = -Infinity So, nun bin ich fertig ! Mein Name ist Mars Mein i = 6.6464027420804 So, nun bin ich fertig ! Mein Name ist Jupiter Mein i = 48.8391401768337 So, nun bin ich fertig ! Mein Name ist Saturn Mein i = 170.885363222299 So, nun bin ich fertig ! Code: _global.Planet=new Object(); Code: Planet.hell = vmag(Planet.Name,Planet.rGeo,Planet.rHelio); somit wäre dann Planet.Name eigntlich irgendwie nicht String sondern... Object oderso? |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |