OpenGL笔记九:3D数学小记

前言

期待您移步上篇:OpenGL笔记八:2D纹理坐标解析

向量大小计算:

||V|| : 为向量V的模。


向量大小计算公式.png

向量与标量的除法:

向量与标量的除法.png

标准化向量:

标准化向量.png

示例:


示例-1.png

零向量是不能被标准的,数学是上不允许的。因为将导致除数为0,几何上没有意义。因为零向量没有方向。

向量点乘

向量点乘.png

点乘的几何意义

a • b = ||a|| ||b|| cos(q) 
//q为a,b向量的夹角
  • 3D中,两向量的夹⻆角是在包含两向量的平⾯中定义的。


    点乘夹角q.png
  • ⽤点乘计算2个向量之间的夹⻆角q,如果a,b都是单位向量
q = arccos ( a • b )
a·b q角度 a 和 b
>0 0° ≤ q < 90° 方向基本相同
=0 q = 90° 正交
<0 90° < q ≤ 180° 方向基本相反

示例:


示例-1.png

示例-2.png

向量叉乘

向量叉乘.png

向量的叉乘⼏何意义

  • 向量a,b在⼀个平⾯中。向量a * b 指向该平⾯的正上⽅,垂直于a 和b a * b 的⻓长度等于向量的⼤⼩与向量夹⻆角的sin值的积,如下:
|| a * b || = ||a|| ||b|| sin∂

矩阵基础

标量与矩阵相乘

标量与矩阵相乘.png

矩阵与矩阵相乘

Arn * Bnm = Crm
即:r行n列矩阵A 叉乘 n行m列矩阵B = r行m列矩阵C

  • 矩阵相乘法则:对结果中的任意元素Cij,取A的第i⾏和第j列,将⾏和列中的对应元素相乘。然后将结果相加等于A的i行和B的j列的点积)。Cij就等于这个和。
    矩阵相乘.png

    示例.png

矩阵乘法注意事项:

  • 1.任意矩阵M乘以⽅阵S,不管从哪边乘,都得到与原矩阵⼤⼩相同的矩阵。当然,前提是假定乘法有意义。如果S是单位 矩阵,结果就是原矩阵M,即:MI = IM = M 。
  • 2.矩阵乘法不满⾜交换律,即:AB != BA
  • 3.矩阵乘法满⾜结合律,即:(AB)C = A(BC)。假定ABC的维数使得其乘法有意义,要注意如果(AB)C有意义,那么A(BC)就 ⼀定有意义。
  • 4.矩阵乘法也满⾜与标量或向量的结合律,即:(kA)B = k(AB) = A(kB); (vA)B = v(AB);
  • 5.矩阵积的转置相当于先转置矩阵然后以相反的顺序乘法,即:(AB)T = BT AT

矩阵与向量相乘 注意事项:

  • 1.结果向量中的每个元素都是原向量与矩阵中单独⾏或列的点积;
  • 2.矩阵⼀向量乘法满⾜对向量加法的分配律,对于向量v,w 和 矩阵M 有,
    (v + w)M = vM + wM;

矩阵⼏何意义

1.⽅阵的⾏能被解释为坐标系的基向量;
2.为了将向量从原坐标系变换到新坐标系,⽤它乘以⼀个矩阵。
3.从原坐标系到这些基向量定义的新坐标系的变化是⼀种线性变换。线性变换保持直线和平⾏线。但角度、长度、 ⾯积或体积可能会改变。
4.零向量乘以任何矩阵仍然得到零向量。因此,⽅阵所代表的线性变换的原点和原坐标系原点⼀致。变换不包含 原点。

3D旋转 围绕任意轴旋转向量

绕n轴旋转⻆角度∂之后的矩阵:


任意轴旋转公式.png

期待您移步下篇:OpenGL笔记十:OpenGL ES初探

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容