Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика программирование, учебник.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
22.08 Mб
Скачать

Закрытие графического окна. Процедура ClearDevice

Процедура ClearDevice без параметров восстанавливает размеры окна до размеров экрана, окрашивает экран цветом фона и устанавливает графический курсор в точку с координатами (0, 0).

4.2 Построение графических фигур

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

Построение прямой линии. Процедуры SetColor, SetLineStyle, Line, LineRel, LineTo

Вывод линии на экран обеспечивается в три этапа.

Во-первых, необходимо установить цвет линии с помощью процедуры SetColor (<номер цвета>);

Во-вторых, следует установить стиль линии с помощью процедуры: SetLineStyle (LS: WORD; PT: WORD; TH: WORD);

В этой процедуре переменная LS задает тип линии в соответствии с табл. 3.4; PT - код пользовательского типа линии (0 - 3: стандартные типы линий), если параметр LS = 4; TH - толщина линии в пикселях (например, 1 или 3 пикселя).

Таблица 3.4

LS

Тип линии

Образец линии

0

Сплошная

1

Из точек

2

Точка – тире

3

Штриховая

4

Пользовательская

В табл. 3.4 образец пользовательской линии соответствует коду команды

SetLineStyle(4, $FF88, 1),

где 4 - пользовательский тип линии, 1 - толщина в один пиксель, а шестнадцатеричный код $FF88 определяет заполнение 16 пикселей, последовательно расположенных в линии слева направо, условно разбитых при кодировании на 4 группы по 4 пикселя, как показано на рис. 10.

Рис. 3.8 Кодировка линии пользовательского типа $FF88

Для вывода сплошной линии толщиной в три пикселя оператор установки стиля примет вид SetLineStyle(0, 0, 3).

Третий этап заключается в построении линии с выбранным цветом и стилем. Для этого можно использовать одну из трех процедур;

Line(X1, Y1, X2, Y2: Integer) - процедура построения прямой линии из точки с координатами X1, Y1 в точку с координатами X2, Y2;

LineRel(dX, dY: Integer) - процедура проводит линию из текущей точки пусть это будут координаты X, Y, где находится графический курсор, в точку с координатами X + dX, Y + dY.

LineTo(X2, Y2: Integer) - процедура проводит линию из текущей точки пусть это будут координаты X, Y, где находится графический курсор, в точку с координатами X2, Y2.

Построение прямоугольника. Процедуры Rectangle и Bar

Построить прямоугольник можно с помощью процедур Rectangle и Bar. Процедура Rectangle(X1, Y1, X2, Y2: Integer) осуществляет построение прямоугольного контура, основой которого является линия, цвет этой линии задан ранее оператором SetColor, а толщина и тип определены с помощью оператора SetLineStyle. Величины X1 и Y1 задают положение верхнего левого угла прямоугольника, а X2, Y2 - координаты нижнего правого угла. Цвет пикселей, расположенных внутри прямоугольной области, не изменяется.

Процедура Bar(X1, Y1, X2, Y2: Integer) по аналогии с Rectangle строит прямоугольник, но без граничного контура с координатами верхней левой точки X1, Y1 и нижней правой точки X2, Y2, и заливает его текущим наполнителем, выбранным оператором SetFillStyle(PT, CL). Целочисленная величина PT соответствует номеру стандартного типа наполнителя (см. табл. 3.5), а целочисленная величина CL определяет цвет фоновых линий (0 - 15).

Таблица 3.5

PT

Содержание

Образец наполнителя

0

SetFillStyle(0, CL)

Сплошная заливка цветом фона CF

Цвет фона - SetBkColor(CF)

1

SetFillStyle(1, CL)

Сплошная заливка прямоугольной области цветом CL

2

SetFillStyle(2, CL)

3

SetFillStyle(3, CL)

4

SetFillStyle(4, CL)

5

SetFillStyle(5, CL)

6

SetFillStyle(6, CL)

7

SetFillStyle(7, CL)

8

SetFillStyle(8, CL)

9

SetFillStyle(9, CL)

10

SetFillStyle(10, CL)

11

SetFillStyle(11, CL)

Команду Bar используют для заливки графического окна цветом CL отличным от цвета фона экрана CF. Приведенная ниже последовательность команд создает графическое окно с координатами - x1, y1, x2, y2 и окрашивает его зеленым (код - 2) цветом с помощью процедуры Bar.

SetViewPort(x1, y1, x2, y2, false);

SetFillStyle(1, 2);

x3 := x2 - x1; y3 := y2 - y1;

Bar(0, 0, x3, y3);

Координаты окрашиваемой области уже в новой координатной сетке окна, поэтому точка Up имеет код 0, 0, то есть это верхняя левая точка окна, а координаты x3, y3 точки Low пересчитываются по формулам x3 := x2 - x1; y3 := y2 - y1.