Hallo allerseits,
ich beschäftige mich gerade mit Grafikprogrammierung und bin auf ein Problem gestoßen:
Viele Funktion, wie zum Beispiel numpy.cross funktionieren nur, wenn ich mit Vektoren hantiere, die 2 bzw. 3 Komponenten haben. Rotationen hingegen, bzw. (lineare Abbildung + Transformationen) benötigen Vektoren mit 4 Komponenten.
An irgendeiner Stelle muss ich also entweder die Vektoren verkleinern oder vergrößern. Wie mach ich das geschickt? Vor jeder Matrixmultiplikation den Vektor vergrößern halte ich für sehr mühselig. Hat da jemand gute Vorschläge, oder vielleicht überseh ich etwas Offentsichtliches?
Grüße,
anogayales
Vektoren und wie damit umgehen
Du benutzt halt immer 4d-Vektoren (normalisiert, mit dem 4ten Element immer auf 1), und fuer die entsprechenden Funktionen "slice"ds du den Vektor.
Code: Alles auswählen
>>> import numpy as np
>>> a = np.array([1,2,3,1])
>>> b = np.array([1,3,4,1])
>>> np.cross(a[:3], b[:3])
array([-1, -1, 1])