![](/img/trans.png)
[英]How to fix Error json.JSONException: Index 1 out of range [0..1)
[英]How to add floats but keep/wrap the total within the range 0..1?
我正在對幾個Alpha值進行一些動畫處理,並希望設置相對於參考值的值
obj1.alpha = refAlpha + 0.25f;
obj2.alpha = refAlpha + 0.75f;
例如,如果refAlpha是0.5,那么我希望obj2.alpha為0.25,而不是1.25。 有什么數學函數可以做到這一點?
mod運算符%
將在包裝方面發揮作用。 (它適用於浮點數和整數)。
obj1.alpha = (refAlpha + 0.25f) % 1f
obj2.alpha = (refAlpha + 0.75f) % 1f
public static void main(String[] args) {
System.out.println(1.25f % 1f); // --> 0.25
}
不幸的是,java並沒有完全實現mod的數學定義。 a % b
返回(-b, b)
范圍內的值,而不是[0, b)
。 如果您要減去值,則結果可能為負。 如果這是您擔心的用例,請考慮創建一個輔助函數來處理它:
public static float mod(float a, float b){
return ((a % b) + b) % b;
}
這將使結果在[0,b)
范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.