Как бы я получить значение от 0 до 1 в зависимости от положительного / отрицательного ввода? - PullRequest
0 голосов
/ 21 марта 2012

Мне нужно сгенерировать число от 0 до 1 (используется для непрозрачности), которое точно отражает числа по этой шкале:

-249,76684980273333 А ТАКЖЕ +249,76684980273333

, например, -249,76684980273333 будет 0,00, а 249,76684980273333 будет 1,00

Ответы [ 3 ]

10 голосов
/ 21 марта 2012

Просто сделай

x / (2.0*M) + 0.5

где M = 249.76684980273333


Чтобы решить эту проблему, вы хотите найти формулу, описывающую конкретное линейное уравнение. Уравнение отобразит ваши «большие» числа (вход x) в числа между 0-1 (выход y).

Вы можете использовать формулу для линии из двух точек:

enter image description here

В вашем случае, поскольку вы сказали, что "-249.76684980273333 будет равно 0,00, а 249,76684980273333 будет равно 1,00", тогда должно быть ясно, что две различные точки, лежащие на линии, которая вас интересует, это:

(x1, y1) = -249.76684980273333, 0.00
(x2, y2) = 249.76684980273333, 1.00

Подставьте их в формулу и решите ее в виде строки, как y = m*x + b, и из этого вы можете легко написать свой алгоритм.

Надеюсь, это поможет!

6 голосов
/ 21 марта 2012
function scale(min, max, value) {
    return value/(max-min) + min
}

min = минимум вашего диапазона, в вашем примере -249.76684980273333
max = максимум вашего диапазона, в вашем примере 249.76684980273333
значение = значение, которое вы тестируете

1 голос
/ 21 марта 2012

Вы хотите

y = (x+249.76684980273333)/(2*249.76684980273333);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...