Verwenden der Rektaszensions- und Deklinationswerte aus der HYG-Datenbank von The Astronomy Nexus :
Die Rektaszension wird in Stunden und die Deklination in Grad gemessen.
1 - Rektaszension und Deklination in Grad umwandeln
float getAngle(float value, char units)
{
if (units == 'h')
{
// 15 degrees = 1 hour
// 360/24 = 15
return value * 15;
}
else
{
return value;
}
}
Wenn Rektaszension eingegeben wird, wird die Eingabe mit 15 multipliziert, da RA in Stunden gemessen wird.
Wenn die Deklination eingegeben wird, wird der Eingabewert zurückgegeben, da Dec bereits in Grad gemessen wird.
2 - Berechnen Sie die Vektoren
Es können zwei gleichschenklige Dreiecke abgeleitet werden, eines für die horizontale Ebene und ein weiteres für die vertikale Ebene. Die Winkel sind Alpha und Delta, Rektaszension bzw. Deklination. Wenn Sie diese Winkel verwenden und wissen, dass einige der Entfernungen gleich der Entfernung zwischen dem Mittelpunkt der Himmelskugel und dem Stern sind, sollte der folgende Code funktionieren.
Vector3 getVectors(float RA, float Dec)
{
float x = distanceStars;
float z = (2 * distanceStars * (Mathf.Sin((getAngle(RA, 'h'))/ 2)));
float y = (2 * distanceStars * (Mathf.Sin((getAngle(Dec, 'd'))/ 2)));
return new Vector3(x, y, z);
}
Leider scheint mein Code nicht zu funktionieren, da dies die Ausgabe ist, die ich bekomme:
Wie Sie sehen können, verteilen sich die Sterne (weiße Punkte) nicht gleichmäßig um die Erde (die schwarze Kugel in der Mitte).
Es wäre toll, wenn mir jemand dabei helfen könnte.
Die Sterne sollten passen aber scheinen in der gezeichnet werden Flugzeug statt.
Üblicherweise liegt die x- Achse bei ( α = 0 h , δ = 0°), die y -Achse bei ( α = 6 h , δ = 0°) und die z- Achse bei δ = +90°.
Verwenden von rechtwinkligen Dreiecken anstelle von gleichschenkligen Dreiecken,
Dann , Und
Die meisten Mathematikbibliotheken verwenden Bogenmaß für Winkel. Das Passieren von Winkeln in anderen Einheiten an Triggerfunktionen kann dazu führen, dass eine Himmelskugel etwas gleichmäßig, aber falsch abgedeckt wird.
Benutzer31179
Benutzer21
PM 2Ring
double
nicht verwendenfloat
.SidS
SidS
Benutzer31179