和3D相關的一些數學概念和公式
座標系
在不同的領域和不同的背景下,選擇不同的座標系。如傳統計算機圖形學選用左手座標系,線性代數則傾向於右手座標系
從物體座標系轉換到世界座標系的步驟:
1、將物體座標軸順時針旋轉45度轉換到慣性座標系;
2、將慣性座標系向下、左平移轉換到世界座標系;
向量
向量與位置無關緊要,只有大小和方向才是最重要的。
向量變負,將得到一個和原向量大小相等、方向相反的向量。
向量加減法——三角形法則。
(多個向量相加)
減法b-a代表了從a到b的向量。
向量點乘(Dot Product):
點乘得到一個標量。點乘結果描述了兩個向量的相似程度,點積結果越大兩向量越相似。
a·b | θ | 角度 | a和b |
>0 | 0=<θ<90 | 銳角acute | 方向基本相同 |
=0 | θ==90 | 直角right | 正交 |
<0 | 90<θ<=180 | 鈍角obtuse | 方向基本相反 |
向量叉乘(Cross Product)
叉乘不滿足交換律也不滿足結合律,但滿足反交換律:a
叉乘得到的向量垂直與原來的兩個分量:
a×b的長度為向量的大小與向量夾角sin值的積:
也等於以a和b為邊的平行四邊形的面積:
零向量和其他任何向量都平行。
矩陣
矩陣乘法:一個r×n的矩陣A能和一個n×c的矩陣B相乘,得到一個r×c的矩陣,記為AB
任意矩陣M和一個方陣相乘,不管從哪邊乘,都將得到一個與M大小相同的矩陣。單位矩陣相乘:MI=IM=M。
行向量左乘矩陣時,結果是行向量。列向量右乘矩陣時,結果是列向量。
矩陣——向量乘法,滿足對向量加法的分配律:(v+w)M=vM+wM。
線性無關——不在同一個平面。
線性變換:滿足F(a+b)=F(a)+F(b)和F(ka)=kF(a)。
對映F(a)=aM,當M為任意方陣時,說對映是一個線性變換
零向量的任意線性變換的結果仍然是零向量。線性變換不會導致平移(原點位置上不會變化)。
行列式的幾何意義:2D中是以基向量為邊的平行四邊形的有符號面積;3D中是以基向量為邊的平行六面體的有符號體積。
如果矩陣行列式為0,那麼該矩陣包含投影。
如果矩陣行列式為負,那麼該矩陣包含映象。
方陣M的行列式:
代數餘子式:從矩陣M中除去第i行第j列後剩下的矩陣。
矩陣的逆:M與M-1相乘時,結果是單位矩陣I。則M-1為M的逆。
奇異矩陣:如果一個矩陣沒有逆矩陣,則稱它不可逆或奇異矩陣。如果一個矩陣有逆矩陣,則稱它可逆或非奇異的。
標準伴隨矩陣:adj M,定義為M的代數餘子式矩陣的轉置矩陣。
矩陣的逆能用標準伴隨矩陣除以行列式來求得:
矩陣的逆的重要性質:
如果M是非奇異矩陣,則該矩陣的逆的逆等於原矩陣:(M-1)-1=M.
單位矩陣的逆勢它本身:I-1=I
矩陣轉置的逆等於它逆的轉置:(MT)-1=(M-1)T
矩陣乘積的逆等於矩陣的逆的相反順序的乘積:(AB)-1= B-1 A-1
正交矩陣:若方陣M是正交的,則當且僅當M與它轉置MT的乘積等於單位矩陣。MMT=I.
如果一個矩陣式正交的,那麼它的轉置等於它的逆:MT= M-1。
若一個矩陣是正交的,它必須滿足:
矩陣的每一行都是單位向量。
矩陣的所有行都相互垂直。
施密特正交化
3×3矩陣僅能表達3D中的線性變換(沒做平移),4×4矩陣可以構造包含平移的一般仿射變換(由一個線性變換接上一個平移組成)矩陣。如:繞不通過原點的軸旋轉;沿不穿過原點的平面縮放、映象、正交投影等;
4D齊次座標:(x,y,z,w)第四個w為齊次座標。通過投影得到的實際3D點為(x/w,y/w,z/w)。w=0時4D點表示“無限遠點”,它描述了一個方向。
4D矩陣實現3D平移:
能將任意4×4矩陣分解為線性變換不和和平移部分:
透視投影
小孔成像
點p通過原點向平面z=-d投影的結果:
尤拉角:將方位分解成繞三個互相垂直的軸旋轉。(heading:繞物體座標(此時和慣性座標系重合)y軸的旋轉量;pitch:繞物體座標系x軸旋轉量;bank:繞物體座標系z軸旋轉量。)
也叫roll-pitch-yaw,roll類似於bank,yaw類似於heading。
四元數
四元數:[w,v]或[w,(x,y,z)],w是標量分量;v是3D向量分量。
一個四元數定義了一個複數:w+xi+yj+zk。四元數能旋轉3D中的向量。
單位四元數:[1,0]
四元數的模:
四元數插值——slerp(Spherical Linear interpolation球面線性插值)
標準線性插值:
四元數樣條——squad
2D旋轉矩陣:
繞任意軸(n是單位向量)旋轉的3D旋轉矩陣:
沿任意軸(單位向量n為縮放方向,k為縮放因子)的3D縮放矩陣:
向垂直於n的平面投影的3D矩陣:
使縮放因子k=-1匯出映象矩陣:
沿任意通過原點且垂直於n的反射軸的2D映象矩陣——
沿通過原點且垂直於n的平面鏡像的3D映象矩陣——
切變:切變是一種座標系“扭曲”變換,非均勻地拉伸它。切變的時候角度會發生變化,但面積和體積不變。
變換的組合就是利用矩陣乘法及其結合律。
幾何圖元
直線(Line)、線段(Line Segment)、射線(Ray)。
球(Sphere)和圓
矩形邊界框:
AABB:Axially aligned bounding boxes(軸對齊矩形邊界框)
OBB:oriented bounding box(方向矩形邊界框)
平面(Plane)
n為平面的法向量。
三角形(Triangle)
重心(barycentric)(Center of gravity):中線(頂點到對邊中心點的連線)交點。
內心(Incenter):到三邊距離相等的點(內切圓的圓心),也是角平分線的交點。
內切圓解決了尋找與三條直線相切的圓的問題。
外心(Circumcenter):到各頂點距離相等的點(外切圓的圓心),也是各邊垂直平分線的交點。
外心和外切圓半徑解決了尋找過三個點的圓的問題。
多邊形(Polygons)
簡單多邊形、複雜多邊形
自相交多邊形(Self-intersecting Polygons)
凸(Convex)多邊形、凹(Concave)多邊形
三角分解和扇形分解
幾何檢測
三角網格(頂點快取、三角帶、三角扇):頂點焊接(Welding Vertices)操作、面拆分(Detaching Faces)、邊縮坍(Edge Collapse使邊的兩個頂點變為一個)、網格消減(Mesh Decimation)。