Графики функции с помощью компьютера строятся по точкам.
Допустим, чтобы построить график функции 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. Отобразите на осях координат засечки, указывающие единицу
длины (как на рисунке):




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