Конспект урока на тему "Рассмотрение работы в графическом режиме"

Рассмотрение работы в графическом режиме


Содержание занятия

1. Организационный момент.


Приветствие. Проверка присутствующих. Постановка цели. Формирование мотивации к изучению темы.

2. Изучение нового материала.


Понятие графического адаптера.


Аппаратная поддержка графики персонального компьютера обеспечивается двумя основными модулями: видеоадаптером и видеомонитором. Видеомонитор – это устройство, на котором появляется выводимый текст или графические изображения. Видеоадаптеры – это электронные устройства, управляемые собственным микропроцессором.


При работе с экраном в графическом режиме очень важным является то, что любая информация представляет собой совокупность пикселей. Каждый пиксель определяется своими координатами, т.е. положением относительно левого верхнего угла экрана. С помощью программ можно управлять светимостью и цветом любого пикселя, т.е. создавать любое изображение.


:


Для управления экраном в графическом режиме с помощью программ в Turbo Pascal существуют специальные графические процедуры и функции. Описание этих процедур и функций содержится в специальном библиотечном модуле CRAPH.


Запуск графической системы. Для запуска графической системы необходимо сделать следующее:

Подключить модуль CRAPH – библиотеку графических процедур: uses graph;

Установить графический режим с помощью двух переменных:


var DriverVar, ModeVar: integer;

begin

DriverVar:=Detect;

InitGraph(DriverVar, ModeVar,’\TP\GRAPH’);


С этого момента все графические средства доступны пользователю.

Процедуры и функции модуля CRAPH


Процедуры.


Arc (X,Y:Integer; U1, U2, R:Word)


Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y – координаты центра дуги; U1 – угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной с лева на право; U2 – угол до конечной точки дуги, отсчитываемый так же, как U1; R – радиус дуги.


Bar (X1, Y1, X2, Y2:Integer)


Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов прямоугольника.


Bar3D (X1, Y1, X2, Y2:Integer; Glubina: Word; "">

Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов передней грани; Glubina – ширина боковой грани (отсчитывается по горизонтали); Top – признак включения верхней грани (если True – верхняя грань вычерчивается, False – не вычерчивается).


Circle (X, Y: Integer; R: word)


Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).


ClearDevice


Очищает графический экран, закрашивает его в цвет фона.


ClearViewPort


Очищает выделенное графическое окно, закрашивает его в цвет фона.


CloseGraph


Закрывает графический режим, т. е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.


Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)


Рисует дугу эллипса текущим цветом. X, Y – координаты центра эллипса; U1, U2 – углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, XY – горизонтальная и вертикальная полуоси эллипса.


Fill Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)


Рисунт заштрихованный эллипс, используя X, Y как центр и XR, YR как горизонтальную и вертикальную полуоси эллипса.


FillPoly (N: Word; Var PolyPoints)


Рисует и штрихует многоугольник, содержащий N вершин с координатами в поле PolyPoints.


InitGraph (Var Driver, Mode:Integer; Path: String)


Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ’’), считается, что драйвер находится в текущем каталоге.


Line (X1, Y1, X2, Y2:Integer)


Рисует линию от точки X1, Y1, до точки X2, Y2.


LineTo (X,Y:Integer)


Рисует линию от текущего указателя к точке X, Y.


MoveTo (X,Y:Integer)


Смещает текущий указатель к точке X, Y.


OutTextXY (X,Y:Integer; TextString: String)


Выводит текст в заданное место экрана.


PieSlice (X,Y:Integer; U1, U2, Radius: Word)


Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y – координаты центра сектора круга; U1 и U2 – начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной в право; Radius – радиус сектора.


PutPixel (X,Y:Integer; Color: Word)


Выводит точку цветом Color с координатами X, Y.


Rectangle (X1, Y1, X2, Y2)


Рисует контур прямоугольника, используя текущий цвет и тип линий. X1, Y1 – координаты левого верхнего угла прямоугольника; X2, Y2 - координаты левого правого нижнего угла прямоугольника.


Sector (X, Y: Integer; U1, U2, XR, YR: Word)


Рисует и штрихует сектор эллипса радиусом XR, YR с центром в X, Y от начального угла U1 к конечному углу U2.


SetBkColor (Color: Word)


Устанавливает цвет фона.


SetColor (Color: Word)


Устанавливает основной цвет рисования.


SetFillStyle (Pattern, Color: Word)


Устанавливает образец штриховки и цвета.


SetLineStyle (LineStyle, Pattern, Thickness: Word)


Устанавливает толщину и цвет линии.


SetTextStyle (Font, Direction, CharSize: Word)


Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.


SetViewPort (X1, Y1, X2, Y2:Integer; ClipOn: Boolean)


Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет “отсечку” элементов изображения, не умещающихся в окне.


Функции.


GetMaxX и GetMaxY


Возвращает значения максимальных координат экрана в текущем режиме работы соответственно по горизонталь и вертикали.


GraphResult


Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от -1 до -14).


Закрытие видеорежима. Когда все запланированные графические работы выполнены, необходимо выйти из графического режима. Это делается с помощью не имеющей параметров процедуры ClozeGraph. В процессе выполнения эта процедура освобождает память, распределенную под драйверы графики, файлы шрифтов и промежуточные данные, и восстанавливает режим работы адаптера в то состояние, в котором он находился до выполнения инициализации системы.


Использование процедур и функций при решении задач. Рассмотрение структуры программы.


Построить правильный многоугольник с заданным числом сторон.


Решение.


Центр многоульника совмещаем с центром экрана. Пусть N – число его сторон. Центральный угол стороны Angle=2 * Pi / N. Начальную вершину многоугольника поместим на горизонтальной оси (правее центра). Угол наклона i-й вершины к оси Х составляет Angle * i, а ее центральные координаты X, Y –


X = round (R*cos(Angle*i));

Y = round (R*sin(Angle*i));


Где R – радиус описанной окружности.


Проводим i-ю сторону, соединяя линией найденную i-ю и предыдущую вершины. Выполнив это построение для всех i от 1 до N, получим наш многоугольник. (Отметим, что N-я вершина совпадает с начальной .)


{ Построение правильного многоугольника с N сторонами}

uses graph, crt;

Const

PrD:real=80; { Длина диаметра описанной окружности в % от высоты экрана}

PATH=’’; { файлы *.BGI находятся в рабочем каталоге}

Var

W,H,gd,gm,i,N,X,Y.R:integer;

Angle:real;

{ переход от центральных координат к экранным}

procedure WH (var W,H:integer); { ширина и высота экрана}

begin

{ функция GetMaxX и GetMaxY возвращают максимальные значения соответствующих экранных координат}

W:=( GetMaxX+1); { ширина}

H:=( GetMaxY+1); { высота}

end;

Function Xscr (X:integer):integer;

Begin Xscr:=X + W div 2 end;

Function Yscr (Y:integer):integer;

Begin Yscr:=H div 2 – Y end;

BEGIN

repeat

write (‘ Укажите число сторон правильного многоугольника, не менее 3’);

readln(N);

until N>2;

gd:=DETECT;

initgraph (gd,gm,path);

WH(W,H); { определяем ширину и высоту экрана}

R:=round(PrD*0.01/*H/2); { радиус описанной окружности}

Angle :=2*pi/N; { центральный угол стороны в радиусах}

MoveTo (Xscr(R), Yscr(0)); { первая вершина в экранных координатах}

SetColor (Yellow); { цвет многоугольника - желтый}

For i:=1 to N do begin {цикл сторон}

{X и Y – центральные координаты очередной вершины}

X:=round (R*cos(Angle*i));

Y:= round (R*sin(Angle*i));

{проводим очередную сторону}

LineTo (Xscr(X), Yscr(Y));

End; {цикл сторон}

Repeat until keypressed; { выход – нажатием любой клавиши}

CloseGraph; { переход в текстовый режим}

End.

3. Закрепление и обобщение изученного материала.


Закрепление изученного материала рекомендую провести следующим образом. Группу студентов разделить на две команды и провести состязание. Состязание содержит три задания.

Построить график функции y=sin(x) (y=cos(x)). График приведен в Приложении 1.

Разгадать кроссворд по процедурам модуля GRAPH. Представлен в Приложении 2.

Составить программу, выводящую на экран визитную карточку учебного заведения.

4. Домашнее задание.


[1, с. 367 - 387]. Решить задачи 7, 10 на стр. 420, построить график функции другого варианта.

5. Итоги занятия.


Выставление оценок за работу в командах. “Чему мы сегодня научились?” (Перечисляем, вспоминаем.) “Гости сами решат, к какой компании обратиться за изготовлением программных продуктов”.

Нравится материал? Поддержи автора!

Ещё документы из категории информатика:

X Код для использования на сайте:
Ширина блока px

Скопируйте этот код и вставьте себе на сайт

X

Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.

После чего кнопка «СКАЧАТЬ» станет доступной!

Кнопочки находятся чуть ниже. Спасибо!

Кнопки:

Скачать документ