OpenGL i kolejność mnożenia macierzy

0

Zastanawia mnie czemu w OpenGLu stosuje się dziwną, odwróconą (wg mnie) kolejność mnożenia, tzn zamiast intuicyjnego wg mnie działania wektor wierszowy * macierz, stosuje się macierz * wektor kolumnowy. Jest ku temu jakikolwiek powód?

0

Jak na moje to do bardziej intuicyjnych należy macierz * wektor kolumnowy bo jeszcze wygląda ładniej w zapisie:
\begin{bmatrix}<br> 2 &amp; 1 &amp; 0 &amp; 0\<br> 1 &amp; 2 &amp; 1 &amp; 0\<br> 0 &amp; 1 &amp; 2 &amp; 1\<br> 0 &amp; 0 &amp; 1 &amp; 2<br> \end{bmatrix}<br> \begin{bmatrix}<br> 6\7\11\8<br> \end{bmatrix}<br>

0

W OpenGL jeśli np chcę najpierw przesunąć wektor, a potem przeskalować, to muszę napisać (tzn np chcę policzyć od razu końcową macierz, więc ją liczę przed wysłaniem do OpenGLa):

macierz skalowania * macierz przesunięcia * wektor kolumnowy

A dla mnie dalej bardziej intuicyjne byłoby:

wektor wierszowy * macierz przesunięcia * macierz skalowania

No nie?

1

Zapis macierzwektor_kolumnowy jest standardowy w matematyce. I jest zgodny ze schematem: wpierw operator(funkcja) a potem argument.
Ponadto, jeżeli A jest standardową macierzą przekształcenia liniowego L, a wektor w jest kolumnowy, to L(w)=A
w, gdybyśmy zapisali wektor wierszowo, to L(w)=w*AT.

0
bo napisał(a)

Zapis macierz*wektor_kolumnowy jest standardowy w matematyce. I jest zgodny ze schematem: wpierw operator(funkcja) a potem argument.

Dzięki. W sumie to nie pomyślałem o tym, żeby traktować macierz jako operator funkcji.

bo napisał(a)

Ponadto, jeżeli A jest standardową macierzą przekształcenia liniowego L, a wektor w jest kolumnowy, to L(w)=Aw, gdybyśmy zapisali wektor wierszowo, to L(w)=wAT.

O tym wiedziałem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1