OpenGL-向量 & 矩阵

2020-03-26  本文已影响0人  tp夕阳武士
1.向量
1.1 向量的写法

向量又分为横向量与列向量,横向力与列向量的写法如下图:


image.png image.png
1.2 负向量表达式:
负向量表达式.png 负向量的意义.png

如上图,正负向量可以表达两个不同的方向;

1.3向量的大小计算
向量大小的计算.png 向量大小的计算原理来源于勾股定理.png
1.4 向量与标量相乘
向量与标量相乘.png

向量与标量相乘的数学意义,就是把一个向量放大N被,N就是标量;

1.5 向量与标量相除
向量与标量乘除的计算方式.png
1.6 向量的标准化
image.png

向量的标准化概念:在一个方向上,标准化向量的所有轴的值都在(0-1)之间.

1.7向量的加减法
向量加减法的计算方式.png 练习.png

a+b = {5,7,9} ;
a-b = {-3,-3,-3};
b+c-a = {10,0,3,};

1.8 向量之间的距离计算
向量之间的距离计算.png image.png
1.9 向量的点乘
点乘1.png
点乘2.png 点乘的几何意义.png 练习.png
1.10 向量的叉乘

在学习矩阵叉乘之前,先要了解一下向量的叉乘


image.png

如上图所示,就是向量叉乘的规律。
由图可得,向量的叉乘是不满足交换律的。
向量Va * 向量Vb != 向量Vb * 向量Va;

当一个算法中有点乘与叉乘同事存在的话,叉乘的优先级被点乘的优先级更搞,因为向量的点乘得到的结果是一个标量,标量是无法在与向量做叉乘的。

Va·Vb*Vc = Va·(Vb*Vc);

向量的叉乘的几何意义?

image.png

两个三维向量叉乘,得到的结果也是三维向量,
这个三维向量垂直于原来的两个向量所形成的平面。
而叉乘结果得到新的向量的模等于向量a与向量b的模的乘积乘以 sin∂

2.矩阵 与 矩阵的叉乘

矩阵与向量一样,在开发的过程中是存储在一个数组中的。


image.png

在记录一个矩阵的时候,用i来表示这个矩阵的函数,用j来表示它的列数。

2.1 方阵
image.png
2.2单元矩阵
image.png

对角线为1,其他位置为0的矩阵称为单元矩阵。

任何一个矩阵乘以单元矩阵得到的结果都是原矩阵

2.2矩阵的转至
image.png
2.2标量与矩阵相乘
image.png

标量与矩阵相乘,满足交换律

2.3 矩阵与矩阵相乘
image.png image.png

根据上图可以得到总结

假设矩阵A 与 矩阵B相乘
那么A的列数与B的行数必须是同意的,如果A是2列,B就必须是2行
如果A是3列,B就是3行
因为它们之间的相乘规律就是把A的每一行抽出来形成一个向量x,然后与B矩阵的每一列抽出来形成向量y,两个向量点乘得到一个标量作为值,填入行与列的交汇点,作为新矩阵在这个位置的值。
正是因为它们的这种相乘规律,所以要求举证A列数与举证B的行数必须一致,因为只有这样,取得得向量才是属于同一维度的。
也正是因为矩阵的这种相乘规律,所以矩阵之间的相乘是不满足交换律的。
但是矩阵的相乘是满足结合律的,例如A * B * C = A * ( B * C)

image.png image.png
2.4矩阵与向量之间的关系

假设现在有一个向量:[1,-3,-4];


image.png

如上图所示,向量A就是有B,C,D三个向量相加而来。


image.png

这就是向量与矩阵的关系;

2.4矩阵的几何意义
image.png image.png 二维矩阵的缩放旋转.png

如上图,我们用一个二维矩阵来距离,
假设一个图形再二维坐标中的原始显示用一个单元矩阵来描述
那么这个图形一开始的矩阵是M:

「1,0,
  0,1」

当图形发生了变化以后,矩阵变化成了N

「2,1
 -1,2」

矩阵N记录了矩阵M的变化内容;同理可以延伸到三维矩阵中


image.png image.png
上一篇下一篇

猜你喜欢

热点阅读