Vektoren und wie damit umgehen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

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
deets

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])
Antworten