Rotierenden Körper von der sphärischen Koordinaten
Ist es möglich zu drehen Körper, die seine Eckpunkte definiert, die in sphärischen Koordinaten.
Momentan mache ich die collage-Projekt in VHDL und ist über rotierende Dodekaeder und Darstellung über VGA.
Bewarb ich mich Lochkamera-Modell Gleichungen und benötigt nur zwei sin/cos-Berechnung und zwei Multiplikationen pro vertice.
Ich dachte nur über Drehung um 3. Achse mit 3 Schritten über zwei Winkel, aber ich bin nicht in der Lage, um herauszufinden, die richtige Gleichungen und selbst wenn dies möglich ist.
Bearbeiten
Ich glaube, ich habe es.
Drehen über der 3. Achse, die in die gleiche Richtung wie die Kamera ist nur für die 2D-Transformation von Kamera-Koordinaten, sobald Sie Sie berechnen. Das bedeutet als für die Drehung in 3 Achsen (ok, zwei Achsen und einer Neigung), die Sie anwenden müssen insgesamt 4 sin/cos-Berechnungen und 4 Multiplikationen. Wenn jemand kam mit etwas, das besser ist, fiel frei, um post zu beantworten.
InformationsquelleAutor Luka Rahne | 2011-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie drehen um die y-Achse durch änderung von θ und Drehung um die z-Achse durch änderung von φ. Drehung um die x-Achse, obwohl, ist ein bisschen härter.
Eine einfache Möglichkeit wäre, alles zu konvertieren, um catesian Koordinaten, führen Sie die Drehung, und wieder zurück konvertieren.
Den Gleichungen für (x,y,z) (sphärisch zu Kartesisch) sind
Den Gleichungen für die Drehung (x,y,z) neue Punkte (x', y', z') um die x-Achse um einen Winkel α
Den Gleichungen für (r, θ, φ) (Kartesisch zu sphärisch) sind
Ich weiß nicht, ob es ist ein Weg, um zu reduzieren, dass keine weiteren, aber es sollte funktionieren.
Ja, gerade der zweite Satz von Gleichungen für das 2D-rotation (ignorieren Sie die erste und Dritte) funktionieren wird, wenn Sie davon ausgehen, die Kamera ist immer befindet und orientiert sich an der x-Achse.
Eigentlich kann man nicht drehen um die z-Achse durch änderung von φ nur. Es hängt von Ihrer aktuellen (θ, φ). Es macht dann auch Sinn, dass Sie konvertieren müssen, um die kartesischen Koordinaten zu tun, einer Drehung um die kartesischen Achsen in einem gewissen Sinn das kartesische Achsen "gibt es nicht" - man kann Sie nicht "Reise entlang der x-Achse" durch einfache addition in sphärische Koordinaten - warum also sollten Sie in der Lage sein, um die gedreht werden soll?
InformationsquelleAutor BlueRaja - Danny Pflughoeft
Hoffentlich wird dies hilfreich sein, jemand in der Zukunft, aber es gibt einen kleinen Fehler in der obigen Antwort. Es sollte sein:
φ' = tan-1(y'/x')
= tan-1(tan φ cos α - cotan θ sin α sec φ)
Habe ich nicht die rep-Punkte zu diesem post in den Kommentar, aber dachte, es wäre nützlich.
Ich habe das update auf die Antwort als edit. Ich hoffe, du hast Recht, weil ich nicht überprüfen Sie es 🙂
Ich doppelt überprüft es selbst und hatte eine andere person überprüfen, bevor ich gepostet. Plus, ich benutze es in meine Arbeit, damit ich besser zu Recht. =)
InformationsquelleAutor cosmosis