Программа состоит из отдельных разделов или блоков, которые долж­ны располагаться в следующем порядке: [ заголовок программы; ]



Download 0,62 Mb.
bet8/16
Sana16.03.2022
Hajmi0,62 Mb.
#493552
TuriЛабораторная работа
1   ...   4   5   6   7   8   9   10   11   ...   16
Bog'liq
Задания по ЯиСП 1-14 ИВТ

Лабораторная работа 7.
Графические возможности. Графический режим. Система координат


В настоящей лабораторной работе мы познакомимся с некоторыми гра­фическими возможностями ТР.
Система программирования Turbo Pascal снабжена несколькими моду­лями или "библиотеками" в которых хранятся все её процедуры и функции. Каждая такая библиотека специализирована, т.е. содержит процедуры и функции, поддерживающие одно устройство, выполняющие подобные действия и т.д.


GRAPH.TPU


Библиотека содержащая процедуры и функции для поддержки графичес­кого режима носит имя GRAPH.TPU.


Подключение графической библиотеки.


Для того, чтобы компилятор "узнавал" названия процедур и функций содержащихся в библиотеке GRAPH.TPU, мы должны после заголовка прог­раммы разместить строчку следующего вида:


Uses Graph;


(что можно перевести на русский язык как выражение "используется гра­фика", или "модуль GRAPH.TPU подключён"). Формально эта строка разре­шает нам использовать процедуры и функции библиотеки GRAPH.TPU.


Инициализация (включение) графического режима.


До сих пор, во время нашей работы за компьютером, экран всегда на­ходился в текстовом режиме (поэтому на экране можно было видеть только лишь символы).
Для рисования прямых, окружностей и пр. необходимо перевести эк­ран в графический режим. Для включения графического режима использует­ся процедура InitGraph. Простейшая программа, использующая графические возможности, может иметь вид:


Program Ех_1;
Uses Graph;
Var Gd,Gm.: Integer;
Begin
Gd:=VGA; { графический адаптер VGA }
Gm:=VGAhi; { графический режим VGAhl (640x430)xl6 }
Initgraph (Gd, Gm) ; { Включить графический режим Драйвер в текущем каталоге}
if GraphResult = grOJcthen { Если режим включился успешно }
begin line(0,0,639,479); { нарисовать отрезок прямой }
Readln;
CloseGraph; { выключений графического режима }
end;
End.
InitGraph(Gd,Gm:integer; Path:string);


Мы видим, что у процедуры InitGraph три параметра. В качестве первых двух параметров должны стоять имена целых (integer) переменных.
Первый параметр Gd является кодом графического адаптера (т.е. электронной схемы, управляющей выводом информации на экран). Дело в том, что на IBM-совместимых компьютерах применяется ряд стандартных графических адаптеров, носящих названия CGA, EGA, VGA.
По нашей программе можно догадаться, что в используемых нами компьютерах используется адаптер VGA (и компилятор сам "узнаёт" слово VGA и заменит его на нужное целое число).
Каждый графический адаптер позволяет использовать несколько гра­фических режимов, отличающихся количеством цветов и разрешающей спо­собностью. Второй из параметров Gm как раз предназначен для того, что­бы указать, какой из режимов следует включить.
Третий параметр Path является строкой (string), содержащей путь к файлу, который называется egavga.bgi. В этом файле содержится драйвер (такая специальная программа), необходимый для работы мониторов EGA и VGA в графическом режиме. И, как видно из нашего примера, файл этот находится в текущем каталоге.


GraphResult: integer;


Эта функция, при обращении к ней, возвращает специальный код (целое число), в зависимости от того, как прошло выполнение любой гра­фической процедуры или функции. Код 0 (grOJc) - успешное выполнение. В приведённом выше примере программы Ех_1, данная функция применяется для проверки того, как прошла инициализация графического режима. Даль­нейшая работа этой программы возможна лишь тогда, когда код функции GraphResult равен grOJc.


CloseGraph


Выключение графического режима.


Всё вышеизложенное необходимо знать каждому грамотному пользова­телю IВM-совместимых компьютеров. Однако, в нашей лабораторной работе - достаточно использовать конструкцию, использованную в первом примере, для включения графического режима. (И не страшно, если в ней не всё понятно.)
Система координат.
Для того, чтобы мы могли что-либо нарисовать на экране, нам нужно уметь задавать положение на экране того, что мы рисуем. Для этого с экраном связывается система координат следующего вида:
(0,0) X

Y
Обратите внимание. Точка (0,0) находится в левом верхнем углу. Привычная для нас система координат "перевёрнута".
Каждая точка на экране на самом деле представляет собой очень ма­ленький прямоугольник (и поскольку это не совсем точка, то иногда ис­пользуют специальный термин - "пиксел"). Количество точек (пикселов), умещающихся на экране по вертикали и горизонтали, называют разрешающей способностью. Разрешающая способность экрана в режиме VGAhi - 640x430. Это означает, что по горизонтали на экране умещается 640 точек, а по вертикали - 480.


Описание некоторых графических процедур и функций.


Line (xl, yl, х2, у2: integer);


Как Вы уже догадались, процедура Line(xl,yl,x2,у2) рисует на эк­ране отрезок, соединяющий точки (xl,yl) и (х2,у2). Например:


Program Ех_2; { нарисовать треугольник }
Uses Graph;
Var Gd, Gm.: integer;
Begin
Gd:=VGA; { графический адаптер VGA }
Gm:=VGAhi; { графический режим VGAhi (640x430)xl6 }
Initgraph (Gd, Gm) ; { Включить графический режим Драйвер в текущем каталоге} ifGraphResult = grOJcthen { Если режим включился успешно }
begin
line(120,210,520,210); { основание }
line(120,210,320,10); { левая сторона }
line(320,10,520,210); { правая сторона }
end;
End.


Текущий цвет рисования.


При выполнении описанной выше программы мы получим изображение треугольника из белых линий. Обладая цветным монитором VGA, мы можем создавать рисунки, используя различные цвета и оттенки. В любом случае рисование происходит так называемым "текущим цветом рисования". По умолчанию, текущий цвет рисования белый.


SetColor(Color: word);


Для изменения текущего цвета рисования, т.е. для задания цвета рисования прямых, окружностей, точек и пр. используется процедура SetColor. В качестве единственного её параметра Color нужно указать целое число, являющееся кодом цвета. Цвета кодируются в соответствии со следующей таблицей:



В1аск

= 0



чёрный

В1uе

= 1



синий

Green

= 2



зелёный

Cyan

= 3



циановый

Red

= 4



красный

Magenta

= 5



сиреневый

Brown

= 6



коричневый

LightGray

= 7



светло-серый

DarkGray

= 8



тёмно-серый

LightBlue

= 9



голубой

LightGreen

=10



светло-зелёный

LightCyan

=11



светло-циановый

LightRed

=12



розовый

LightMagenta

=13



светло-сиреневый

Yellow

=14



жёлтый

White

=15



белый

Если Вы хорошо знаете английский язык, то Вам будет удобнее ис­пользовать не числа, а соответствующие им идентификаторы; если же Вы английский знаете плохо, то всё равно полезнее запомнить английские названия цветов, чем запоминать числа, кодирующие цвета.


Program Ех_3; { цветной треугольник }
Uses Graph;
Var Gd, Grr.:Integer;
Begin
Gd:=VGA; { графический адаптер VGA }
Gm:=VGAhi; { графический режим VGAhi (640x430)xl6 }
Initgraph (Gd, Gm) ; { Включить графический режим Драйвер в текущем каталоге} ifGraphResult = grOJcthen { Если режим включился успешно }
begin
setcolor(lightmagenta); line(120,210,520,210); { основание }
setcolor(lightcyan); line(120,210,320,10); { левая сторона }
setcolor(green); line(320,10,520,210); { правая сторона }
end;
end.


GetColor: word;
Возвращает текущий цвет рисования. SetBkColor(color: word);


Вам ещё не один раз придётся столкнутся с понятием-характеристи­кой - "текущий". Текущий цвет, текущая координата, текущее значение и т.д. Данная процедура устанавливает текущий цвет фона. По умолчанию текущий цвет фона - чёрный.


GetBJcColor: word;
Возвращает текущий цвет фона.


ClearDevice
Очищает графический экран закрашивая его в текущий цвет фона, ус­танавливает указатель текущей позиции в точку с координатами (0,0).
PutPixel(х,у:integer; Pixel:word);
Рисует точку с координатами (х,у) цветом Pixel.


GetPixel(х,у: integer): word;
Возвращает цвет точки с координатами (х,у).


Rectangle(xl,yl,х2,у2:integer) ;
Строит контур прямоугольника из линий текущего цвета.


Circle(х,у:integer; г:word);
Для рисования окружностей используется процедура Circle с тремя целочисленными параметрами: х,у - координаты центра окружности; г - радиус.


Arc(х,у:integer; StA,EndA,Radius:word);
Нарисует дугу окружности текущим цветом. х,у - координаты центра окружности данной дуги; Sta - начальный угол; (в градусах) EndA - конечный угол; (в градусах) Radius – радиус дуги.


Ellipse(х,у:integer; stA,endA:word; xr,yr: word);
Рисует дугу эллипса текущим цветом. х,у - координаты центра эллипса; stA - начальный угол; endA - конечный угол;
хг,уг - горизонтальная и вертикальная полуоси эллипса.


SetLineStyle(Ln,Р,Т)
Рисование линий, окружностей и их элементов, контуров прямоуголь­ников осуществляется линиями. Процедура SetLineStyle позволяет изме­нять параметры этих линий. Параметры этой процедуры - целые числа. Ln - стиль линии:
= сплошная;
= пунктирная;
= штрихпунктирная;
= штриховая;
= заданная пользователем. Т - толщина линии:
1 = нормальная; 3 = толстая. Р - шаблон:
0 - во всех случаях для Ln от 0 до 3;
Для Ln = 4 устанавливается шаблон линии в виде двухбайтового числа, каждый бит которого равен 1, если его надо высветить и 0 - в противном случае. Например линия в виде 1111111100000000 в шестнадцатиричной форме следует записать $АА00.


Кратко описанные в данной лабораторной работе графические проце­дуры и функции составляют лишь небольшую часть богатого арсенала биб­лиотеки GRAPH.TPU. Несмотря на то, что в последствии мы изучим все ос­новные возможности этой библиотеки, вы в любой момент можете сделать это самостоятельно, воспользовавшись системой помощи. Для этого необ­ходимо войти в раздел HELP главного меню, и выбрав разделы подменю StandartUnits и Graph, выбрать описание необходимой процедуры или функции.


Контрольные вопросы.


1 Как называется и как подключается библиотека графических процедур и функций?
2 Как инициализируется графический режим?
3 Как выключается графический режим?
4 Как изменяются параметры линий рисования?
5 Опишите процедуру рисования линий.
6 Опишите процедуры рисования окружности, дуги окружности и дуги эл­липса .
7 Опишите процедуру рисования контура прямоугольника.
8 Опишите процедуры изменения текущего цвета рисования и текущего цвета фона.
9 Как изменить (установить) цвет точки экрана.


Download 0,62 Mb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   ...   16




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish