《3D游戏与计算机图形学中的数学方法》学习笔记 第二章
第二章 向量
该章主要讲述向量的基本概念和性质,并且给出了性质的证明。
证明笔记这里就不给出了,毕竟向量的基本性质都是印在脑子里的东西了,要看证明的话可以翻小、初、高课本…
2.1向量性质
定理2.1:
- P + Q = Q + P
- (P + Q) + R = P + (Q + R)
- (ab)P = a(bP)
- a(P + Q) = aP + aQ
- (a + b)P = aP + bP
定理2.2:
- ||P|| >= 0 (||P|| 为 向量的模 即 向量长度)
- 当且仅当 P = (0, 0, …, 0), ||P|| = 0
- ||aP|| = |a| ||P||
- ||P + Q|| <= ||P|| + ||Q||
2.2 内积(点乘)
定理2.3:
- P⋅Q=∑PiQiP \cdot Q = \sum{P_iQ_i}P⋅Q=∑PiQi
定理2.4:
- P⋅QP \cdot QP⋅Q = ||P|| ||Q|| cosα
内积的矩阵表示:
P⋅Q=PT⋅Q=[P1,P2,...,Pn][Q1Q2...Qn]P \cdot Q = P^T \cdot Q = [P_1, P_2, ... , P_n] \begin{bmatrix} Q_1 \\ Q_2 \\ ... \\ Q_n \end{bmatrix}P⋅Q=PT⋅Q=[P1,P2,...,Pn]⎣⎢⎢⎡Q1Q2...Qn⎦⎥⎥⎤
定理2.5:
- P⋅Q=Q⋅PP \cdot Q = Q \cdot PP⋅Q=Q⋅P
- (aP)⋅Q=a(P⋅Q)(aP) \cdot Q = a(P \cdot Q)(aP)⋅Q=a(P⋅Q)
- P⋅(Q+R)=P⋅Q+P⋅RP \cdot (Q + R) = P \cdot Q + P \cdot RP⋅(Q+R)=P⋅Q+P⋅R
- P⋅P=∣∣P∣∣2P \cdot P = ||P||^2P⋅P=∣∣P∣∣2
- ∣P⋅Q∣≤∣∣P∣∣∣∣Q∣∣|P \cdot Q| \leq ||P|| ||Q||∣P⋅Q∣≤∣∣P∣∣∣∣Q∣∣
2.3 外积(叉乘)
定理2.6:
- P×Q=(PyQz−PzQy,PzQx−PxQz,PxQy−PyQx)P \times Q = (P_yQ_z - P_zQ_y, P_zQ_x - P_xQ_z, P_xQ_y - P_yQ_x)P×Q=(PyQz−PzQy,PzQx−PxQz,PxQy−PyQx)
定理2.7:
- (P×Q)⋅P=(P/timesQ)⋅Q=0(P \times Q) \cdot P = (P /times Q) \cdot Q = 0(P×Q)⋅P=(P/timesQ)⋅Q=0
定理2.8:
- ∣∣P×Q∣∣=∣∣P∣∣∣∣Q∣∣sinα||P \times Q|| = ||P|| ||Q|| sinα∣∣P×Q∣∣=∣∣P∣∣∣∣Q∣∣sinα
定理2.9:
- Q×P=−(P/timesQ)Q \times P = -(P /times Q)Q×P=−(P/timesQ)
- (aP)×Q=a(P×Q)(aP) \times Q = a(P \times Q)(aP)×Q=a(P×Q)
- P×(Q+R)=P×Q+P×RP \times (Q + R) = P \times Q + P \times RP×(Q+R)=P×Q+P×R
- P×P=0P \times P = 0P×P=0(零向量)
- (P×Q)⋅R=(R×P)⋅Q=(Q×R)⋅P(P \times Q) \cdot R = (R \times P) \cdot Q = (Q \times R) \cdot P(P×Q)⋅R=(R×P)⋅Q=(Q×R)⋅P
- P×(Q×P)=P×Q×P=P2Q−(P×Q)PP \times (Q \times P) = P \times Q \times P = P^2Q - (P \times Q)PP×(Q×P)=P×Q×P=P2Q−(P×Q)P
向量空间
定义2.10:
- 向量空间是一个集合 V,该集合的元素都是向量,定义了加法和标量乘法,则有以下性质成立:
- 集合 V 对加法运算封闭,即 集合V 中任意的向量 P 和 Q,它们的和 P+QP + QP+Q 也是集合V的向量。
- 集合V 对标量乘法运算封闭,即对于任意实数a 和 集合V中的任意向量P,它们的积 aPaPaP 也是集合V的向量。
- 集合V中存在零向量,在集合V中的任意向量 P,P+0=0+P+PP + 0 = 0 + P + PP+0=0+P+P 成立
- 对于集合V中的任意向量P,在集合V中存在向量Q,使 P+Q=0P + Q = 0P+Q=0 成立
- 集合V中的向量满足结合律,即对于集合V中的任意向量 P、Q 和 R,(P+Q)+R=P+(Q+R)(P + Q) + R = P + (Q + R)(P+Q)+R=P+(Q+R)成立
- 标量乘法满足结合律,即对于任意实数 a 和 b,以及集合V中的任意向量P,(ab)P = a(bP) 成立
- 标量与向量和的乘法满足分配律,即对于任意实数 a 和 b,以及集合V中任意向量 P 和 Q,a(P+Q)=aP+aQa(P + Q) = aP + aQa(P+Q)=aP+aQ成立
- 标量与向量的乘法满足分配律,即对于任意实数 a 和 b,以及集合V中的任意向量P,(a+b)P=aP+bP(a + b)P = aP + bP(a+b)P=aP+bP 成立
定义2.11:
- 对于含有 n个 向量的集合 {e1,e2,e3,...,en}\{e_1, e_2, e_3, ... , e_n\}{e1,e2,e3,...,en},有该式 a1e1+a2e2+...+anen=0a_1e_1 + a_2e_2 + ... + a_ne_n = 0a1e1+a2e2+...+anen=0,如果不存在不全为0的数 a1,a2,...,ana_1, a_2, ... , a_na1,a2,...,an 使该式成立,则向量集合线性无关。反之,则集合线性相关。
一个 n维向量空间 可由 n个线性无关向量的集合生成,生成向量空间的向量集合称为 向量空间的基:
定义2.12:
- 向量空间VVV 的基 BBB 是 n个线性无关向量的集合,B={e1,e2,...,en}B = \{e_1, e_2, ... , e_n\}B={e1,e2,...,en},对于向量空间VVV中的任意向量PPP,存在一组实数a1,a2,...,ana_1, a_2, ... , a_na1,a2,...,an, 使得该式 P=a1e1+a2e2+...+anenP = a_1e_1 + a_2e_2 + ... + a_ne_nP=a1e1+a2e2+...+anen 成立。
一个n维向量空间的每个基中有且仅有n个向量,如 三维坐标系的三个轴 x、y、z 对应的单位向量就是 3维向量空间的一个基
定义2.13:
- 在向量空间的基BBB 中,如果任意两个向量 eie_iei 和 eje_jej, i≠ji \neq ji=j,且 ei⋅ej=0e_i \cdot e_j = 0ei⋅ej=0,则基BBB称为向量空间的正交基
定理2.14:
- 给定任意两个向量 e1e_1e1 和 e2e_2e2,如果 e1⋅e2=0e_1 \cdot e_2 = 0e1⋅e2=0,则e1e_1e1 和 e2e_2e2 两个向量线性无关
对于向量空间的正交基,如果其中每个向量的长度均为1,则称为规范正交基。为了方便表示,引入 克罗内克符号:
δij={1如果i=j0如果i≠jδ_{ij} = \begin{cases} 1& \text{如果} i = j \\ 0& \text{如果} i \neq j \\ \end{cases} δij={10如果i=j如果i=j
定义2.15
- 在向量空间的基 B={e1,e2,...,en}B = \{e_1, e_2, ... , e_n\}B={e1,e2,...,en} 中,如果任意两个向量 eie_iei 和 eje_jej,ei⋅ej=δije_i \cdot e_j = δ_{ij}ei⋅ej=δij,则基BBB称为向量空间的规范正交基
如 (1,0,0),(0,1,0),(0,0,1)(1, 0, 0), (0, 1, 0), (0, 0, 1)(1,0,0),(0,1,0),(0,0,1) 就是三维向量空间的规范正交基
算法2.16:
- Gram-Schmidt 正交化算法。给的 n 个线性无关向量组成的集合BBB,B={e1,e2,...,en}B=\{e_1, e_2, ..., e_n\}B={e1,e2,...,en},该算法可计算出向量集合B′={e1′,e2′,...,en′}B' = \{e'_1, e'_2, ... , e'_n\}B′={e1′,e2′,...,en′},当 i≠ji \neq ji=j 时,ei′⋅ej′=0e'_i \cdot e'_j = 0ei′⋅ej′=0 算法步骤如下:
(a) 令 e1′=e1e'_1 = e_1e1′=e1
(b) 之后考虑 i=2i = 2i=2 以后的情况
© 从向量 eie_iei 中减去 eie_iei 在 向量e1′,e2′,...,ei−1′e'_1, e'_2, ... , e'_{i - 1}e1′,e2′,...,ei−1′ 上的投影,结果保存到 ei′e'_iei′ 中,即:
ei′=ei−∑k=1i−1ei⋅ek′ek′2ek′e'_i = e_i - \sum^{i-1}_{k=1}{\frac{e_i \cdot e'_k}{{e'_k}^2}e'_k} ei′=ei−k=1∑i−1ek′2ei⋅ek′ek′
(d) 如果 i<ni < ni<n,i++,转到步骤 ©
《3D游戏与计算机图形学中的数学方法》学习笔记 第二章相关推荐
- java3d点线面_3D游戏与计算机图形学中的数学方法-点线面
<易传·系辞上传>:"易有太极,是生两仪,两仪生四象,四象生八卦." 借用一下古代先人们的智慧引一下本文的主题-三维图形中的点线面,在三维几何中也有一句话可以和上面的话 ...
- 《计算机图形学原理及实践》学习笔记之第十章
第十章 2D 变换 线性变换: 对于 2D 空间: T:R2−>R2T:R^2 -> R^2T:R2−>R2 R2R^2R2 表示二维空间,及一个二维空间向量 或 点经过线性变换仍是 ...
- 计算机安全原理与实践_《计算机图形学原理及实践》学习笔记之第三章
第三章 一个古老的绘制器 1525年,阿尔布雷·丢勒 制作了一幅木刻画,展示了一种可以绘制任一形体透视图的方法. 本章我们将开发一个软件来模拟丢勒展示的方法. 丢勒视角绘制算法的伪代码 Input: ...
- 《计算机图形学原理及实践》学习笔记之第三章
第三章 一个古老的绘制器 1525年,阿尔布雷·丢勒 制作了一幅木刻画,展示了一种可以绘制任一形体透视图的方法. 本章我们将开发一个软件来模拟丢勒展示的方法. 丢勒视角绘制算法的伪代码 Input: ...
- MIT18.065 数据分析、信号处理和机器学习中的矩阵方法-学习笔记
文章目录 MIT18.065 数据分析.信号处理和机器学习中的矩阵方法 Lecture 1 The Column Space of A Contains All Vectors Ax A=CR A=C ...
- 数学之美--计算机图形学中的数学方法论
我的github: https://github.com/jackyblf 我的公众号: 早期研究3D程序开发的程序员最大的情怀就是从无到有,自己实现一个游戏引擎.当时的我也是充满着这种复古情怀!! ...
- 计算机图形学与opengl C++版 学习笔记 第5章 纹理贴图
目录 5.1 加载纹理图像文件 5.2 纹理坐标 5.3 创建纹理对象 5.4 构建纹理坐标 5.5 将纹理坐标载入缓冲区 5.6 在着色器中使用纹理:采样器变量和纹理单元 5.7 纹理贴图:示例程序 ...
- 计算机图形学与opengl C++版 学习笔记 第11章 参数曲面
目录 11.1 二次贝塞尔曲线(三点) 11.2 三次贝塞尔曲线(四点) 11.3 二次贝塞尔曲面(3x3控制点) 11.4 三次贝塞尔曲面(4x4控制点) 补充说明 在20世纪50年代和60年代在雷 ...
- 计算机图形学与opengl C++版 学习笔记 第14章 其他技术
目录 14.1 雾 14.2 复合.混合.透明度 14.3 用户定义剪裁平面 14.4 3D纹理 14.5 噪声 14.6 噪声应用--大理石 14.8 噪声应用--云 14.9 噪声应用--特殊效果 ...
最新文章
- 境外 java 中文乱码_Java前后端交互中文出现乱码??
- 激光与红外线的区别?激光雷达与毫米波雷达区别?毫米波雷达无法感知行人吗?关于Intel Realsense D435有源红外技术猜想
- python map(function, iterable, ...) 内置函数的用法 (序列迭代调用并返回)
- wxWidgets:拖动一个 wxWindow
- npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! iview-admin@2.0.0 dev: `vue-cli-service serve
- python3.7下载教程视频_视频 | 我选择Python3.7来学习!顺便把教程分享给大家
- 单体多字系统以及多体并行系统
- 洛谷P2051 中国象棋
- vant area地区选择组件使用方法
- 您可能是盗版软件的受害者——解决办法
- 深入浅出Alpha Zero技术原理
- Win10 中主机名hosts 文件位置
- 元素的显示、隐藏、遮罩
- 动手学深度学习——目标检测 SSD R-CNN Fast R-CNN Faster R-CNN Mask R-CNN
- 【谷粒商城基础篇】仓储服务:仓库维护
- win7在扩展屏/副屏显示任务栏
- Alpine Linux(初)
- Vue CLI 3.x 与 2.x的区别
- 数据分析6_视频游戏销售分析_kaggle入门
- php 爬虫 超市,scrapy爬虫 爬取天猫进口零食网页