Я хочу обработать значения джойстика таким образом, чтобы «нормализованные» значения лежали между -1 и 1 (включая числа с десятичными разрядами, например, 0,0129).
В частности, я имею дело свходной сигнал контроллера Wiimote.
Ось X имеет диапазон от 35 до 228, а ось Y имеет диапазон от 27 до 220.
Центр для обоих - 128.
Теперь я хотел бы сделать так, чтобы значение 35 на оси X приводило к -1, значение 128 должно давать 0, а значение 228 - 1.
Есть ли какой-то особый способ сделать это?
Лучшее, что я мог придумать, было:
public float[] GetStickNormalizedDataXY()
{
float[] ret = new float[2];
ret[0] = _stick[0];
ret[0] -= 35;
ret[1] = stick[1];
ret[1] -= 27;
for (int x = 0; x < 2; x++)
{
ret[x] /= 193f;
}
return ret;
}
Но мои результаты варьируются только от 0 до 1, поэтому я думаю, что ядолжно быть, здесь что-то не так.