- •Построение графиков с использованием модуля graphics.H
- •Теоретические сведения
- •2. Описание модуля graphics.H
- •Функция cleardevice() очищает весь экран, устанавливает текущей точкой левый верхний угол экрана, но оставляет неизменными все установки графического экрана: стиль линии, текущий цвет и т.Д.
- •Пример построения графиков
- •Написать программу, выводящую на экран график функции
- •4.Требования к работе.
- •5.Контрольные вопросы
- •6. Варианты заданий
Лабораторная работа
Построение графиков с использованием модуля graphics.H
Цель работы:- получить общие сведения необходимые для построения графиков
получить практические навыки построения графиков
Теоретические сведения
Для изображения на экране графиков функций, рисунков и другой графической информации в языке “Borland C” и “C++” предусмотрен стандартный модуль “Graphics”. Подпрограммы модуля “Graphics” управляют экраном в графическом режиме и становятся доступными в программе после указания его имени в предложении USES. Подпрограммы, используемые для построения графиков, рассматриваются в описании модуля “Graphics”.
В графическом режиме информация отображается на экране в виде светящихся точек, называемых пикселями. Максимальное количество точек на экране, отображаемых по горизонтали и вертикали называется разрешением. Разрешение определяется установленным графическим режимом (возможностями компьютера). При желании графический режим можно поменять и сменить его на менее высокий(режем выше чем позволяет компъютер установить нельзя). Примеры графических режимов С.М. ниже.
Система координат экрана в графическом режиме показана на (рис1). Начало системы координат находится в левом верхнем углу экрана и совпадает с точкой, имеющей координаты (0,0). Ось OX направлена слева направо, а ось OY – сверху вниз.
График функции может изображаться на всем экране, либо в прямоугольной области, занимающей часть экрана (Рис.1). В исходной системе координат, которая соответствует функции , ось oxнаправлена слева направо, а ось oy снизу вверх. В этой системе координат размеры области, занимаемой графиком, определяется по горизонтали диапазоном изменения аргумента x (например, ), а по вертикали – минимальным Fmin и максимальным Fmax значениями функции y, которые она принимает при .
На экране область, занимаемая графиком (Рис.1), представляется прямоугольником с координатами верхнего левого угла (k,i) и координатами нижнего правого угла (l,j).
Связь координат (x,y) пиксели, представляющего на экране точку (x, F(x)) графика , задается следующими формулами:
X=k+(x-X1)(l-k)/(X2-X1) (1)
Y=aF(x)+b (2)
где a – масштабный коффициент, b – положение оси OX на экране.
Значения величин a и b определяются из системы уравнений, полученной из формулы (2):
(3)
Решив эту систему, найдем a и b:
a=(i-j)/(Fmax-Fmin) (4)
b=j-aFmin=j-Fmin(i-j)/(Fmax-Fmin) (5)
Положение на экране осей OX и OY исходной системы координат, соответствующей функции , задается уравнениями:
Y=b (6)
X=k-X1(l-k)/(X2-X1) (7)
которые получаются из формулы (1) и (2) при F(x)=0 и x=0 (Рис.1)
k-X1(l-k)/(X2-X1)
Рис.1 Система координат экрана и область графика
Для построения графика функции на экране нужно запрограмировать следующую последовательность действий:
Задать координаты (k,i) и (l,j) углов прямоугольной области графика (Рис.1);
Задать диапозон изменения аргумента функции [X1,X2];
Определить минимальное (Fmin) и максимальное (Fmax) значения функции, которые она принимает при . Fmin и Fmax можно вычислить аналитически или программно. В последнем случае нужно организовать цикл с параметром x, который изменяется от X1 до X2 с шагом , соответствующим горизонтальному расстоянию между соседними пикселами в системе координат экрана. В цикле вычесляется последовательнось значений функции , и из этой последовательности выбераются минимальное и максимальное значения;
Вычислить величины a и b по формулам (4) и (5);
Нарисовать на экране с помощью процедуры LINE модуля GRAPHICS оси координат OX и OY, положение которых задается уравнениями (6) и (7):
LINE(k,b,l,b); //ось OX
c:=ROUND(k-X1(l-k)/(X2-X1));
LINE(c,i,c,j); //ось OY
6)Организовать цикл с параметром x, изменяющимся от k до 1 с шагом 1 и задающим абсциссу точки графика функции на экране. В цикле вычисляется ордината Y точки графика функции на экране по формуле (2) и с помощью процедуры PUTPIXEL модуля GRAPHICS.H на экране изображается точка графика функции:
;
где arg – значение аргумента функции, Color – цвет точки.