3x3-Matrix der Rotation in C++

Okay, zuerst einmal, ich weiß, ähnliche Fragen sind alle über das Internet, ich habe mehr als ich hatte Sorge, um zu zählen, ich habe versucht, um es herauszufinden, für fast 3 Wochen jetzt (nicht ständig, nur auf und ab, in der Hoffnung auf einen Funken der Einsicht).

In das Ende, was ich will, ist eine Funktion, wo Sie gehen, wie viel Sie wollen, drehen Sie durch (momentan bin ich in Radian ist, aber ich kann gehen, Grad oder Bogenmaß) und es gibt die rotationsmatrix, die Erhaltung alle übersetzungen, die ich hatte.

Verstehe ich die Formel zum drehen auf der "Z" - Achse in einem 2D kartesischen Ebene, ist:

[cos(radians)    -sin(radians)    0]
[sin(radians)     cos(radians)    0]
[0                0               1]

Ich verstehe Matrix Mathematik (Addition, Subtraktion, Multiplikation und Determinanten/Inverse) ziemlich gut, aber was ich nicht verstehen ist wie, Schritt für Schritt, machen Sie eine matrix, die ich verwenden kann für die Fruchtfolge, die Erhaltung einer übersetzung (und was anderes, wie-Skala), die es hat.

Von dem, was ich gesammelt habe von anderen Beispielen, multiplizieren mein Aktueller Matrix (was auch immer das sein mag, lasst uns einfach ein Identity-Matrix für jetzt), durch eine Matrix wie diese:

[cos(radians) - sin(radians)]
[sin(radians) + cos(radians)]
[1]

Aber dann ist meine ursprüngliche Matrix würde am Ende als 3x1-Matrix anstelle eines 3x3, wäre es nicht? Ich bin mir nicht sicher, was mir fehlt, aber etwas scheint einfach nicht richtig zu mir. Ich bin nicht unbedingt auf der Suche nach code für jemanden zu schreiben, für mich, nur um zu verstehen, wie Sie dies richtig tun und dann kann ich schreiben es selbst. (um nicht zu sagen, ich werde nicht Blick auf die anderen code 🙂 )

(Nicht sicher, wenn es darauf ankommt, zu jeder, aber nur im Fall mit Windows 7 64-bit, Visual Studio 2010 Ultimate, und ich glaube, OpenGL, dies ist für die Uni)

Während wir gerade dabei sind, kann jemand überprüfen für mich? Nur um sicherzugehen, es richtig scheint.

Übersetzung Matrix (wieder verwenden wir-Identität) ist so etwas wie dieses:

[1, 0, X translation element]
[0, 1, Y translation element]
[0, 0, 1]
InformationsquelleAutor user2368229 | 2013-05-21
Schreibe einen Kommentar