zoukankan      html  css  js  c++  java
  • 3D Graphics FAQ

    1.什么是左乘,什么是右乘?

      所谓左/右乘,是指参与运算的两个因子(向量、矩阵)在运算中的相对位置(主语相对宾语的位置),A左乘B即A*B,A右乘B即B*A。因此说左/右乘时,必须指定参与运算的两个因子才是有意义的,有时会省略主语(甚至同时省略主语和宾语),如在OSG中对顶点应用矩阵变换时,使用的是右乘(P*M),完整的说应该是矩阵M右乘向量P;而OpenGL对顶点进行矩阵变换,是使用左乘,即矩阵左乘向量P(M*P)。
      左乘也叫做pre-multiply(A.premult(B)==B*A,即B左乘A),右乘也叫做post-multiply(A.postmult(B)==A*B,即B右乘A)。
      引用一位网友的解释:左乘就是从左边过来乘,对于A.premult(B),就是参数B要从左边乘过来,即B左乘A,即A.premult(B)==B*A。 

    2.什么是列主序,什么是行主序?
      所谓矩阵的列主序和行主序,是指用一维数组存储二维矩阵元素的时候,是以第一列、第二列的顺,还是以第一行、第二行的顺序。因此,矩阵的主序只是存储(以一维数组传递数据)上的不同,在计算和使用中所代表的数学意义没有任何区别。
    C语言中的二维数组a[4][4],可以看作一个4*4的矩阵,并且它是按行主序存储的。因此,在使用列主序矩阵时,可以直接把C语言二维数组作为矩阵使用。
      OpenGL中使用列主序矩阵。由于矩阵主序对矩阵的数学意义没有任何影响,因此,说OpenGL使用列主序矩阵,实际上是指在向OpenGL传递矩阵数据时,用来存储矩阵元素的一维数组,是按照列主序定义的!即glLoadMatrix要求的传入参数是按列主序定义的矩阵。

  • 相关阅读:
    Pandas数据分析 (三)
    Pandas数据分析 (二)
    Pandas数据分析 (一)
    Django后台应用管理名称修改
    Jupyter Notebooks 配置
    Hadoop完全分布式搭建流程
    Java学习笔记(五)
    微信小程序学习笔记(一)
    redis windows版安装
    Linux计划任务
  • 原文地址:https://www.cnblogs.com/indif/p/2045098.html
Copyright © 2011-2022 走看看