Das Problem

Ziemlich oft kommt man bei der Arbeit mit 3D-Frameworks wie OpenGL oder Direct3D mit Matrizen in Berührung. Und egal, was man mit ihnen anstellen möchte, es klappt einfach nie auf Anhieb: Entweder man multipliziert Vektoren falsch an Matrizen dran oder man hat keine Ahnung, in welcher Reihenfolge der Zugriff auf die Matrixelemente erfdolgt (row-major, column-major oder ganz anders). Dann kann man auch noch – wie im Fall von OpenGL – das Pech haben, dass man das alles selber schreiben muss.

Eine Matrix

Die Lösung

Um nun beim wilden Jonglieren mit Matrizen nicht händisch nachrechnen zu müssen, habe ich in Python (liefert kein Modul für Matrizenberechnungen mit, genauso wie C, C++ oder Delphi) eine kleine Matrixklasse geschrieben, die so die groben Standards wie Multiplikation, Addition und Transponieren beherrscht. Das Schöne ist, dass man die Klasse genau so gut als Vektor benutzen kann, indem man Breit e oder Länge auf 1 setzt.

Download

vecmath.py (2.94kB): Matrixklasse für Python, 677 Download(s)