矩陣和向量的乘法順序

來源:互聯網
上載者:User

矩陣和向量的乘法順序

似乎經常有人被這個問題轉暈。向量有兩種表達形式,行向量和列向量,對應的矩陣也有行矩陣和列矩陣。採用哪種形式和左右手系無關。

行矩陣:
    三個軸向量為前三行,最後一行為位移變換
    連乘時從左至右接合,左邊的變換先應用
    變換向量時為vector * matrix
列矩陣:
    三個軸向量為前三列,最後一列為位移變換
    連乘時從右至左接合,右邊的變換先應用,注意這和*運算子的接合順序相反
    變換向量時為matrix * vector

DirectX採用了行矩陣,OpenGL採用了列矩陣,而基於OpenGL的OpenInventor卻採用了行矩陣。圖形學的書籍多使用列矩陣和列向量,或許是學術上的傳統,或許是節省版面的原因;而不少圖形庫選擇了行矩陣是因為行矩陣在現有的記憶體架構上效率要略高於列矩陣。另外,行矩陣的接合順序和*運算子是一致的,這一點非常適合運算子多載。

而四元數則不同,在數學上,四元數的乘法只有從右至左接合定義。DirectX裡為了四元數也能和行矩陣的接合順序一致,也特意顛倒了四元數的乘法順序,使四元數也能符合*運算子的接合順序。WPF、XNA都採用了右手系、行矩陣,然而決定讓四元數恢複它的本來模式。如此,四元數必須獨立看待。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.