Создание надежного графического калькулятора с использованием Python — Python 2.7 ⇐ Python

Программы на Python
Anonymous
Создание надежного графического калькулятора с использованием Python — Python 2.7

Сообщение Anonymous »

Я пытаюсь создать надежный графический калькулятор, используя Python и pygame.

Я создал графический калькулятор, который работает для большинства функций . Он принимает инфиксное выражение пользовательской строки и преобразует его в постфиксное для упрощения вычислений. Затем я перебираю и передаю значения x в постфиксное выражение, чтобы получить значение Y для построения графиков с помощью pygame.

Первая проблема, с которой я столкнулся, заключалась в расчетах невозможных чисел. вещи. (например, деление на ноль, квадратный корень из -1, 0 ^ неположительное число). Если бы произошло что-то подобное, я бы вывел None, и этот пиксель не был бы добавлен в список точек для построения графика.

* Я показал все различные попытки, которые я предпринял, чтобы помочь вам понять, откуда я пришел. Если вы хотите видеть только мой самый последний код и метод, перейдите туда, где написано «текущий».

Метод 1
Мой первый метод заключался в том, что после получения всех значений пикселей я рисовал их с помощью функции pygame aalines. Это работало, за исключением того, что оно не работало, когда между фактическими точками были пропущенные точки, потому что это просто рисовало линию через точки. (1/x не будет работать, но что-то вроде 0^x будет)

Вот как выглядит 1/x с использованием метода aalines
Изображение


Метод 1.1

Моей следующей идеей было разделить строку на две строки каждый раз, когда обратно печаталось None. Это работало для 1/x, но я быстро понял, что это будет работать только в том случае, если одно из переданных значений X точно соответствует значению Y, равному None. 1/x может сработать, но 1/(x+0,0001) не сработает.

Метод 2

Мой следующий метод заключался в преобразовании значения x каждого пикселя в соответствующее значение точки x в окне (например, (0,0) в графическом окне на самом деле будет пикселем (249,249) в окне программы 500x500). Затем я вычислял каждое значение y с помощью только что созданных значений x. Это будет работать для любой линии, наклон которой не превышает 1 или

Подробнее здесь: https://stackoverflow.com/questions/290 ... python-2-7

Вернуться в «Python»