Ich falle mal gleich mit der Tür ins Haus; ich will einen Punkt auf einer Kugel berechnen.
Mit diesem Code geht das auch und ich kann mich rund um die Kugel bewegen:
damit bekomme ich folgende Bewegung um eine Kugel hin:
das Problem dabei ist;
-die Geschwindigkeit mit der ich den Orbit beschreite ist immer gleich egal wie groß die Kugel ist.
-wenn ich an die Pole meiner Kugel komme dann drehe ich einfach nur einen kleinen horizontalen Kreis anstatt eines Orbits der vertival steht.
-also drehe ich mich immer nur um die z-achse und kann meine höhe mithilfe der y-achse einstellen
-ich muss immer beide Winkel ständig ändern um mich fortzubewegen
ich möchte so etwas erreichen:
ich habe versucht mit den lengthdir funktionen durch zu kommen, da ich mit denen auch wunderbar den orbit und den wechsel zwischen 2 orbits in 2 dimensionen hinbekomme.
Mit der Methode kann ich durch "antrieb" die Geschwindigkeit ändern mit der ich den Orbit beschreite. Und ich kann mein Schiff immer perfekt an die Oberfläche der Kugel ausrichten, aber:
-ich kann mich nur in einer ebene oder einer 8er Schleife um zwei Viertel meiner Kugel bewegen und mache demnach keine echten Umdrehungen.
-ich kann den radius meines Orbits nicht ändern
ich habe heute in der Arbeit viel darüber nachgedacht und skizziert aber ich komme einfach auf keinen grünen Zweig.
Optimum wäre:
-ich verändere die Blickrichtung meines Schiffs, bzw die Nase und daraus wird dann der Orbit errechnet.
-ich kann eine geschwindigkeits variable ändern um mich fortzubewegen
-mein schiff steht immer normal zum mittelpunkt der Kugel auf der ich mich bewege
-ich kann den radius der kugel ändern
Welche Variablen habe ich momentan damit ich mit ihnen arbeiten kann?
-die x,y,z koordinate meines Punkts um den ich drehe
-ich kann die Drehwinkel des Raumschiffs ändern
-die Distanz abfragen zum mittelpunkt
Ich sollte mir doch einen Vektor holen können der aus zwei Winkeln einem Radius und einem ursprung mir einen Punkt holen kann und einen Vector der mir anzeigt wohin ich mich weiter bewege?
Mit den sinus, cosinus funktionen geht das zwar, aber es ist nciht gut das man sich eigtl immer nur um die z-achse bewegt und für kompliziertere Manöver beide Winkel mal in den + mal in den - bereich bewegen muss.
Außerdem muss ich immer eine Verschiebung dazuberechnen und wenn ich in eine andere Kreisbahn schwenken will geht das überhaupt nicht...
Das blaue ist mein Raumschiff und die Richtung in die es zeigt. Auf der linken seite fliegt das Schiff ständig im Kreis und umkreist immer den Orbitmittelpunkt während der sich langsam zur zweiten Kugel bewegt. Dabei fliegt es auch mal rückwärts (nicht gut). Rechts dreht sich das Schiff einfach und richtet sich an den neuen Orbit aus. Mit verschiebung entlang der direction+90 lässt sich der radius nun verkleinern auf die gewünschte Orbithöhe.
Noch ein Bild damit man sich etwas vorstellen kann, wenn es gebraucht wird kann ich zwei Versionen hier hochladen, einmal mit sinus/cosinus berechnugsart und einmal mit lengthdir, damit ihr seht wie man sich dabei bewegt. Ich bin mit meinen Mathekenntnissen leider nun ziemlich am Ende^^
Mit diesem Code geht das auch und ich kann mich rund um die Kugel bewegen:
GML-Quellcode
damit bekomme ich folgende Bewegung um eine Kugel hin:
das Problem dabei ist;
-die Geschwindigkeit mit der ich den Orbit beschreite ist immer gleich egal wie groß die Kugel ist.
-wenn ich an die Pole meiner Kugel komme dann drehe ich einfach nur einen kleinen horizontalen Kreis anstatt eines Orbits der vertival steht.
-also drehe ich mich immer nur um die z-achse und kann meine höhe mithilfe der y-achse einstellen
-ich muss immer beide Winkel ständig ändern um mich fortzubewegen
ich möchte so etwas erreichen:
ich habe versucht mit den lengthdir funktionen durch zu kommen, da ich mit denen auch wunderbar den orbit und den wechsel zwischen 2 orbits in 2 dimensionen hinbekomme.
Mit der Methode kann ich durch "antrieb" die Geschwindigkeit ändern mit der ich den Orbit beschreite. Und ich kann mein Schiff immer perfekt an die Oberfläche der Kugel ausrichten, aber:
-ich kann mich nur in einer ebene oder einer 8er Schleife um zwei Viertel meiner Kugel bewegen und mache demnach keine echten Umdrehungen.
-ich kann den radius meines Orbits nicht ändern
ich habe heute in der Arbeit viel darüber nachgedacht und skizziert aber ich komme einfach auf keinen grünen Zweig.
Optimum wäre:
-ich verändere die Blickrichtung meines Schiffs, bzw die Nase und daraus wird dann der Orbit errechnet.
-ich kann eine geschwindigkeits variable ändern um mich fortzubewegen
-mein schiff steht immer normal zum mittelpunkt der Kugel auf der ich mich bewege
-ich kann den radius der kugel ändern
Welche Variablen habe ich momentan damit ich mit ihnen arbeiten kann?
-die x,y,z koordinate meines Punkts um den ich drehe
-ich kann die Drehwinkel des Raumschiffs ändern
-die Distanz abfragen zum mittelpunkt
Ich sollte mir doch einen Vektor holen können der aus zwei Winkeln einem Radius und einem ursprung mir einen Punkt holen kann und einen Vector der mir anzeigt wohin ich mich weiter bewege?
Mit den sinus, cosinus funktionen geht das zwar, aber es ist nciht gut das man sich eigtl immer nur um die z-achse bewegt und für kompliziertere Manöver beide Winkel mal in den + mal in den - bereich bewegen muss.
Außerdem muss ich immer eine Verschiebung dazuberechnen und wenn ich in eine andere Kreisbahn schwenken will geht das überhaupt nicht...
Das blaue ist mein Raumschiff und die Richtung in die es zeigt. Auf der linken seite fliegt das Schiff ständig im Kreis und umkreist immer den Orbitmittelpunkt während der sich langsam zur zweiten Kugel bewegt. Dabei fliegt es auch mal rückwärts (nicht gut). Rechts dreht sich das Schiff einfach und richtet sich an den neuen Orbit aus. Mit verschiebung entlang der direction+90 lässt sich der radius nun verkleinern auf die gewünschte Orbithöhe.
Noch ein Bild damit man sich etwas vorstellen kann, wenn es gebraucht wird kann ich zwei Versionen hier hochladen, einmal mit sinus/cosinus berechnugsart und einmal mit lengthdir, damit ihr seht wie man sich dabei bewegt. Ich bin mit meinen Mathekenntnissen leider nun ziemlich am Ende^^