图形学个人笔记
认真是一种习惯
单位向量的乘积(点乘):两个向量夹角的余弦值。
向量的点乘可以到大体方向是否相同,正为同向,负为反向。
叉积(右手定则):a X b = c 都是向量
向量求叉乘时,是按小于180的角算
叉乘可以得到三维空间
叉乘可以判断向量在左还是在右:aXb>0 b在a左侧;aXb<0 b在a右侧。
叉乘可以判断点在多边形的内外:AP X AB、BP X BC、CP X CA 均同向则在三角形ABC内部。
矩阵重要性质之一:ABC=A(BC)。
(AB)^T =BTAT。
[-1 0,0 -1]:镜像矩阵
[a 0,0 b]:Scale矩阵
[-1 0,0 1]:Y轴对称矩阵
[1 a,0 1]:水平倾斜矩阵
[1 0,a 1]:纵向倾斜矩阵
矩阵的对角线系数是沿着坐标轴对我们的对象进行缩放。
其他位置的系数是对该轴进行在其它轴上的偏移(扭曲)。
[cosθ -sinθ,sinθ cosθ]:旋转矩阵R(θ)
(默认原点,逆时针)
[cosθ sinθ,-sinθ cosθ]:旋转矩阵R(-θ)或 R^-1(θ)或 R^T(θ)
旋转的逆等于旋转的转置:正交矩阵。
平移没有单一矩阵。
平移需要扩充矩阵为n+1:[1 0 a,0 1 b,0 0 1][x,y,1] ==> x平移a,y平移b。
所有变化都可以写成扩充矩阵。
点 + 向量 = 点
点 - 点 = 向量
向量 +/- 向量 = 向量
点 + 点 = 两点的终点(点可以假设为起点为原点的向量)
逆变化:乘以逆变矩阵M^-1。
复杂的变化可以经过一系列的简单变化得到:T(a,b)* R(θ)
T(a,b) * R(θ) * T(-a,-b):将图形绕点(a,b)逆时针旋转θ角度矩阵。(从右边往左边的顺序转换)
矩阵变化均写成其次矩阵。
三维旋转矩阵:可以依次进行三次不同平面旋转合成;分为在平面x-y、y-z、z-x分别进行绕正Z轴、正X轴、负Y轴旋转;由于矩阵为[x,y,z,w],即R(z-x)是R(x-z)的逆矩阵
三维旋转:Rx(θ) * Rz(θ) * Ry(-θ) 【如果R矩阵是按照[x,y,z,w]格式的话】
V2 = VII >> V = V1 + V2 >> V2 = V - V1 >> V2 = Vsinθ >> V2 = I X V X I >> 即V2等于单位矩阵I叉乘V再叉乘单位矩阵I。
向量的叉乘矩阵:将向量写成矩阵形式。([,]逗号分行)
a X b = [a2b3-a3b2,a3b1-a1b3,a1b2-a2b1] = [a]b = [0 -a3 a2,a3 0 -a1,-a2 a1 0][b1,b2,b3]
X:左右
Y:上下
Z:前后