Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНСТРУ_мет.doc
Скачиваний:
0
Добавлен:
17.11.2019
Размер:
2.27 Mб
Скачать

InitGraph (драйвер, режим, путь);

Здесь

«путь» - полный путь к папке, в которой хранится нужный графический драйвер. Если графический драйвер скопирован в текущую рабочую папку, путь представляется как «пустая строка».

Для задания типа драйвера можно использовать режим автоопределения DETECT.

При инициализации графического режима можно написать конкретный путь к файлам драйверов, например:

InitGraph (драйвер, режим, ' С:/BP/BGI ');

В этом случае предварительное копирование файлов Graph.tru и EgaVga. bgi в рабочую папку не требуется.

Можно также соответствующим образом настроить среду программирования BP:

для этого в режиме среды OptionsDirectoriesUnit directories указывается каталог, в котором размещаются требуемые файлы; например:

C:/BP/Units; /BP/BGI.

Создание изображений

Задание цвета

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

Для выбора цвета фона, на котором будет выполняться рисунок, используется процедура SetBkColor:

SetBkColor (номер цвета);

Эта процедура изменяет цвет фона, не изменяя изображений (в отличие от процедуры ClearDevice, которая стирает все изображения).

Для выбора цвета изображения используется процедура SetColor:

SetColor (номер цвета);

П римечание:

  1. При инициализации графического режима экран автоматически очищается (заполняется фоновым цветом).

  2. В программе вначале задается цвет изображения, и лишь затем используются средства для получения этого изображения!

Например процедурой SetColor (4);

Цвета (0 – черный, 1 – синий, 2 – зеленый, 3 – голубой, 4 – красный, 5 – фиолетовый, 6 – коричневый, 7 – светло-серый, 8 – темно-серый, 9 – ярко-синий, 10 – ярко-зеленый, 11 – ярко-голубой, 12 – розовый, 13 – малиновый, 14 – желтый, 15 – белый, 128 – мерцание символа)

Построение графических примитивов

Объект

Изображение

Запись на языке Паскаль

Точка заданного цвета

X

Y

PutPixel (X,Y, Цвет);

Отрезок прямой с заданными координатами его начала и конца

Line (X1, Y1, X2, Y2);

или

Line (X2, Y2, X1, Y1);

Прямоугольник с заданными координатами его диагональных точек

Rectangle (X1, Y1, X2, Y2);

Закрашенный прямоугольник с заданными координатами его диагональных точек

Bar (X1, Y1, X2, Y2);

Окружность заданного радиуса с заданными координатами центра

Circle (X, Y, R);

При построении линейных изображений, состоящих из последовательно соединенных отрезков, удобно использовать процедуры:

MoveTo (X,Y);

Перемещение текущего указателя в точку с координатами (X,Y)

MoveRel (dX, dY);

Перемещение указателя от точки (X,Y) до точки (X+dX, Y+dY)

LineTo (X,Y);

Построение отрезка от текущей точки в точку (X,Y)

LineRel (dX, dY);

Построение отрезка от текущей точки (X,Y) до Точки (X+dX, Y+dY)

Положение текущей точки зависит от графического оператора, который был выполнен последним. Например, после оператора Line (0, 0, 70, 50); текущей становится точка (70, 50); после оператора PutPixel (30, 90); - точка (30, 90).

Язык Паскаль позволяет изображать линии разнообразных стилей (по ширине и начертанию – внешнему виду). Установка стиля производится с помощью процедуры

SetLineStyle (вид линии, шаблон, толщина линии);

Будем считать шаблон равным нулю.

Остальные значения могут быть такими:

Вид линии:

сплошная линия (0),

точечная (1),

штрихпунктирная (2),

пунктирная (3);

Толщина линии:

нормальной толщины (1),

тройной толщины (3).

Например:

SetLineStyle (0, 0, 3); { Задание линии большой толщины}

SetLineStyle (3, 0, 1); {Задание пунктирной линии нормальной толщины}.

Возможно совместно подключение модулей Crt и Graph и использование в одной программе подпрограмм обеих модулей. Например, для замедления процесса рисования можно использовать процедуру Delay:

Program CRT_GRAPH;

Uses Crt, Graph;

Var a,b:Integer;

Begin …

LineTo (240, 200); Delay (200);

LineTo (450, 200); Delay (300);

Readln; CloseGraph;

End.

Построение сложных графических объектов

Объект

Изображение

Запись на языке Паскаль

Дуга окружности текущего цвета

Arc (X, Y, ά1, ά2 , R);

(X,Y) – координаты центра дуги,

R – радиус дуги окружности

Дуга эллипса текущего цвета

Ellipse (X, Y, ά1, ά2 , RX, RY); (X,Y) – координаты центра эллипса,

RX, RY – длины горизонтальной и вертикальной полуосей (большого и малого радиусов)

Здесь ά1, ά2 – начальный и конечный углы, которые образуют концы дуги с горизонтальной осью (отсчитываются против хода часовой стрелки).

Заполнения областей изображения

Будем понимать под заливкой заполнение некоторым узором (цветом или штриховкой различного вида) области изображения, ограниченной контуром (непрерывной замкнутой линией).

Пусть на экране монитора получено изображение некоторого замкнутого контура с использованием цвета С (С – цвет контура области) и задана некоторая точка экрана (X, Y). Если данная точка принадлежит области, ограниченной контуром, то эта область может быть заполнена текущем цветом с помощью процедуры

FloodFill (X,Y,C);

Если точка находится вне области, происходит заполнение внешней к контуру области.

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