Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение задач на ЭВМ. Программирование на языке Pascal. Учебное пособие
.pdf
Типы узоров для закрашивания
Константа
Описание узора
№ узора
EmptyFill
Сплошной цветом фона
0
SolidFill
Сплошной текущим цветом
1
LineFill
Тип
2
LtSlashFill
Тип // нормальной толщины
3
SlashFill
Тип // удвоенной толщины
( жирные линии)
4
BkSlashFill
Тип \\ удвоенной толщины
( жирные линии)
5
LtBkSlashFill
Тип \\ нормальной толщины
6
HatchFill
Заполнение клеткой
(редкая штриховка)
7
XHatchFill
Заполнение косой редкой
клеткой (частая штриховка)
8
InterLeaveFill
Заполнение косой частой клет-
кой (прерывистые линии)
9
WideDotFill
Заполнение редкими
точками
10
CloseDotFill
Заполнение частыми
точками
11
UserFill
Определяется
пользователем
12
замкнутых поверхностей
Таблица 4.15
Константы выравнивания.
горизонтального вертикального
LeftText 0 BottomText 0
CenterText 1 CenterText 1
RightText 2 TopText 2
101

DefaultFont
0
шрифт размером 8x8 точек
TriplexFont
1
полужирный шрифт
SmallFont
2
светлый шрифт (тонкое
начертание)
SansSerifFont
3
книжная гарнитура (рубленый шрифт)
GothicFont
4
готический шрифт
HorizDir
5
ориентированный слева
направо
VertDir
6
ориентированный снизу вверх
UserCharSize
7
размер, определённый программистом
Константы стиля текста.
Константы для процедуры Putlmage:
NormalPut 0 CopyPut 0 XorPut I
OrPut 2 AndPut 3 NotPut 4
Константы для процедуры ВагЗР:
TopOn true верхняя грань параллелепипеда изобража-
ется
TopOff false верхняя грань параллелепипеда не изоб-
ражается
Константы для процедуры SetViewPort:
ClipOn true элементы изображения вне окна отсека-
ются
ClipOff false элементы изображения вне окна не отсе-
каются
102
Таблица 4.16

Типы переменных модуля Graph.
- ArcCoordsType
- FillPatternType
- FillSettingsType
- Указатели графической памяти
- LineSettingsType
- PaletteType
- PointType
- TextSettingsType
- ViewPortType
Различные фигуры и геометрические действия моделируются в ЭВМ числами и кодами (на паскале с помощью процедур и
функций). Геометрические задачи решаются путём вычислений.
Декартова система координат - основа численного моделирования
геометрических объектов. Практически все графические устрой-
ства работают на базе прямоугольных декартовых координат. Номер столбца и номер строки для точки растрового изображения
можно считать их специфической разновидностью. Конструкторы
и геометры в нужных случаях пользуются и другими координатными системами, например, полярной, а также другими способами
задания кривых, например, параметрическим.
При исполнении графических программ, требуется ав-
тономный драйвер графического адаптера (BGI - файл).
Графические драйверы поддерживают следующие
графические адаптеры:
CGA - Hercules
MCGA -AT&T 400
EGA - 3270 PC
VGA -IBM -8514
Для поддержки этих аппаратных средств используются
следующие драйверы:
103

Таблица 4.17
CGA.BGI
Драйвер для CGA, MCGA
EGAVGA.BGI
Драйвер для EGA, VGA
HERC/BGI
Драйвер для Hercules (монохромный)
ATT/BG1
Драйвер для АТ&Т6300 (400 строк)
PC3270.BGI
Драйвер для IBM 3270 PC
1BM8514.BGI
Драйвер для IBM-8514
Во время выполнения программы процедура InitGraph ав-
томатически распознает графический адаптер, установленный на ПК, загружает и инициализирует соответствующий графический драйвер, переводит адаптер в графический режим и
возвращает управлени е вызывающей программе. Процедура
CloseGraph выгружает драйвер из памяти и восстанавливает тек-
стовый режим работы адаптера.
Перед началом написания программы в графическом
режиме необходимо использование следующих операторов:
Uses
Graph,Crt;
Var
GrDriver, grMode: integer;
Begin
GrDriver:= Detect;
InitGraph {GrDriver, grMode, ' ');
Блок графических операторов
Readln;
CloseGraph
End.
где:
GrDriver – переменная, задающая драйвер
GrMode – переменная, задающая режим работы драйвера GrDriv-
er:= Detect; - система переходит в режим автоопределения
InitGraph {GrDriver, grMode, ' '); - предполагает, что драйвер в
текущем каталоге
104

Операторы графики
Установка цвета
SetColor(N);
Устанавливает основной цвет, которым осуществляется рисо-
вание, где:
SetColor - оператор, устанавливающий цвет линий
N - номер цвета, которым рисуется
изображение
Штриховка замкнутой области
FloodFill(X, Y, N);
Штрихует замкнутую область, содержащую внутреннюю
точку с координатами X,Y и ограниченную линией основного цвета рисования. Используется текущий образец штриховки
и цвет, где:
FIoodFill - оператор для штриховки замкнутой
поверхности
X,Y - координаты точки внутри замкнутой
поверхности
N - номер цвета линии, которой обрамляется
замкнутая поверхность
Установка толщины и стиля линий
где:
SetLineStyle
(U,N);
SetLineStyle - оператор установки стиля заполнения
U - название узора заполнения
N - цвет узора
Вычерчивание линий
L i n e ( XI, Y1,X 2,Y2 ) ;
105

где:
Line - оператор для вычерчивания отрезка (линии)
XI,Y1 - координаты начальной точки отрезка
X2,Y2 - координаты конечной точки отрезка
Рис.18
Пример.
Начертить линию с координатами точек (50, 100) и (550,
400). Цвет линии красный.
Uses
Graph ;
Var
GrDriver, grMode: integer;
Begin
End.
GrDriver:= Detect;
InitGraph (GrDriver, grMode, ' ');
SetColor (4) ;
Line (50,100,550,400) ;
Readln;
CloseGraph
Вычерчивание окружности
Cir c l
где:
106
(X, Y,R);

Circle -оператор для вычерчивания окружности X,Y -
Х,У
координаты центра окружности
R - радиус окружности
Рис. 19
Пример:
Начертить окружность радиусом 50 и с центром в точке
координат (300,240). Цвет линии белый, внутренняя закраска
- желтая.
Uses
Var
Graph,
Crt;
GrDriver, grMode: inte-
ger; Begin
GrDriver:= Detect;
InitGraph (GrDriver, grMode, ' ' ) ;
SetColor (4) ;
Circle (300,240,50);
SetFillStyle ( 1, 1 4 );
FloodFill (300,240,4);
Readln;
CloseGraph
End.
Вычерчивание прямоугольника
107

R e c t a ng le ( XI , Y l , X 2 , Y 2 ) ;
где:
Rectangle - оператор для вычерчивания прямоугольника
XI,Yl - координаты начальной точки диагонали
прямоугольника
X2,Y2 - координаты конечной точки диагонали
Рис. 20
Пример
Начертить прямоугольник с координатами точек диагонали
(50,70) и (200,250). Внутри прямоугольника сделать узор косой
редкой клеткой синего цвета.
Uses
Graph;
Var
GrDriver, grMode: integer;
Begin
Gr D r iver : - De t ect ;
InitGraph (GrDriver, grMode, ' ' ) ;
SetColor (2);
Rectangle (50,70,200,250) ;
SetFillStyle ( 8 , 2 ) ;
FloodFill (55, 200,2);
Readln;
CloseGraph
End.
108

Вычерчивание эллипса и дуги эллипса
El l i pse (X, Y,L1, L2, XR,XY );
где:
Ellipse – оператор для вычерчивания эллипса
X, Y – координаты центра эллипса
L1 – начальное значение угла для вычерчивания дуги эллипса
L2 – конечное значение угла для вычерчивания дуги эллипса
XR, XY – горизонтальный и вертикальный радиусы эллипса
Х
Y L2
Рис. 21
Пример.
Начертить дугу эллипса с центром координат (200,240).
Начало дуги угол 90°, конец дуги угол 270°, горизонтальный радиус 100, вертикальный радиус 80.
Uses
Graph;
Var
GrDriver, grMode: inte-
ger; Begin
GrDriver:= Detect;
InitGraph (GrDriver, grMode, ' ') ;
SetColor (4);
Ellipse (200,240,90,270,100,80);
Readln;
CloseGraph
End.
109

Вычерчивание заштрихованного эллипса.
FillEllipse
(X,Y,XR,YR);
где:
FillEllipse -вычерчивание заштрихованного эллипса
X, Y - координаты центра эллипса
XR,YR - горизонтальный и вертикальный радиусы
эллипса
X
Y Рис. 22
Пример.
Начертить эллипс с центром, координаты которого
(300,200), горизонтальный радиус 150, вертикальный
радиус 100.
Uses
Graph ;
Var
GrDriver, grMode: integer;
Begin
GrDriver:= Detect;
InitGraph (GrDriver, grMode, ' ' ) ;
SetColor (4);
FillEllipse (300,200,150,100) ;
Readln;
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
