Ok, so basically I have this code in javascript it's math but I can not seem to get the same result in vb.net iv'e tried lots of ways but can't get it to work I was hoping to get some help here's the code:
function doTheMaths() {
var o = data[$("#origin").find(":selected").text()];
var d = data[$("#destination").find(":selected").text()];
var p = data[o.parent];
var t_h = Math.PI * Math.sqrt(Math.pow(o.alt+d.alt, 3)/(8*p.mu));
var phase = (180 - Math.sqrt(p.mu/d.alt) * (t_h/d.alt) * (180/Math.PI)) % 360;
$("#phase").val("" + Math.round(phase*100)/100 + "°");
var exitAlt = o.alt + o.soi;
var v2 = Math.sqrt(p.mu/exitAlt) * (Math.sqrt((2*d.alt)/(exitAlt+d.alt)) - 1);
var r = o.radius + parseInt($("#orbit").val());
var v = Math.sqrt( (r* (o.soi*v2*v2 - 2*o.mu) + 2*o.soi*o.mu) / (r*o.soi) );
$("#velocity").val("" + Math.round(v*100000)/100 + " m/s");
var v_o = Math.sqrt(o.mu/r);
var delta_v = v - v_o;
$("#deltav").val("" + Math.round(delta_v*100000)/100 + " m/s");
var eta = v*v/2 - o.mu/r;
var h = r * v;
var e = Math.sqrt(1+((2*eta*h*h)/(o.mu*o.mu)));
var eject = (180 - (Math.acos(1/e) * (180/Math.PI))) % 360;
if (e < 1) {
var a = -o.mu/(2*eta);
var l = a*(1-e*e);
var nu = Math.acos((l-o.soi)/(e*o.soi));
var phi = Math.atan2((e*Math.sin(nu)), (1+e*Math.cos(nu)));
eject = (90 - (phi*180/Math.PI) + (nu*180/Math.PI)) % 360;
}
$("#ejection").val("" + Math.round(eject*100)/100 + "°");
if (o.inclination != d.inclination)
$("#inclination-warning").show();
if (o.speculated || d.speculated)
$("#speculation-warning").show();
draw(o,d,p,Math.round(phase*100)/100,Math.round(eject*100)/100);
}
I'm not sure if you need anything else but thanks for your time.
EDIT
Ok, for the phase angle I tried:
Dim t_h = Math.PI * Math.Sqrt(Math.Pow(originAlt + destAlt, 3) / (8 * parentMu))
Dim phase = (180 - Math.Sqrt(parentMu / destAlt) * (t_h / destAlt) * (180 / Math.PI))
phaseAngle.Text = ("" & Math.Round(phase * 100) / 100 & "°")
Which is this part of the javascript:
var t_h = Math.PI * Math.sqrt(Math.pow(o.alt+d.alt, 3)/(8*p.mu));
var phase = (180 - Math.sqrt(p.mu/d.alt) * (t_h/d.alt) * (180/Math.PI)) % 360;
$("#phase").val("" + Math.round(phase*100)/100 + "°");
I should get 44.36° but I get -478.82° instead.
Btw phaseAngle is the tex box showing the result angle
I get my data from an xml file:
="1.0"="UTF-8"
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PlanetData.xsd" generated="2014-11-02T16:24:22">
<Planets>
<ID>1</ID>
<planet>Kerbol</planet>
<color>yellow</color>
<mu>1167922000</mu>
<radius>65400</radius>
</Planets>
<Planets>
<ID>2</ID>
<planet>Moho</planet>
<parent>Kerbol</parent>
<color>brown</color>
<inclination>7</inclination>
<mu>245</mu>
<soi>11206.449</soi>
<radius>250</radius>
<alt>5263138.3</alt>
</Planets>
<Planets>
<ID>3</ID>
<planet>Eve</planet>
<parent>Kerbol</parent>
<color>purple</color>
<inclination>2.1</inclination>
<mu>8172</mu>
<soi>85109.364</soi>
<radius>700</radius>
<alt>9832684.544</alt>
</Planets>
<Planets>
<ID>4</ID>
<planet>Gilly</planet>
<parent>Eve</parent>
<color>brown</color>
<inclination>12</inclination>
<mu>0.008289450</mu>
<soi>126.123</soi>
<radius>13</radius>
<alt>31500</alt>
</Planets>
<Planets>
<ID>5</ID>
<planet>Kerbin</planet>
<parent>Kerbol</parent>
<color>skyblue</color>
<inclination>0</inclination>
<mu>3531.6</mu>
<soi>84159.2865</soi>
<radius>600</radius>
<alt>13599840.256</alt>
</Planets>
<Planets>
<ID>6</ID>
<planet>Mun</planet>
<parent>Kerbin</parent>
<color>gray</color>
<inclination>0</inclination>
<mu>65.138</mu>
<soi>2430</soi>
<radius>200</radius>
<alt>12000</alt>
</Planets>
<Planets>
<ID>7</ID>
<planet>Minmus</planet>
<parent>Kerbin</parent>
<color>#97d0a9</color>
<inclination>6</inclination>
<mu>1.7658</mu>
<soi>2247.428</soi>
<radius>60</radius>
<alt>47000</alt>
</Planets>
<Planets>
<ID>8</ID>
<planet>Duna</planet>
<parent>Kerbol</parent>
<color>orange</color>
<inclination>1.85</inclination>
<mu>301.363</mu>
<soi>47921.949</soi>
<radius>320</radius>
<alt>20726155.264</alt>
</Planets>
<Planets>
<ID>9</ID>
<planet>Ike</planet>
<parent>Duna</parent>
<color>silver</color>
<inclination>0.2</inclination>
<mu>18.56837</mu>
<soi>1049.599</soi>
<radius>130</radius>
<alt>3200</alt>
</Planets>
<Planets>
<ID>10</ID>
<planet>Dres</planet>
<parent>Kerbol</parent>
<color>silver</color>
<inclination>5</inclination>
<mu>21.4845</mu>
<soi>32832.84</soi>
<radius>138</radius>
<alt>40839348.203</alt>
</Planets>
<Planets>
<ID>11</ID>
<planet>Jool</planet>
<parent>Kerbol</parent>
<color>green</color>
<inclination>1.3</inclination>
<mu>282528.0042</mu>
<soi>2455985.185</soi>
<radius>6000</radius>
<alt>68773560.320</alt>
</Planets>
<Planets>
<ID>12</ID>
<planet>Laythe</planet>
<parent>Jool</parent>
<color>darkblue</color>
<inclination>0</inclination>
<mu>1962</mu>
<soi>3723.646</soi>
<radius>500</radius>
<alt>27184</alt>
</Planets>
<Planets>
<ID>13</ID>
<planet>Vall</planet>
<parent>Jool</parent>
<color>skyblue</color>
<inclination>0</inclination>
<mu>207.4815</mu>
<soi>2406.401</soi>
<radius>300</radius>
<alt>43152</alt>
</Planets>
<Planets>
<ID>14</ID>
<planet>Tylo</planet>
<parent>Jool</parent>
<color>beige</color>
<inclination>0.025</inclination>
<mu>2825.28</mu>
<soi>10856.51837</soi>
<radius>600</radius>
<alt>68500</alt>
</Planets>
<Planets>
<ID>15</ID>
<planet>Bop</planet>
<parent>Jool</parent>
<color>brown</color>
<inclination>15</inclination>
<mu>2.486835</mu>
<soi>993.0028</soi>
<radius>65</radius>
<alt>104500</alt>
</Planets>
<Planets>
<ID>16</ID>
<planet>Pol</planet>
<parent>Jool</parent>
<color>orange</color>
<inclination>1.304</inclination>
<mu>0.227</mu>
<soi>2455985.185</soi>
<radius>44</radius>
<alt>129890</alt>
</Planets>
<Planets>
<ID>17</ID>
<planet>Eeloo</planet>
<parent>Kerbol</parent>
<color>#ddd</color>
<inclination>6.15</inclination>
<mu>74.4108157</mu>
<soi>119082.94</soi>
<radius>210</radius>
<alt>90118858.179</alt>
</Planets>
</dataroot>
Which I read and declare using this:
Dim planetData = XElement.Load("PlanetData.xml")
Dim originMu As Decimal = planetData.<Planets>.<mu>(originID)
Dim originSoi As Decimal = planetData.<Planets>.<soi>(originID)
Dim originRadius As Decimal = planetData.<Planets>.<radius>(originID)
Dim originAlt As Decimal = planetData.<Planets>.<alt>(originID)
Dim destMu As Decimal = planetData.<Planets>.<mu>(destID)
Dim destSoi As Decimal = planetData.<Planets>.<soi>(destID)
Dim destRadius As Decimal = planetData.<Planets>.<radius>(destID)
Dim destAlt As Decimal = planetData.<Planets>.<alt>(destID)
Dim parentMu As Decimal = planetData.<Planets>.<mu>(0)
Dim parentRadius As Decimal = planetData.<Planets>.<radius>(0)
Origin is Kerbin
Dest is Duna
Parent is Kerbol