可以說我在2d平面上的位置有一點。 這一點將隨機改變它的位置,但那不是重點,所以我們假設它有它自己的速度,並且它在有限的寬度和高度的平面上移動; 所以經過一段時間的運動後,這一點將達到平面邊界。 但它不允許離開飛機。在指定範圍內的持續值
所以,現在我可以檢查每個幀的點位置,看看它是否達到了約束。
如果(point.x> bound.xMax)point.x = bound.xMax
如果我想指向本身瞬間移動到平面的第二側我可以簡單地:
point.x =點.X%bound.xMax;
但我需要存儲整數的點位置。
對於我的corei7 1.6上的10個千分值,兩個解決方案 都有類似的時間。 41ms vs 47秒, ,所以在這種情況下使用模函數是沒有意義的,它的檢測速度更快。
但是,是否有任何一種技巧使其更快? 用於迭代數組方法的多個線程不是解決方案。
也許我可以將我的約束值擴展到一些奇怪的值,例如丟棄位置值的二進制解釋的一部分。
如果有一些伎倆要做,我認爲有人在我之前做過:) 你知道任何一種解決方案可以幫助我嗎?
在浮點值中,你不能只是「丟棄」二進制表示中的某些位,因爲那樣你就會丟失一些重要的數字。 – Spo1ler
爲什麼不簡單地使用'fmod()'來實現浮點模?我很肯定你不能在這樣的基本計算上進行更多的優化 – Spo1ler