所以我正在制作一個 TD 游戲,我可以在其中放置一把加特林機槍,并且根據滑鼠所在的周圍圓圈的哪個部分,精靈和子彈路徑會發生變化。
我的難點在于創建一個演算法來告訴我我的滑鼠在哪個扇區。
我的圓有 16 個扇區,半徑為 300。每條弧的長度為 117.81。從(300,300)延伸,我把所有的線的坐標的準確名單,所以我能夠得出目前像這樣的行業: 圓
我正在使用滑鼠偵聽器在滑鼠移動時檢測滑鼠的坐標,所以我有一個“currentPoint”來檢查它在哪個扇區內。根據這些資訊,任何人都可以想出一種簡單的方法來簡單地回傳一個滑鼠當前位于哪個扇區的整數?最好有點有效。
這是我正在考慮的兩種方式: Two_Ideas
我確實看過這個 StackOverflow,這似乎是一個類似的問題:有效地找到一個圓扇區內的點 我用 Java 實作了它,但它似乎沒有向量就無法翻譯,而且我對數學有點太困惑了使其作業。
一直試圖解決這個問題,我希望任何型別的實作都能得到任何幫助(不介意添加 Trig 計算),以及任何理解問題的幫助。謝謝!!
uj5u.com熱心網友回復:
要獲得扇區,您需要獲得相對于點中心的角度。
偽代碼(我不確定 Java 中的數學函式和四舍五入的外觀):
double angle = math.atan2(mouse.y-center.y, mouse.x-center.x);
angle = angle - math.pi / 16.0;
while (angle < 0) {
angle = angle 2*math.pi;
}
sector = math.floor(angle * 8.0 / math.pi);
我按半扇區進行了校正,因為您的第一個扇區以 OX 軸為中心。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374651.html
下一篇:二叉搜索樹中搜索失敗的平均深度
