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

Решение задач на ЭВМ. Программирование на языке Pascal. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Типы узоров для закрашивания
Константа
Описание узора
№ узора
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]