Hallo Leute,
ich suche jemanden der mir bei folgender Problemstellung hilft bzw. entwickelt.
Ausgangssituation ist ein Sonnensystem, in dem mehrere Planeten in kreisförmigen Orbits um eine Sonne kreisen. Die Orbits haben alle den selben Abstand zueinander, sind kreisförmig (keine Ellipsen) und die Planeten rotieren abhänging vom Orbit unterschiedlich schnell um die Sonne. Abhänging davon, wie nah der Orbit der Sonne ist, benötigen die Planeten n * 1440 Minuten (24 Stunden). Orbit 1 ist dabei der Sonne am nächsten. Dann folgt Orbit 2 usw.
2.PNG
Der Orange / Grüne Punkt sowie die Blauen sind Planeten. Der rote Punkt in der Mitte die Sonne und die schwarzen Linien die Orbits.
Die Koordinaten der Planeten werden dabei in Orbit und aktuelle Gradzahl angegeben. Also Orbit = 1 und Position = 257 oder Orbit = 4 und Position = 23.
Somit kann möglichst genau die Position jedes Planeten innerhalb des Sonnensystems berechnet werden.
Die aktualisierungs Rate beträgt 1 Minute. Das heißt, jede Minute sind die Planeten anhand ihrer Geschwindigkeit einen "Schritt" weiter auf ihrem Orbit gegangen.
Zur berechnung der aktuellen Position eines Planeten habe ich folgende Funktion genutzt:
Die 50 beschreibt den Abstand zwischen den verschiedenen Orbits.
Als weitere Komponente zu dem ganzen kommen die Raumschiffe hinzu.
Diese fliegen mit einer Geschwindigkeit von x pro Minute durchs Weltall.
Soviel zur Ausgangssituation.
Nun würde ich ganz gerne den die Route von einem Planeten zu einem anderen berechnen und in kleinere Teilvektoren aufsplitten. Die Bedingungen sind:
3.PNG
Folgende Grafik als Beispiel:
Ich möchte von grünen Planeten zum orangen Planten fliegen. Die Blauen Planeten sind alle "feindlich", daher möchte ich in einem Abstand von x um diese herumfliegen. (Die blauen Punkte sind die Planeten und die blauen Kreise herum der "Sicherheitsabstand").
Zu beachten ist halt, das alle Positionen sich pro Minute verändern. Ein einfacher Vektor ist daher nicht möglich. Auch muss die Reisegeschwindigkeit von Raumschiffen beachtet werden sowie der Sicherheitsabstand und die Sonne.
Ich glaube ich habe nun alles erklärt sowie alle relevanten Daten und Variablen geliefert.
Ich hoffe jemand kann da Helfen oder nimmt sich dem an.
Angebote und weitere Nachfragen gerne per PM an mich.
Mit freundlichen Grüßen,
Tim Heise
ich suche jemanden der mir bei folgender Problemstellung hilft bzw. entwickelt.
Ausgangssituation ist ein Sonnensystem, in dem mehrere Planeten in kreisförmigen Orbits um eine Sonne kreisen. Die Orbits haben alle den selben Abstand zueinander, sind kreisförmig (keine Ellipsen) und die Planeten rotieren abhänging vom Orbit unterschiedlich schnell um die Sonne. Abhänging davon, wie nah der Orbit der Sonne ist, benötigen die Planeten n * 1440 Minuten (24 Stunden). Orbit 1 ist dabei der Sonne am nächsten. Dann folgt Orbit 2 usw.
Sonne | |
Orbit 1 | 1440 Minuten |
Orbit 2 | 2880 Minuten |
Orbit 3 | 4320 Minuten |
Orbit 4 | 5760 Minuten |
Orbit 5 | 7200 Minuten |
Orbit n | n * 1440 Minuten |
2.PNG
Der Orange / Grüne Punkt sowie die Blauen sind Planeten. Der rote Punkt in der Mitte die Sonne und die schwarzen Linien die Orbits.
Die Koordinaten der Planeten werden dabei in Orbit und aktuelle Gradzahl angegeben. Also Orbit = 1 und Position = 257 oder Orbit = 4 und Position = 23.
Somit kann möglichst genau die Position jedes Planeten innerhalb des Sonnensystems berechnet werden.
Die aktualisierungs Rate beträgt 1 Minute. Das heißt, jede Minute sind die Planeten anhand ihrer Geschwindigkeit einen "Schritt" weiter auf ihrem Orbit gegangen.
Zur berechnung der aktuellen Position eines Planeten habe ich folgende Funktion genutzt:
PHP-Code:
// 0.25 = 360/1440, das heißt, der Planet auf dem Orbit 1 wandert um 0.25 Grad pro Minute, der Planet auf dem Orbit 2 um 0.25 / 2 usw.
$geschwindigkeit = 0.25/$planet->Orbit;
// schritte = geschwindigkeit * aktuelleMinute
$schritte = ($minute*geschwindigkeit);
// aktuelle Position = Die aktuelle Position des Planeten addiert mit den Schritte nach x Minuten
$aktuellePosition = $planet->Position +$schritte;
$position = array(
"x" => (sin(deg2rad(aktuellePosition)) * 50 * $planet->Orbit),
"y" => (cos(deg2rad(aktuellePosition)) * 50 * $planet->Orbit)
);
Als weitere Komponente zu dem ganzen kommen die Raumschiffe hinzu.
Diese fliegen mit einer Geschwindigkeit von x pro Minute durchs Weltall.
Soviel zur Ausgangssituation.
Nun würde ich ganz gerne den die Route von einem Planeten zu einem anderen berechnen und in kleinere Teilvektoren aufsplitten. Die Bedingungen sind:
- Raumschiffe dürfen NICHT durch die Sonne fliegen.
- Raumschiffe dürfen NICHT in einen Bereich um "feindliche" Planeten fliegen
- Raumschiffe sollen immer den schnellsten/kürzesten Weg fliegen.
3.PNG
Folgende Grafik als Beispiel:
Ich möchte von grünen Planeten zum orangen Planten fliegen. Die Blauen Planeten sind alle "feindlich", daher möchte ich in einem Abstand von x um diese herumfliegen. (Die blauen Punkte sind die Planeten und die blauen Kreise herum der "Sicherheitsabstand").
Zu beachten ist halt, das alle Positionen sich pro Minute verändern. Ein einfacher Vektor ist daher nicht möglich. Auch muss die Reisegeschwindigkeit von Raumschiffen beachtet werden sowie der Sicherheitsabstand und die Sonne.
Ich glaube ich habe nun alles erklärt sowie alle relevanten Daten und Variablen geliefert.
Ich hoffe jemand kann da Helfen oder nimmt sich dem an.
Angebote und weitere Nachfragen gerne per PM an mich.
Mit freundlichen Grüßen,
Tim Heise
Kommentar