我正在嘗試實施俄羅斯輪盤賭游戲,并希望它為它提供強力解決方案。這是我的問題。我將硬編碼輪子上數字的相對角度(例如,有 36 個數字,每個數字彼此之間會有 10 度的偏移,頂部 12 點鐘位置的數字將具有0 和接下來的 10,反之亦然)。我將隨機旋轉輪子,然后根據我可以計算的一些值(startPosition 到finishedPosition)確定它的旋轉。輪子是一個 ImageView。有沒有辦法真正做到這一點?例如,獲取它的開始和結束的左上角 x,y pos,然后通過一些公式來計算它旋轉了多少。或者有沒有更好的方法來做到這一點?沒有太多的源代碼來展示它,所以這更像是一個數學問題而不是一個快速的問題。
uj5u.com熱心網友回復:
要計算旋轉,您需要三個點的坐標:旋轉后同一點的起始位置sx, sy、結束位置ex, ey和旋轉中心cx, cy
然后你可以使用atan2函式找到角度
rot_angle = atan2((ex-cx)*(sx-cx) (ey-cy)*(sy-cy), (ex-cx)*(sy-cy)-(ey-cy)*(sx-cx))
注意- 我在這里使用了引數順序 (x,y) ,而大多數語言使用反向順序 (y,x),因此請檢查您真正需要的順序(我沒有 IOS 語言的經驗)。結果值也可能是弧度或度數(上面的鏈接沒有明確指定)
uj5u.com熱心網友回復:
你的問題沒有多大意義。如果您隨機旋轉輪子,則將隨機值計算為角度。如果您想通過某個隨機角度更改先前的旋轉,請對開始旋轉和結束旋轉進行數學計算。那只是添加和減去角度(模 2π)。然后你就會知道它旋轉了多遠,而不必計算它。
假設您談論的是輪盤賭,而不是“俄羅斯輪盤賭”(至少在美式英語中,該術語涉及將裝載的左輪手槍指向您的頭部),您將需要跟蹤輪盤旋轉和球旋轉。要將旋轉應用于輪子,您只需拍攝輪子的影像并圍繞其 x/y 中心點在 Z 軸上旋轉。
要繪制球,您需要使用 trig 根據球所遵循的軌跡半徑和角度來計算球的中心。但同樣,始終跟蹤角度,然后將角度轉換為球的 x/y 中心點以繪制它。不要忘記角度,然后必須從球位置轉換回它的角度。那是愚蠢的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/395353.html
