![]() Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Управление «текущим указателем»
«Текущий указатель» или графический курсор выполняет те же функции, что и курсор в текстовом режиме, однако является невидимым. Положение курсора указывает на начальные координаты изображения графического примитива, выводимого «от текущей позиции». Для перемещения курсора используются процедуры: MoveTo (x, y : Integer) – перемещает курсор в точку экрана с координатами (x,y); MoveRel (dx, dy : Integer) – перемещает курсор на dx пикселов по горизонтали и соответственно на dy по вертикали относительно последнего положения курсора. Положительные dx, dy увеличивают координаты курсора, отрицательные – уменьшают. Для определения текущего положения графического курсора используются функции GetX : Integer; GetY : Integer; - возвращают положение указателя соответственно по оси Х и по оси Y. Рисование графических примитивов и фигур Линии и их стили Процедура вывода линии на экран (в текущем цвете и стиле): Line (x1, y1, x2, y2 : Integer). Задаются координаты начала (x1, y1) и конца (x2, y2) линии. LineTo (x, y : Integer) – рисование отрезка из текущей точки в точку с заданными координатами (x, y). LineRel (dx, dy : Integer) – рисование отрезка относительно текущей точки. Положение текущего указателя принимается за начало «временных» координат (0, 0) и указывается местоположение конца отрезка в них. В Паскале можно управлять стилем линий: задавать толщину, тип. Для этого определены следующие типы и константы стилей изображения линий: Type LineSettingType = record LineStyle : Word; {стиль линии} Pattern : Word; {шаблон стиля} Thickness : Word; {толщина} End; Const {для значений стиля линии} SolidLn = 0; {сплошная} DottedLn = 1; {точечная} CenterLn = 2; {штрихпунктирная} DashedLn = 3; {пунктирная} UserBitLn = 4; {тип линии задан явно шаблоном} {для значений толщины линии} NormWidth = 1; {толщина в один пиксел} ThickWidth = 3; {толщина в 3 пиксела} Для установки параметров линии используется процедура SetLineStyle (LineStyle, Pattern, Thickness : Word). Окружности, эллипсы и дуги Для изображения окружности используется процедура Circle (x, y : Integer; Radius : Word), где (x,y) – координаты центра окружности, Radius – ее радиус.
В модуле Graph представлены процедуры рисования эллипсов, дуг и секторов, и процедура, позволяющая рисовать сектор, залитый по заданному шаблону. Все они запрашивают параметры StartAngle и EndAngle, которые обозначают начальный и конечный угол дуги. Положительное направление оси Х принято за 00, отрицательное направление оси Y – за 900, т.е. углы отмеряются от положительного направления оси Х против часовой стрелки. Все значения этих параметров даются в градусах. Arc( x, y : Integer; StartAngle, EndAngle, Radius : Word) – рисование дуги радиуса Radius из центра с координатами (x, y) от угла StartAngle до EndAngle. Ellipse (x, y : Integer; StartAngle, EndAngle, RadiusX, RadiusY : Word) – рисование эллиптической дуги с аналогичными параметрами, где RadiusX, RadiusY – размеры горизонтальной и вертикальной полуосей соответственно. Построение прямоугольников и ломаных Для построения прямоугольника достаточно вызвать процедуру Rectangle (x1, y1, x2, y2 : Integer), которая изобразит на экране прямоугольник с диагональю (x1, y1) – (x2, y2). Чтобы построить фигуры с большим количеством вершин (в том числе незамкнутые) используется процедура DrawPoly (NumPoints : Word; var PolyPoints). Она позволяет рисовать любую ломаную, заданную набором координат некоторого множества точек. Параметр NumPoints – это количество точек ломаной (если необходимо нарисовать замкнутый многоугольник с N вершинами, то значение NumPoints должно равняться N+1, а точка N+1 совпадать с 1). Под бестиповым параметром PolyPoints понимается какая-либо переменная, состоящая из наборов двухкомпонентных записей. Поля каждой записи должны содержать координаты X и Y очередной точки. Заливка областей изображения Bar (x1, y1, x2, y2 : Integer) – рисует прямоугольник, внутренняя область которого залита по текущему шаблону. Параметры (x1, y1) и (x2, y2) – координаты верхнего левого и правого нижнего углов прямоугольника. Bar3D (x1, y1, x2, y2 : Integer; D3 : Word; Top : Boolean) – рисует параллелепипед, лицевая сторона заливается по текущему шаблону, а глубина задается в пикселах параметром D3. Параметр Top задает режим отображения верхней плоскости: True – отображать, False – не отображать. Следующие процедуры работают с секторами окружностей и эллипсов. Рисование эллипса, который будет залит цветом по текущему шаблону, осуществляется процедурой: Sector (x, y : Integer; StartAngle, EndAngle, XRadius, YRadius : Word). Параметры имеют тот же смысл, что и в процедурах Arc, Ellipse. FillEllipse (x, y : Integer; XRadius, YRadius : Word) – рисует эллипс текущим цветом и заполняет его по установленному шаблону. Параметры такие, как и в процедуре Ellipse. FillPoly (NumPoints : Word; var PolyPoints) – заполнение сложных фигур, параметры такие же как и процедуре DrawPoly. Единственное отличие в том, что координаты первой и последней вершины многоугольника могут не совпадать. Однако все равно они будут соединены линией, и внутренность фигуры будет залита. FloodFill (x, y : Integer; Border : Word) – заливает всю область вокруг точки (x, y), ограниченную линиями цвета Border. Например, если точка (x, y) находится внутри области, ограниченной окружностью, то вся область будет залита по шаблону и цветом, установленными процедурами SetFillPattern или SetFillStyle. Если точка находится за пределами окружности, то залитым будет весь экран за исключением этой области. Опрос и установка цветов пера и фона Различные адаптеры поддерживают разное количество цветов, выводимых одновременно на экран в графическом режиме. Но для всех BGI-драйверов оно ограничено в диапазоне 0..15. На экране всегда различаются цвет фона и цвет пера. Все процедуры изображения фигур, если не содержат в себе явной установки цвета, рисуют эти фигуры цветом пера (как символы в текстовом режиме). Этот цвет устанавливается процедурой SetColor (Color : Word). Цвет фона – всегда един в поле экрана. Он может быть изменен процедурой SetBkColor(Color : Word).После использования этой процедуры цвет экрана сразу же меняется на заданный. Для опроса текущих установок цвета предусмотрены функции GetColor : Word и GetBkColor : Word. GetPixel (x, y : Integer) : Word – возвращает номер цвета пиксела с координатами (x,y). PutPixel (x, y : Integer; Color : Word) – зажигает на экране в точке с координатами (x, y) пиксел цвета Color. Вывод текста В комплектах поставки среды Паскаль присутствуют файлы с расширением chr. Это набор штриховых шрифтов, которые могут быть использованы для вывода информации. Для обозначения шрифтов введены константы: Const DefaultFont = 0; {матричный шрифт 8х8 (по умолчанию)} TriplexFont = 1; {полужирный шрифт} SmallFont = 2; {светлый шрифт (тонкое начертание)} SansSerifFont = 3; {книжная гарнитура (рубленный шрифт)} GothicFont = 4; {готический шрифт} Активизация любого из шрифтов осуществляется процедурой |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 509. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |