• 矩阵和向量的乘法顺序


    矩阵和向量的乘法顺序

    参考博客:http://blog.csdn.net/Nightmare/article/details/3983724

    向量有两种表达形式,行向量和列向量,对应的矩阵也有行矩阵和列矩阵。采用哪种形式和左右手系无关。

    行矩阵:
    三个轴向量为前三行,最后一行为位移变换
    连乘时从左到右接合,左边的变换先应用
    变换向量时为vector * matrix

    DirectX采用的是行矩阵,向量是行向量
    列矩阵:
    三个轴向量为前三列,最后一列为位移变换
    连乘时从右到左接合,右边的变换先应用,注意这和*运算符的接合顺序相反
    变换向量时为matrix * vector

    OpenGL ES采用的是列举阵,向量是列向量


    DirectX采用了行矩阵,OpenGL采用了列矩阵,而基于OpenGL的OpenInventor却采用了行矩阵。图形学的书籍多使用列矩阵和列向量,或许是学术上的传统,或许是节省版面的原因;而不少图形库选择了行矩阵是因为行矩阵在现有的内存架构上效率要略高于列矩阵。另外,行矩阵的接合顺序和*运算符是一致的,这一点非常适合运算符重载。

    而四元数则不同,在数学上,四元数的乘法只有从右到左接合定义。DirectX里为了四元数也能和行矩阵的接合顺序一致,也特意颠倒了四元数的乘法顺序,使四元数也能符合*运算符的接合顺序。WPF、XNA都采用了右手系、行矩阵,然而决定让四元数恢复它的本来模式。如此,四元数必须独立看待。

  • 相关阅读:
    The type java.util.Map$Entry cannot be resolved. It is indirectly referenced。。.相似的错误
    ViewPager的使用
    mysql学习笔记 第九天
    mysql学习笔记 第八天
    mysql学习笔记 第七天
    mysql学习笔记 第六天
    mysql学习笔记 第五天
    Vue.js最佳实践(五招让你成为Vue.js大师)
    前端路由简介以及vue-router实现原理
    Maven整体认识——详细介绍
  • 原文地址:https://www.cnblogs.com/calence/p/5407695.html
Copyright © 2020-2023  润新知