Mathematics for 3D Game Programming and Computer Graphics 笔记 Chapter 1
Chapter 1 Vector
1.1 Vector Properties
- V = [V1, V2, … , Vn]
- aV = Va = [aV1, aV2, … , aVn]
- P + Q = [P1 + Q1, P2 + Q2, … ,Pn + Qn]
- P + Q = Q + P
- (P + Q) + R = P + (Q + R)
- (ab)P = a(bP)
- a(P + Q) = aP + aQ
- (a + b)P = aP + bP
- || V || = √( Σ Vi² )
- || P || >= 0
- |a| || P || = || aP ||
- || P + Q || <= || P || + || Q ||
1.2 Dot Products 点乘
- P • Q = Σ PiQi = P1Q1 + P2Q2 + … + PnQn = || P || || Q || cos α
- P • Q = Q • P
- (aP) • Q = a(P • Q)
- P • (Q+R) = P • Q + P • R
- P • P = || P ||²
- | P • Q | <= || P || || Q ||
- P在Q上的投影向量: proj P = (P • Q) ( Q / ||Q||² )
- P对Q的垂直部分: perp P = P – proj P
1.3 Cross Products in 3D 叉乘
| i j k | | 0 -Pz Py | | Qx | P × Q = | Px Py Pz | = | Pz 0 -Px | | Qy | | Qx Qy Qz | | -Py Px 0 | | Qz |
- P × Q = [ PyQz – PzQy, PzQx – PxQz, PxQy – PyQx ]
- (P × Q) • P = 0 (P × Q) • Q = 0
| Px Py Pz | (P × Q) • R = | Qx Qy Qz | | Rx Ry Rz |
- || P × Q || = ||P|| ||Q|| sin α = P与Q为边的平行四边形面积
- 任意三角形面积: A = || (V2 – V1) × (V3 – V1) || / 2
- P × Q 的方向符合右手定则, 垂直于P和Q
- P × Q = – (Q × P)
- (aP) × Q = a( P × Q )
- P × ( Q + R) = P × Q + P × R
- P × P = 0
- (P × Q) • R = (R ×P) • Q = (Q ×R) • P
- P × (Q × P) = P × Q × P = P² Q – (P • Q) P
- P × (Q × R) ≠ (P × Q) × R 不满足结合律!
1.4 Vector Spaces 向量空间
所有三维向量组成三维向量空间,所有N维向量组成N维向量空间. 每个空间的所有元素都可以由这个空间中的一组基向量的线性组合来表示.
若有一组向量{E1, E2, …, En}, 若存在一组 a1, a2, … , an (至少一个非0),使得 a1 E1 + a2 E2 + … + an En = 0, 则这组向量线性相关,若不存在则线性无关.
空间中的一组基为{E1, E2, …, En}, 则空间中的任一向量P都可表示为 P = a1E1 + a2E2 + … + anEn;
n维向量空间的基一定由n个n维向量向量组成, n+1个则线性相关, 少于n就无法表示空间中所有向量.
如果 E1 • E2 = 0 , 则 E1 E2 线性无关.
如果一组基中任意两个向量都垂直并且每个向量模都为1,则这组基成为一组标准正交基.
施密特正交化方法(将任一一组基转化为正交基):
{E1, E2, … , En} -> {F1, F2, … , F3}
- F1 = E1
- 令 i = 2
- Fi = Ei – (k=1 到 i-1)Σ [ ( Ei • Fk )(Fk / Fk²) ]
- 若 i < n 则 i = i + 1 ,转至3