Масштабирование больших значений - PullRequest
2 голосов
/ 07 августа 2011

Я создал простой элемент управления WPF для рисования диаграмм в моем приложении. Теперь мне нужно нарисовать на нем функцию f (x) = 2 ^ x. Все значения (из указанного диапазона) должны быть видны на графике - они должны быть масштабированы так, чтобы значение f (x) для maxX было в правом верхнем углу. К сожалению, x может иметь большие значения, то есть 1000. Math.Pow () возвращает бесконечность для больших значений.

Решение, которое я вижу, состоит в том, чтобы вручную вычислить значение Math.Pow () - на каждом шаге я делю все предыдущие значения вместо умножения максимума на 2 (мне действительно не нужно само значение f (x)). Но, возможно, вы найдете лучшее решение.

1 Ответ

0 голосов
/ 08 августа 2011

Ну, вы знаете максимальное значение, это 2 ** max_x. Так что нормализуйте все значения следующим образом:

y_norm = y / 2 ** max_x
       = 2 ** x * 2 ** -max_x
       = 2 ** (x - max_x)
...