「真不該把數學還給老師的!」
這句話自大學以來已經悔恨不知多少次了…
雖然是高中生的一個簡單的題目,終究還是還給老師,還是筆記下來比較實在XDD
原理:
- 向量內積 (dot product)
A dot B = |A| |B| cos(θ)
過程:
結論:
- θ = Acos( (A dot B) / (|A| |B|) )
範例:
// C# with XNA Vector3 A = new Vector3(1, 2, 3); Vector3 B = new Vector3(4, 5, 6); float A_dot_B = Vector3.Dot(A, B); float ALen_mul_BLen = A.Length() * B.Length(); // 基本上A & B皆不應該為零,就略過檢查分母為零的狀況 // 這裡計算出來的theta是弧度(單位為π),可依照需求轉成度數 |
範例2:
// C# with XNA,將向量化的動作提前,結果是一樣的…吧~ Vector3 A = new Vector3(1, 2, 3); Vector3 B = new Vector3(4, 5, 6); A.Normalize(); B.Normalize(); double theta = Math.Acos(Vector3.Dot(A, B)); |
獻給已經將數學還給老師的同志們XDD
–End
這就跟整理舊書的時候 看到讓人懷念數學課本(誤… 隨手一翻再隨手一丟意思一樣嗎…XD
我的數學課本可能已經重生為一顆樹了(遠望)