Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
56
Добавлен:
17.04.2013
Размер:
188.42 Кб
Скачать

Лабораторная работа

Построение графиков с использованием модуля graphics.H

Цель работы:- получить общие сведения необходимые для построения графиков

  • получить практические навыки построения графиков

  1. Теоретические сведения

Для изображения на экране графиков функций, рисунков и другой графической информации в языке “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 Система координат экрана и область графика

Для построения графика функции на экране нужно запрограмировать следующую последовательность действий:

  1. Задать координаты (k,i) и (l,j) углов прямоугольной области графика (Рис.1);

  2. Задать диапозон изменения аргумента функции [X1,X2];

  3. Определить минимальное (Fmin) и максимальное (Fmax) значения функции, которые она принимает при . Fmin и Fmax можно вычислить аналитически или программно. В последнем случае нужно организовать цикл с параметром x, который изменяется от X1 до X2 с шагом , соответствующим горизонтальному расстоянию между соседними пикселами в системе координат экрана. В цикле вычесляется последовательнось значений функции , и из этой последовательности выбераются минимальное и максимальное значения;

  4. Вычислить величины a и b по формулам (4) и (5);

  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 – цвет точки.