OpenGL学习之3D数学

一:向量的记法

向量的记法.png

通常使⽤下标法来引⽤向量量的某个分量
⽐比如,a1 = 1;a2 = 2 ; a3 = 3
实际开发中针对的是2D\3D\4D向量量,所以不用下标法
2D向量量:x y
3D向量量:x y z
4D向量量:x y z w

向量的前面加个-号,表示向量变负

2:向量大小计算公式

2D向量大小计算公式
||v|| = √Vx² + Vy ²
3D向量大小计算公式
||v|| = √Vx² + Vy ² + Vz²

3:标准向量

Vnorm = V / ||V||,注意V不能为0
零向量是不能被标准的,数学上是不允许的,因为将导致除以0,几何上没有任何意义,因为零向量没有方向

4:向量的加减

向量的加减只能是同一纬度下才能加减,否则不能运算

5:向量之间的距离计算

(A,B) = ||B - A|| = √(Bx - Ax)² + (By - Ay)² + (Bz - Az)²
同样的一定是要同一维度下

5:向量的点乘

应⽤到2D、3D 中:
A• B = AxBx + AyBy A,B都是2D向量
A• B = AxBx + AyBy + AzBz A,B都是3D向量

点乘的意义

a• b = ||a||||b||cos(q) (q是两个向量之间的夹角)

点乘.png
6:案例(根据向量V和向量N求向量V2和向量V1)
向量运算.png

V2计算:
V2平行于N,即可表示为: V2 = N *||V2|| / ||N||
因此只要求得V2的模就能计算投影向量的值,借助三角分解,方便求解
cos q = || V2|| / ||V||
|| V2|| = cos q * ||V||
V2 = N * cos q * ||V|| / ||N||
同时乘以||N||后得 V2 = N * cos q * ||V||• ||N||/ ||N||²
V2 = N * V• N/ ||N||²
V1计算:
V1 + V2 = ||V||;
V1 = ||V|| - V2 = ||V|| - N * V• N/ ||N||²

7:单位矩阵

单位矩阵,是⼀种特殊的对⻆矩阵,n维单位矩阵记做 In。是n * n 矩阵。对象元素为1.其他元素为0。
单位矩阵⾮常特殊,因为它是矩阵乘法单位元,其基本性质是⽤用任意1个矩阵乘以单位矩阵,都将得到原矩阵。所以在某种意义上对矩阵的作⽤用就犹如1对于标量的作⽤。

例如 3 * 3 单位矩阵

3*3矩阵.png

8:矩阵转置

⼀个r * c 矩阵M。M的转置记做MT,是⼀个 c * r 矩阵。它的列由M的⾏组成。可以从另⽅面理解。 MijT = Mji ,即沿着矩阵的对⻆线翻折。

矩阵转置1.png

对向量而言,转置将使得行向量变成列向量,是列向量变成行向量

行列向量转置.png
9:标量和矩阵相乘
标量和矩阵相乘.png

设A 为 4 * 2 矩阵,B 为 2 * 5 矩阵,那么结果AB 为 4 * 5 矩阵。

矩阵与矩阵相乘1.png
矩阵与矩阵相乘2.png

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

矩阵与矩阵相乘3.png
矩阵与矩阵相乘4.png

2乘2矩阵1.png

2乘2矩阵2.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.OpenGL 使⽤的是列向量

10:矩阵是如何变换成向量的

?

⾸先,向量[1,-3 -4]是如果实现位移
位移[1,0,0],随后位移[0,-3,0],最后位移[0,0,4]

矩阵转换为向量1.png

矩阵转换为向量2.png

向量转换为矩阵.png
基向量乘以3乘3矩阵的情况
基向量乘以矩阵1.png

基向量乘以矩阵2.png

基向量乘以矩阵3.png
总结

1:基向量[1,0,0]乘以矩阵M ,结果是M的第⼀行。后⾯的2个⽅程也是⼀样的规律
2:矩阵的每一个都能解释为转换后的基本向量

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容