Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Построение фигур

ClearViewPort

Она работает следующим образом:

1. устанавливает цвет заполнения равный текущему цвету фона;

2. вызывает процедуру Ваг с теми же значениями координат; что и у процедуры SetViewPort, вызванной перед этим;

3. перемещает текущий указатель в точку (0,0).

Установка указателя вывода

Процедура MoveTo (x, y: integer) перемещает указатель в точку с координатами x, y.

Процедура MoveRel (dx, dy: integer) перемещает указатель на dx, dy пикселей относительно последнего положения.

 

 

Отображение точки

Процедура PutPixel (X,Y:integer; Color:word); отображает точку на экране, где X и Y — экранные координаты точки. Color - её цвет.

Функция Get Pixel. Возвращает значение типа Word, содержащее цвет пикселя с указанными координатами. Заголовок:

Function GetPixel (X,Y: Integer): Word;

Отображение отрезков, прямых линий, ломаных линий

Процедура DrawPoly (NumPoints: Word; VAR PolyPoints); позволяет рисовать на экране дисплея любую ломаную, заданную набором координат некоторого множества точек. Это может быть как сложная геометрическая фигура, так и табличная математическая функция. Параметр NumPoints - это количество точек ломаной (если необходимо нарисовать замкнутый многоугольник с N вершинами, то значение NumPoints должно быть на единицу больше числа N, а координата (N+1) –й точки должна быть такой же, как координата первой). Под бестиповым параметром PolyPoints понимается какая-либо переменная, состоящая из наборов двухкомпонентных записей. Поля каждой записи должны содержать координаты X-и Y очередной точки. В модуле Graph введен такой тип:

TYPE

PointType=RECORD

X, Y: Integer; {координаты точки}

END;

Обычно набор точек организуется как массив из записей типа PointType (к такой структуре приводится значений параметра PolyPoint при работе процедуры DrawPoly).

Процедура Line (Xl,Yl,X2,Y2: integer); выводит на экран отрезок прямой линии. Здесь (X1,Y1)—координаты начальной точки, a (X2,Y2) — координаты конечной точки отрезка.

Для построения отрезков можно применять также следующие процедуры:

LineTo (X,Y); — проводит отрезок из текущей точки до точки с координатами (X,Y);

LineRel (dX,dY); — проводит отрезок из текущей точки до точки, удаленной от нее на расстояние (dX,dY). Линии можно вычерчивать самых различных стилей: тонкие, широкие, штриховые, пунктирные и т. д.

Процедура SetLineStyle (<тип линии>:word;<yзop(шaблон)>: word;(толщина линии):word); производит установку стиля. Константы типа линий и их толщины приведены в таблице.

 

Константа   Характеристики линий
SolidLn   Сплошная линия
DottedLn   Точечная линия
CenterLn   Штрихпунктирная линии
DashedLn   Пунктирная линия
UserBitLn   Тип линии, определяемый пользователем
NormWidth   Нормальна толщина линии
ThickWidth   Жирная линия

 

Если тип линии не равен UserBitLn, то параметр "узор(шаблон)" не используется и обычно задается равным нулю, например SetLineStyle(0,0,3) — стиль линии — сплошная, жирная.

 

Построение прямоугольников

Процедура Rectangle (Xl,Yl,X2,Y2: integer); строит изображение прямоугольника на плоскости. Здесь XI,Y1— координаты левого верхнего угла, X2,Y2 — координаты правого нижнего угла прямоугольника. При этом используется текущий цвет (SetColOf) и стиль линии (SetLineStyle). Область внутри прямоугольника не закрашена и совпадает по цвету с фоном.

 

Процедура Bar (Xl,Yl,X2,Y2:integer); позволяет строить более эффектные прямоугольники. Она рисует прямоугольник, внутренняя область которого залита по текущему шаблону. Обычно используется в деловой графике для построения столбиковых диаграмм, а также для "закраски" графического окна, чтобы фон графического окна не сливался с общим фоном экрана.

Рассмотрим, как производить «заливку» замкнутых областей экрана с помощью различных узоров.

 

Процедура SetFillStyle (<шаблон>:word;<цвет>:word); устанавливает шаблон и цвет заполнения замкнутой фигуры.

Константы шаблонов закраски приведены в таблице.

 

Константа Значение Описание узора
EmptyFill   Закраска области фоновым цветом
SolidFill   Сплошная закраска области текущим цветом
LineFill   Закраска линиями —
LtSlashFill   Закраска линиями ///
SlashFill   Закраска жирными линиями///
BkSlashFill   Закраска жирными линиями\
LtBkSlashFill   Закраска линиями\
HatchFill   Закраска редкой штриховкой
XhalchFill   Закраска частой штриховкой (в обоих направлениях)
InterleaveFill   Закраска прерывистой линией
WideDotFill   Закраска линией из редких точек
CloseDotFill   Закраска линией из частых точек
UserFill   Закраска, определяемая программистом

 

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

SetFillPattern (PattMatrix: FillPatternType; Color: Word);

Процедура FloodFill (X,Y:integer; Border: word); заполняет ограниченную область текущим цветом и стилем заполнения (SetFillStyle). Граница закрашиваемой области высвечивается цветом, заданным в Border.

Если точка (X,Y) находится внутри области, то эта область закрашивается, если же она расположена вне области, то заполняется внешняя часть области.

 

Построение дуг, эллипсов и окружностей

Процедура Arc (X,Y:integer; al, a2,R: word); строит дугу. Здесь (X,Y)—центр окружности дуги, al, a2 — начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, R—радиус. Если al=0°, а а2=360°, то вычерчивается полная окружность.

 

Процедура Ellipse (X,Y: integer; al,a2,Rx,Ry: word); предназначена для построения эллиптических дуг. Здесь (X,Y)—центр эллипса, al,a2 — начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, Rx и Ry — горизонтальная и вертикальная полуоси. Если al=0°, а а2 = 360°, то вычерчивается ПОЛНЫЙ ЭЛЛИПС.

 

Процедура FillEllipse (X,Y: integer; Rx,Ry: word); строит полный закрашенный эллипс.

 

Процедура Circle (X,Y: integer; R: word); выводит на экран изображение окружности с центром (X,Y) и радиусом R. Окружность рисуется цветом, заданным SetColor.

 

Процедура PieSlice (X,Y: integer; al, n2,R: word); выводит на экран изображение закрашенного сектора круга, используя и качестве центра круга точку (X,Y), начальный угол al, конечный угол a2 и радиус R. Контур сектора высвечивается текущим цветом. При заполнении сектора используются шаблон и цвет, установленные процедурой SetFillStyle. Если al =0°, а а2=360°, то на экран выводится закрашенная окружность.

Процедура Sector (X,Y: integer; al,a2,Rx;Ry: word); строит закрашенный сектор эллипса.

 

<== предыдущая лекция | следующая лекция ==>
Координаты, окна и страницы | Установка цвета
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.