這是在我的頭上,有人能解釋給我更好嗎? http://mathworld.wolfram.com/Reflection.html反思?我該怎麼做?
我正在做一個2D突破格鬥遊戲,所以我需要球能夠反映它何時擊中牆壁,槳或敵人(或敵人擊中它)。
所有的公式都是這樣的:x_1 ^' - x_0 = v-2(v·n ^^)n ^^。
我不能休耕。 (什麼是「意味着或者X_0?或^^?)
這是在我的頭上,有人能解釋給我更好嗎? http://mathworld.wolfram.com/Reflection.html反思?我該怎麼做?
我正在做一個2D突破格鬥遊戲,所以我需要球能夠反映它何時擊中牆壁,槳或敵人(或敵人擊中它)。
所有的公式都是這樣的:x_1 ^' - x_0 = v-2(v·n ^^)n ^^。
我不能休耕。 (什麼是「意味着或者X_0?或^^?)
如果您考慮「點積」操作的幾何意義,則反射公式更容易理解。
兩個3D矢量之間的點積在數學上被定義爲
<a, b> = ax*bx + ay*by + az*bz
,但它有一個很好的幾何解釋
一個和b之間的點積是長度 的投影a超過b以拍攝如果兩個向量指向 的相反方向,則爲負號,再乘以b的長度。
的東西,是用這個定義顯而易見的,如果你只是看公式這不是明顯的是,例如,如果座標系是兩個向量的點積不改變旋轉,兩個垂直矢量的點積是0(在這種情況下投影的長度明顯爲零),或者矢量本身的點積是其長度的平方。
使用幾何解釋反而不太明顯的一點是點積是可交換的,即<a, b> = <b, a>
(事實上,考慮到公式)是明確的。
的重要一點考慮也是如果b長度爲1,則點積<a, b>
是一個簡單的一個超過b(與適當的符號採取)的突出的長度。
鑑於這種解釋的公式用於在平面計算反射是很容易理解:
爲了計算反射矢量ř,給定一個向量一個和平面正常ñ你只需要使用的公式:
r = a - 2<a, n> n
的高度h在這個圖中是<a, n>
(注意,n被假定爲單位長度),所以應該清楚你需要在正常方向上移動兩倍的高度。
如果您認爲合適的點積的跡象,你應該看到的是,公式也適用的事件時有矢量一個,飛機正常ň都面臨着相同的方向。
的素('
)表示數/點/結構的第二形式。在這種情況下,x 1'是指x 1的反射形式。
的標(0
)示出了相同的各種狀態。在這種情況下,x 0是反射點。
插入符號(^
)顯示某物是矢量。在這種情況下,n是法向量。
數字/點/結構的第二種形式? – CyanPrime 2011-03-28 04:38:31
是的,第二種形式。雙重素數('')是第三種形式,三重素數(''')是第四種,依此類推。 – 2011-03-28 04:39:40
這是關於方程格式?因爲我看到格式良好的方程式,而不是出現在你的問題中的LaTeX風格的標記。所以第1步:嘗試在不同的Web瀏覽器中查看頁面,看看它是否看起來更清晰。
更實質性地,我會推薦一種不同類型的資源。從根本上說,你在看collisions,這通常比物理文本更好地處理物理文本。任何入門物理教科書都會有一章關於碰撞的內容,應該直接適用於您的遊戲。
您遇到鏈接問題。 – 2011-03-28 04:25:08
已修復。謝謝^ _^ – CyanPrime 2011-03-28 04:30:15
如果你沒有強大的數學基礎,這是你嘗試構建自己的遊戲平臺時遇到的很多很多問題中的第一個。我建議閱讀一些關於三角和幾何以及一般數學原理的教科書。 – 2011-03-28 04:37:55