Когда вы пытаетесь определить диапазон вашего измерения, вы можете разделить сумму на размер диапазона, а затем вычислить число, которое вы хотите отобразить на графике.
Кстати, в вашем коде,Вы допустили логическую ошибку, если значение y <= 1000
, первое условие оценивается как истинное, а второе для y <= 750
никогда не будет оцениваться.
Также кажется, что чем выше диапазон значений, тем нижеваш график точка.Это так, как задумано?(1000 -> ymax - 128, а 1 -> ymax - 32)
Кроме того, если вы хотите сравнить значения с неравномерными диапазонами, вы также можете сделать что-то вроде поиска в массиве (псевдокод):
int[] ranges = new int { 50, 500, 5000, 50000 };
for (int n = 0; n < ranges.length && value > ranges[n]; n++) {
}
int range = n;
int newy = yaxis - range * 32;
Обратите внимание, что индекс вне диапазона действует как диапазон, найденный для значения, которое больше, чем самое большое значение в вашем массиве.