的函數帶有一個DPI值,並返回一個百分比:計算的值範圍在百分之
100% if the value is bigger than 200
50% to 100% if the value is between 100 and 200
25% to 50% if the value is between 80 and 100
0% to 25% if the value is lower than 80
static public function interpretDPI($x) {
if ($x >= 200) return 100;
if ($x >= 100 && $x < 200) return 50 + 50 * (($x - 100)/100);
if ($x >= 80 && $x < 100) return 25 + 25 * (($x - 80)/20);
if ($x < 80) return 25 * ($x/80);
}
現在我有根據這些規則改變這個功能,返回:
100% if the value is bigger than 100
75% to 100% if the value is between 72 and 100
50% to 75% if the value is between 50 and 72
0% to 50% if the value is lower than 50
在爲了達到這個目的,我試圖根據我對其行爲的瞭解重新建模功能:
static public function interpretDPI($x) {
if ($x >= 100) return 100;
if ($x >= 72 && $x < 100) return 75 + 75 * (($x - 72)/28);
if ($x >= 50 && $x < 72) return 50 + 50 * (($x - 50)/22);
if ($x < 50) return 25 * ($x/50);
}
但結果顯然是錯誤的。例如,96的DPI會給我141%的結果。顯然這是錯誤的,但我缺乏數學理解知道爲什麼 - 以及如何解決它。
我一定誤解了這個函數的功能。
任何人都可以詳細說明這一點嗎?
謝謝!但這正是我自己寫的,唯一的區別在於範圍限制(大於,小於)。我試過了,如果我調用interpretDPI(96),它會返回139; – SquareCat