第十章 常用數學與物理演算法 結束
本 章 重 點
10-1 常用數學運算公式
10-2 熟悉的物理常式
第十章 常用數學與物理演算法 結束
10-1 常用數學運算公式 內積是一種力學與 3D 圖形學中很好用的工
具。在 3D 圖形學裡,內積是屬於我們計算兩個向量之間角度的餘弦,如下圖所示:
第十章 常用數學與物理演算法 結束
2D 系統 定義一個向量 (x,y) ,其向量長度的計算
公式如下列所示:
3D 系統 定義向量 (x,y,z) ,其向量長度的計算公
式如下列所示:
第十章 常用數學與物理演算法 結束
2D 系統 我們先定義兩個向量。向量 A(x1,y1) 及
向量 B(x2,y2) 。其內積的公式如下列所示:
3D 系統 定義兩個向量。向量 A(x1,y1,z1) 及向量
B(x2,y2,z2) 。
A*B =( x1,y1 ) * ( x2,y2 )=( x1*x2+y1*y2 )
A*B =( x1,y1,z1 ) * ( x2,y2,z2 )=( x1*x2+y1*y2+z1*z2 )
第十章 常用數學與物理演算法 結束
夾角餘弦公式如下列所示:
cos(θ)=(v1*v2)/(v1 向量長度 * v2 向量長度 )
第十章 常用數學與物理演算法 結束
叉積 在 3D 系統中,叉積與內積都是 3D 圖形學與
力學的好助手,而且在各個的地方都有可能會使用到它。
第十章 常用數學與物理演算法 結束
叉積的計算 首先我們先定義兩個輸入向量 v1(x1,y1,z1)
與 v2(x2,y2,z2) ,而輸出向量爲 v3(x3,y3,z3) 。其計算公式如下列所示:
x3=(y1*z2)-(y2*z1)
y3=(z1*x2)-(z2*x1)
z3=(x1*y2)-(x2*y1)
第十章 常用數學與物理演算法 結束
叉積的用處 對於一個多邊形來說,同一個頂點的兩條
邊就可以確定該多邊形所在的平面了。
第十章 常用數學與物理演算法 結束
四元數的好處
萬向節鎖是一種容易影響到歐拉角表現的現
象,簡單的說,它意味著我們將在某些時候
會失去角度上的自由性,而這都要歸咎於歐
拉角必須要以球坐標的系統來表示。
第十章 常用數學與物理演算法 結束
兩點間距離 在 2D 系統裡,我們先定義兩個點 A 和 B ,
它們的座標分別爲 (x1,y1) 與 (x2,y2) ,而兩點之間的距離公式如下列所示:
x=x2-x1
y=y2-y1
兩點距離= (x2+y2)^0.5
第十章 常用數學與物理演算法 結束
在 3D 系統裡,我們先定義兩個點 A 和 B ,它們的座標分別爲 (x1,y1) 與 (x2,y2) ,而兩點之間的距離公式如下列所示:
x=x2-x1
y=y2-y1
z=z2-z1
兩點距離= (x2+y2+z2) ^0.5
第十章 常用數學與物理演算法 結束
10-2 熟悉的物理常式 速度
就是單位時間內所改變距離的量。 在 2D 的環境中,假設某一個物體的座標位
置為( x,y ),而我們將它的速度常量設定成「 α 」,其速度的方程式將它寫成如下所示:x=x+αy=y+α
第十章 常用數學與物理演算法 結束
如果一直重覆不斷地執行上述的方程式,在2D 的環境中,我們則可以看到這個物體向著某個方向前進了。如下圖所示:
第十章 常用數學與物理演算法 結束
第十章 常用數學與物理演算法 結束
如果這個速度常量為負值的話,物體則會
以反方向的位置移動。如下圖所示:
第十章 常用數學與物理演算法 結束
加速度 加速度是由速度所衍生出來的物理變量。
它是單位時間內速度改變的速率 。
第十章 常用數學與物理演算法 結束
所以我們在物體加上等速度之前,先將速度加上一個加速度。如下列所示:
α=α+kx=x+αy=y+α
第十章 常用數學與物理演算法 結束
只要在物體的速度達到最高值、或是某一種條件成立之下,我們將原本累加的加速度值再慢慢遞減回來,如下列所示:
If go=True Thenα=α+kElseα=α-kEnd Ifx=x+αy=y+α
第十章 常用數學與物理演算法 結束
動量 動量就是一種很難把某些東西停下來的量,簡單的說,它就是具有移動物體的特性,而這種特性會與物體的質量與速度有關係。
動量=質量 X 速度
第十章 常用數學與物理演算法 結束
如果有兩個物體撞在一起的時候,動量守
恒公式則會如下列所示:
M1V1=M2V2M1 是第一個物件的質量。M2 是第二個物件的質量。V1 與 V2 是它們相對速度。
第十章 常用數學與物理演算法 結束
重力
在大自然裡存在著一股很大的力量,這個
力量可使得我們不會從地球上飄流到太空
中,而且可以讓我們穩穩當當地站在地表
上,這個力量我們稱之為「重力」。
第十章 常用數學與物理演算法 結束
將球由 A 地拋向 B 地的時候,因為球的運動方向與重力之關係,球的運動路線則會形成一個拋物線。如下圖所示:
第十章 常用數學與物理演算法 結束
所謂的重力加速度簡單的說,它就是除了重力之外,物體在往下掉的過程中,它也會加入一個加速度的作用力。如下圖所示:
第十章 常用數學與物理演算法 結束
我們在物體上加入一個重力的常量之後,就必須還要再加上一個加速度的常量,如下列所示:
x=x+αβ=β+ky=y+M+βα 為速度常量M 為重力常量β 為 y 值速度常量k 為 β 的加速度常量
第十章 常用數學與物理演算法 結束
爆炸 在遊戲中,有兩種表示方法來描述爆炸的效
果,一種是屬於靜態的表現,利用美工圖素的變化來描述爆炸,美工人員必須畫出一張連續的爆炸圖以供遊戲中表現:
第十章 常用數學與物理演算法 結束
爆炸效果的運動過程中,一開始它是將各種塊狀物體在一瞬間由一個圓心向著外圍圓周的任意方向拓展,形成一個爆炸最初期的現象。如下圖所示:
第十章 常用數學與物理演算法 結束
XY座標系統的定義,如下圖所示:
第十章 常用數學與物理演算法 結束
數學上三角函數的變化,如下表所示:
角度 0 。 90 。 180 。 270 。
Sin 0 1 0 -1
Cos 1 0 -1 0
第十章 常用數學與物理演算法 結束
第十章 常用數學與物理演算法 結束
第十章 常用數學與物理演算法 結束
重力在空間中是一個向下的作用力,所以當我們在運動粒子的同時,就必須要再加上這一個向下的力量,如下圖所示:
第十章 常用數學與物理演算法 結束
每顆例子會受到重力的影響
第十章 常用數學與物理演算法 結束
折射 折射是一個光學反應的名詞,通常它是用
來描述光線通過某種物體時所做出的反應,如下圖所示:
第十章 常用數學與物理演算法 結束
球碰撞到牆壁的時候,球的運作方向則會因為牆的平面而有所改變,如下圖所示:
第十章 常用數學與物理演算法 結束
當物體碰撞到牆壁之後,我們在物體運動方向與牆壁的交點上畫出一條垂直於牆壁的法線,如下圖所示:
第十章 常用數學與物理演算法 結束
再將物體運行的方向映射到這條法線的另一端上,如下圖所示:
第十章 常用數學與物理演算法 結束
第十章 常用數學與物理演算法 結束
第十章 常用數學與物理演算法 結束
以這個三角形來說,我們可以得到如下列
所示的三角函數方程式:
tanθ=a/b=(y3-y1)/(x3-x1)
第十章 常用數學與物理演算法 結束
利用程式開發工具所提供的「 asin」函
數來求得 θ 角度,如下列所示:
tanθ = a/ b→θ = asin(a/ b) = asin(〔 (y3-y1)/ (x3-x1)〕 )
第十章 常用數學與物理演算法 結束