Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Лабораторная работа 8. Как нарисовать забор

Конечно, простейший забор можно нарисовать и с помощью прямоугольников. Но это не так интересно. Давайте попробуем нарисовать забор традиционный, из заостренных планочек. Как это сделать?

Познакомимся еще с несколькими процедурами библиотеки Graph. Для этого сначала поговорим о графическом курсоре.

В алфавитно-цифровом режиме курсор виден в виде мигающей черточки. В графическом же режиме курсор не виден, но, как ни странно, он есть. Но его не видно. Дело в том, что он указывает на конкретную маленькую точку, и если его нарисовать, то самой точки видно не будет.

Процедуры установки графического курсора:

MoveTo(X, Y : integer); - установить графический кур­сор в точку с координатами (x,y);

MoveRel(Dx,Dy:integer); - процедура позволяет смещать текущие координаты графического курсора: x - на величину Dx, y - на величину Dy.

Процедуры рисования линий:

LineTo(X, Y : integer); - процедура позволяет проводить прямую из точки с текущими координатами в точку (x,y) текущим цветом;

LineRel(Dx,Dy:integer); - процедура позволяет проводить прямую из точки с текущими координатами в точку с приращением координат от текущих на величины Dx и Dy текущим цветом;

Line(x1,y1,x2,y2 : integer); - процедура обеспечивает рисование отрезка из точки (x1,y1) в точку (x2,y2) текущим цветом.

Пример:

...

MoveTo(10,10);

LineRel(100,100); { проводит прямую в точку 110,110 }

...

Процедуры задания цвета и стиля линий

SetColor(Color:byte); - процедура позволяет задать цвет вы­во­димых линий;

SetLineStyle ( LineStyle: word; { стиль }

Pattern : word; { образец }

Thickness : word); { толщина } – процедура ус­танавливает тип выво­ди­мых линий.

Стиль линий (LineStyle) определяется константой от 0 до 4 и каждое значение имеет следующий смысл:

SolidLn = 0 - сплошная;

DottedLn = 1 - точечная;

CenterLn = 2 - прерывистая часто;

DashedLn = 3 - прерывистая редко;

UserBitLn = 4 - определяемая пользователем.

Второй параметр пока не будем использовать и будем писать там просто число 0 (этот параметр используется для стиля с номером 4, который определяет пользователь).

Толщина линии может быть одинарная или тройная. За это отвечает третий параметр (Thickness), который может принимать значения 1 или 3:

NormWidth = 1 - нормальная;

ThickWidth = 3 - утолщенная (в 3 раза);

Например: SetLineStyle(1,0,3);

Если после этой команды Вы будете рисовать какие-либо линии (а также и любые фигуры, ограниченные отрезками, например прямоугольная рамка - rectangle), то они будут выглядеть как пунктир из точек, причем точки будут в три раза больше обычных точек.

Пример:

Program StopFill;

uses Graph, Graph0;

begin

Init(‘d:\tp70\bgi’);

SetColor(Yellow); {задаем цвет линий}

Rectangle(0, 0, 180, 20); {рисуем прямоуголь­ник }

FloodFill(1, 1,yellow); Readln; { закрашиваем область внутри прямоугольника}

SetFillStyle(LtSlashFill,red); { устанавливаем стиль и цвет закраски }

FloodFill(210, 110,yellow); {закрашиваем область вне прямоугольника }

Readln;

CloseGraph;

end.

Задача 1

Запустите справочник по графике (каталог SPRAV.PAS) и познакомьтесь с особенностями использования перечисленных выше процедур.

Задача 2

После завершения работы со справочником запустите среду Turbo Pascal.

Задача 3

Теперь давайте рисовать забор. При рисовании забора не забудьте раскрасить каждую доску в свой цвет. Успехов Вам.

Задача 3а

Вы нарисовали некий забор. Модифицируйте программу таким образом, чтобы был нарисован забор длиной:

а) в 500 точек (пиксель) из 10 досок;

б) в 400 пиксель из заданного числа досок (коли­чест­во досок вводится отдельно в алфавитно-цифровом режиме);

в) в N пиксель и из M досок.

Задача 3б

Еще одна модификация: измените программу так, чтобы был нарисован забор длиной в N пиксель, причем длина одной доски равнялась K пиксель.

Задача 4

Нарисуйте следующий орнамент:

а) ;

б) ; в) .

Задача 5*

Составьте программу рисования правильного шестиу­голь­ника; пятиугольной звездочки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]