距離上次發(fā)布已經(jīng)有了很長一段時間,期間由于各種原因沒有更新這方面的技術分享,在這里深表遺憾。在MMO或其他的游戲中,會有針對各種形狀的計算,通常在攻擊區(qū)域里不會很復雜,常見的為矩形、圓形、扇形。今天分享的是判斷一個目標點是否在扇形內的計算,用到的是比較簡單的運算,高效率的算法我很盡快更新。

數(shù)學知識

   在這里需要大家回顧一下初中以及高中的代數(shù)和平面幾何的知識,想必大部分的朋友在這方面和我一樣幾乎忘記了或是對這些數(shù)學知識感覺有些頭痛。不過大家沒有必要擔心,在實際運用中,我們都不會涉及太復雜的計算,因為我們不需要追求的十分精確。

  但是在以下內容中,大家需要知道一些基本的定理和公式:勾股定理、余弦定理。

  需要了解弧度和角度的一些轉換:角度 = 弧度 * 180.0 / ∏

  一些數(shù)學函數(shù):atan2、acos等。

  中心線:以中心線順、逆時針展開半角,形成一個完整的目標扇形區(qū)域。

  極坐標概念:

電腦培訓,計算機培訓,平面設計培訓,網(wǎng)頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

  如上圖坐標點A的平面坐標為(7.96, 5.43),對應的極坐標為(ρ, θ)

  相對坐標的概念:

電腦培訓,計算機培訓,平面設計培訓,網(wǎng)頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

  在扇形的計算中,我們的X軸與Y軸的方向與原點的的X軸和Y軸平行,在上圖中,如果以A點作為中心點,那么B的相對坐標為(xb - xa, yb - ya)。

 扇形與點的關系

  示例圖1:

網(wǎng)友評論