2016-05-30 4 views
1

Wenn ich kreuze (vec3 (0,0,1), vec3 (1,0,0)), bekomme ich vec3 (0,1,0).Wie verwenden Sie die rechte Regel für glm :: cross?

Kann mir jemand erklären, warum ich nicht vec3 (0, -1,0) bekomme? Wenn Sie Ihren Zeigefinger nach vorne und den Mittelfinger nach rechts zeigen, zeigt der Daumen nach unten. Was mache ich falsch?

+0

Nichts - in einem rechten System, wo Z "vorwärts" geht und X geht "nach rechts", dann geht Y nach unten. Das Ergebnis ist eine positive Größe in Y-Richtung. – peppe

+0

"* Wenn Sie den Zeigefinger nach vorne und den Mittelfinger nach rechts zeigen *" Was bedeutet "vorwärts" hier? Bedeutet es "weg von dir"? Denn "vorwärts" bedeutet normalerweise "auf dich zu". Ich finde den einfachsten Weg, um herauszufinden, wo + Z ist, sich zu erinnern, X Kreuz Y = Z. Setzen Sie also in einem rechtshändigen Koordinatensystem Ihren Zeige- und Mittelfinger entlang X und Y, und dort steht Z. Wenn X nach rechts und Y nach oben ist, dann ist Z in einem rechtshändigen Koordinatensystem * zu Ihnen *. –

+0

Mit Vorwärts meinte ich weg von dir wie vorwärts gehen. So wie mein Code gemacht wird, ist vorwärts positiv Z und aufwärts ist positiv Y. Also in Akademikern ist Z rückwärts? Das würde meine Verwirrung erklären. – Tai

Antwort

2

Sie haben die richtige Antwort erhalten. Wenn i, j, k Einheitsvektoren in x, y, z-Richtung, dann:

i X j = k 
j X k = i 
k X i = j 

Ihr Beispiel ist die dritte, so ist es offensichtlich, dass Sie einen Einheitsvektor in der positiven y- bekommen sollten Richtung.

Dies ist ein Beispiel für eine permutation symbol - geeignet, da Vektoren Tensoren erster Ordnung sind.

Verwandte Themen