Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции ИВАНОВ Книга Паскаль.doc
Скачиваний:
5
Добавлен:
18.11.2019
Размер:
1.93 Mб
Скачать

Цветовая шкала

Таблица 6.2

Цвет

Код

Цвет

Код

Black - черный

Blue - синий

Green - зеленый

Cyan - бирюзовый

Red - красный

Magenta - малиновый

Brown - коричневый

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

0

1

2

3

4

5

6

7

DarcGray - темно-серый

LightBlue - ярко-голубой

LightGreen - ярко-зеленый

LightCyan - ярко-бирюзовый

LightRed - ярко-красный

LightMagenta - ярко-малиновый

Yellow - желтый

White – белый

8

9

10

11

12

13

14

15

Процедура SetBkColor(Color:Word) устанавливает новый цвет фона, который определяется значением Color.

Необходимо помнить, что в отличие от текстовых окон графические окна после команды установки фона SetBkColor и очистки меняют фон вместе с общим фоном экрана. Поэтому фон (точнее «закраску») графического окна следует устанавливать с помощью процедуры SetFillStyle.

SetFillStyle(FileStyle :word; Color: word);

где FileStyle – задает способ заполнения замкнутой области в зависимости от значения параметра заполнения (см. таблицу 6.3).

Например, SetFillStyle(1,3).

Стандартные стили заполнения

Таблица 6.3

Значение

Маска заполнения

0

1

2

3

4

5

6

7

8

9

10

11

12

Цвет фона

Текущий цвет

Толстые горизонтальные линии --

Наклонные линии нормальной толщины //

Наклонные линии удвоенной толщины //

Наклонные линии удвоенной толщины \\

Наклонные линии нормальной толщины \\

Вертикально-горизонтальные штриховки тонкими линиями ++

Штриховка крест-накрест по диагонали “редкими” тонкими линиями 

Штриховка крест-накрест по диагонали “частыми” тонкими линиями 

“Редкие” точки

“Частые” точки

Задается пользователем

Для заполнения внутренней или внешней области фигуры используется процедура

FloodFill(X, Y : integer; Border : word);

где X, Y – координаты точки внутри или вне фигуры,

Border – цвет.

Второй параметр применяют для заполнения области, ограниченной цветом Border, текущим образцом закраски. Если точка (X,Y) находится внутри замкнутой области, то заполняется внутренняя область. Если эта точка находится вне замкнутой области, то заполняется ее внешняя область (поле экрана не входящее в область).

6.2.2 Вывод точки

Какие бы изображения не выводились на экран, все они построены из точек. В библиотеке Graph вывод точки осуществляется процедурой

PutPixel (X, Y: integer; Color :word),

где X, Y – экранные координаты расположения точки.

Например, оператор

for i:=1 to 60 do PutPixel(i, 1, Red);

выведет в первую строку экрана 60 точек красного цвета.

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

Xcenter := GetMaxX DIV 2;

Ycenter := GetMaxY DIV 2;

PutPixel (Xcenter, Ycenter, LightGreen); {Точка в центре экрана}

где GetMaxX, GetMaxY – целочисленные функции, которые возвращают соответственно максимально возможные для установленного режима значения X- и Y-координат.

Такой способ избавляет от настройки на конкретный тип монитора и расширяет область применения программы.

6.2.3 Вывод линии

Из точек строится линия (отрезки прямых). Это делает процедура Line (X1, Y1, X2, Y2 : integer);

где X1, Y1 – координаты начала линии,

X2, Y2 – координаты конца линии.

Например, Line (1, 1, 600, 1);

В процедуре Line нет параметра для установки цвета. В этом и других аналогичных случаях цвет задается процедура SetColor.

Например, с помощью операторов

SetColor(3);

Line(1, 1, 600, 1);

будет построена линия бирюзового цвета.

Для черчения линий применяются еще две процедуры: LineTo и LineRel.

LineTo(X, Y : integer); - строит линию от точки текущего положения указателя в точку с координатами Х, Y.

LineRel(dX, dY : integer); - проводит линию от точки текущего расположения указателя в точку CPx + dX, CPy + dY, где CPx и CPy – текущие координаты.

Паскаль позволяет вычерчивать линии самого различного стиля: тонкие, широкие, штриховые, пунктирные и т.д. Установка стиля производится процедурой

SetLineStyle(LineStyle :word; Pattern :word; Thickness : word);

где LineStyle - параметр для установки типа строки (см. таблицу 6.4),

Pattern – образец,

Thickness – толщина линии, определяемая константами, указанными в таблице 6.5.

Если применяется один из стандартных стилей, значение Pattern равно 0. Если пользователь хочет активизировать свой собственный стиль, то значение Pattern равно 4.

Например, SetLineStyle(DottedLn, 0, NormWidth);