Графики функции с помощью компьютера строятся по точкам.
Допустим, чтобы построить график функции y= x^2 на промежутке от 0 до 4 берём
значения х с каким-либо небольшим шагом, например, 0.1, и для каждого х вычисляем
значения у. Получается такая таблица:
x
|
y
|
0
|
0
|
0.1
|
0.01
|
0.2
|
0.04
|
0.3
|
0.09
|
0.4
|
0.16
|
………..
3.8
|
14.44
|
3.9
|
15.21
|
4
|
16
|
Однако сразу брать эти значения и отображать на экран не
стоит. Ведь ось у на экране идёт вниз, а единица длины – это 1 пиксель. И мы
получим примерно такую картинку:
Понятно, что это не то, что нужно. Поэтому для адекватного отображения построенного графика на
экране, рассмотрим задачу о переходе между системами координат.
Точки графика у нас будут иметь некоторые координаты (х, у).
Их нужно отобразить на экранных координатах, назовём их (xs, ys).
Допустим, центр математической системы координат имеет
координаты (x0, y0) на экране, а 1 единица
соответствует D
пикселям экрана.
Тогда, если у точки абсцисса равна х, это значит, что на
экране она должна находиться на D*x пикселей от вертикальной оси. А т.к. сама
вертикальная ось находится на расстоянии х0 от начала экранных координат, то
получаем формулу перевода:
xS = x0+x*D
Аналогично, если ордината точки равна у, это значит, что она
отстоит на y*D пикселей от горизонтальной оси. И её экранная координата будет
равна
yS =
y0-y*D
Знак минус здесь потому, что экранная ось у направлена вниз,
а математическая – вверх.
Теперь можно составить алгоритм рисования графика функции
y=f(x).
![]() |
| Add caption |
По этому алгоритму составим программу для рисования графика функции
y=x^2 на промежутке от -5 до 5. Точки брать будем с шагом 0.1. Центр координат
поместим в центре экрана (300, 150) и возьмём 20 пикселей в одной единице.
Переводим экран в графический режим:
10 SCREEN 9
20 CLS
Задаём параметры отображения графика на экране
30 X0 = 300
40 Y0 = 150
50 D = 20
Задаём параметры вычисления точек графика:
60 X1 = -5
70 X2 = 5
80 K = 0.1
И выполняем цикл:
90 X = X1
100 IF
X>X2 THEN GOTO 170
110 Y = X*X
120 XS = X0+X*D
130 YS = Y0-Y*D
140 PSET
(XS, YS)
150 X = X+K
160 GOTO 100
Теперь рисуем горизонтальную ось
170 LINE(0,Y0)-(600,Y0)
И вертикальную:
180 LINE(X0,0)-(X0,350)
Программа готова. Проверьте, будет ли она работать.
Теперь выполните самостоятельные задания:
1. Сделайте график цветным
2. Переместите центр координат ближе к правому нижнему углу
экрана
3. Увеличьте масштаб отображения графика
4. Вместо y=x^2 постройте график функции y = sin(x)
5. Отобразите на осях координат засечки, указывающие единицу
длины (как на рисунке):




Немає коментарів:
Дописати коментар