距離上次發(fā)布已經(jīng)有了很長一段時間,期間由于各種原因沒有更新這方面的技術分享,在這里深表遺憾。在MMO或其他的游戲中,會有針對各種形狀的計算,通常在攻擊區(qū)域里不會很復雜,常見的為矩形、圓形、扇形。今天分享的是判斷一個目標點是否在扇形內的計算,用到的是比較簡單的運算,高效率的算法我很盡快更新。
數(shù)學知識
在這里需要大家回顧一下初中以及高中的代數(shù)和平面幾何的知識,想必大部分的朋友在這方面和我一樣幾乎忘記了或是對這些數(shù)學知識感覺有些頭痛。不過大家沒有必要擔心,在實際運用中,我們都不會涉及太復雜的計算,因為我們不需要追求的十分精確。
但是在以下內容中,大家需要知道一些基本的定理和公式:勾股定理、余弦定理。
需要了解弧度和角度的一些轉換:角度 = 弧度 * 180.0 / ∏
一些數(shù)學函數(shù):atan2、acos等。
中心線:以中心線順、逆時針展開半角,形成一個完整的目標扇形區(qū)域。
極坐標概念:
如上圖坐標點A的平面坐標為(7.96, 5.43),對應的極坐標為(ρ, θ)
相對坐標的概念:
在扇形的計算中,我們的X軸與Y軸的方向與原點的的X軸和Y軸平行,在上圖中,如果以A點作為中心點,那么B的相對坐標為(xb - xa, yb - ya)。