Для решения нашей задачи требуется строить графики функций. Для их корректного отображения нам потребуется вычислить масштаб графика, размер графика и координаты центра. Для этого нам потребуются пределы изменения по оси Ox, где xϵ[x1;x2] и по оси Oy, где yϵ[y1;y2], и шаг dx.
В начале выберем размер занимаемый графиком, пусть будет 600x600. Тогда мы можем рассчитать масштаб по оси Ox и Oy
Mx = 600/(x2 - x1), | (1.8) |
My = 600/(y2 – y1), | (1.9) |
где Mx – масштаб по оси Ox,
H |
W |
600pix |
600pix |
x э |
y э |
x 0, y 0 |
y min |
x min |
y |
x |
Рис. 1.4. Изображение графика функций |
My – масштаб по оси Oy.
Определим экранные координаты точки начала отсчета (0,0). Как видно из рисунка (Рис. 1.4.), начало отсчета экранных координат находится в левом верхнем углу экрана. Нам же необходимо разместить начало отсчета так, чтобы и положительные и отрицательные ветви графика полностью поместились на экране. Следовательно,
x0 = |x1|·Mx, | (1.10) |
y0 = y2·My, | (1.11) |
где x0, y0 – экранные координаты центра,
|x1| - модуль x1.
Построение графика функции y(x) выполняется по точкам. Значения функции вычисляются для каждой точки х на отрезке [x1;x2] с шагом dx. Для определения экранных координат точек (xe, ye) полученные значения х и у умножаются на соответствующие масштабные коэффициенты, округляются до целых значений (т.к. экранные координаты – только целые). Затем учитывается положение точки начала отсчета (x0;y0) и направление экранных осей. Направление экранной оси Ох совпадает с направлением соответствующей оси нашего графика, а экранная ось Оу направлена в противоположную сторону по отношению к оси нашего графика. Поэтому формулы для вычисления экранных координат точек графика имеют вид
|
|
xe = x0 + x·Mx | (1.12) |
ye = y0 – y·My | (1.13) |
Алгоритм изображения графика функций находится ниже (Рис. 1.5.)
Список условных обозначений к блок-схеме изображения графика функций
· x1, x2, y1, y2 – пределы изменения по X и по Y соответственно;
· Mx, My – масштаб по оси Ox и по оси Oy;
· x0, y0 – экранные координаты центра;
· x, y – координаты точки;
· xe, ye – экранные координаты точки;
· dx – шаг.