русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Линии и их стили


Дата добавления: 2015-06-12; просмотров: 586; Нарушение авторских прав


Процедура вывода линии (отрезка) на экран (в текущем цвете и стиле) определена в следующем виде:

Line( Х1, Y1, Х2, Y2 : Integer )

Здесь задаются координаты начала (X1,Y1) и конца (X2,Y2) отрезка. Возможны еще два метода рисования отрезков:

1. Из текущей точки в точку с заданными координатами (X,Y) процедурой

LineTo( х, у : Integer );

2. Относительно текущей позиции. Положение текущего указателя принимается за начало «временных» координат (0,0) и указывается местоположение конца отрезка в них. Такое построение делает процедура

LineRel( dx, dy : Integer )

Координаты концов могут превышать границы графического окна. При этом часть отрезка может быть обрезана (но текущий указатель переместится в координаты конца отрезка).

В Турбо Паскале можно управлять стилем линий: задавать толщину, тип (сплошные линии, пунктирные и т.п.). Для этого определены следующие типы и константы стилей изображаемых линий:

TYPE

LineSettingsType = RECORD

LineStyle : Word; { стиль (тип) }

Pattern : Word; { шаблон типа }

Thickness : Word; { толщина }

END;

CONST

{ Для значений поля LineStyle: }

SolidLn = 0 { сплошная линия }

DottedLn = 1 { точечная линия }

CenterLn = 2 { штрихпунктирная линия }

DashedLn = 3 { пунктирная линия }

UserBitLn = 4 { тип линии задан явно шаблоном }

{ Для значений поля Thickness: }

NormWidth = 1 { толщина линии в один пиксел }

ThickWidth = 3 { толщина линии в три пиксела } {424}

Чтобы получить информацию о текущем стиле линий, можно воспользоваться процедурой

GetlineSettings( VAR LineType : LineSettingsType )

а чтобы установить новый стиль линий, необходимо использовать процедуру

SetLineStyle( LineStyle, Pattern, Thickness : Word ),

подставив в нее соответствующие значения. Если параметр LineStyle не равен UserBitLn, то значение параметра Pattern не играет роли и обычно задается нулем.



Рассмотрим подробно вариант, когда LineStyle равно UserBitLn. В этом случае при определении типа линии руководствуются следующими соображениями:

1. Линия представляет собой совокупность отрезков, каждый из которых имеет длину 16 пикселов. Если длина линии не делится на 16 нацело, то последний отрезок обрезается.

2. Можно задать шаблон-комбинацию шестнадцати светящихся или погашенных пикселов. Его представляют как множество единиц и нулей: 1 — светится, 0 — нет. Например, мелкий равномерный пунктир задается как

1100110011001100 — всего 16 разрядов.

Поскольку Турбо Паскаль не позволяет работать с числами, представленными в двоичной системе счисления, необходимо перевести полученное число в десятичную (52428) или в шестнадцатеричную ($СССС) систему счисления и подставить его фактическим параметром на место Pattern при вызове SetLineStyle (рис. 19.11).

USES Graph; { подключен модуль Graph } {$I initgraf.pas} { процедура инициализации } VAR х : Integer; BEGIN GrInit; { инициализация графики } х := GetMaxX; { разрешение экрана по X } SetLineStyle( DottedLn, 0, NormWidth ); Line( 0, 10, х, 10 ); { тонкая сплошная линия } SetLineStyle( CenterLn, 0, NormWidth ); Line( 0, 20, х, 20 ); { штрихпунктирная линия }

Рис. 19.11 {425}

SetLineStyle( UserBitLn, $CCCC, NormWidth ); Line( 0, 30, x, 30 ); { линия 1100110011001100 } SetLineStyle( UserBitLn, $B38F, NormWidth ); Line( 0, 40, x, 40 ); { линия 1011001110001111 } SetLineStyle( UserBitLn, $4C70, NormWidth ); Line( 0, 50, x, 50 ); { линия 0100110001110000 } ReadLn; { пауза до нажатия ввода } SetLineStyle( DottedLn, 0, ThickWidth ); Line( 0, 10, x, 10 ); { толстая сплошная линия } SetLineStyle( CenterLn, 0, ThickWidth ); Line( 0, 20, x, 20 ); { штрих-пунктирная линия } SetLineStyle( UserBitLn, $CCCC, ThickWidth ); Line( 0, 30, x, 30 ); { линия 1100110011001100 } SetLineStyle( UserBitLn, $B38F, ThickWidth ); Line( 0, 40, x, 40 ); { линия 1011001110001111 } SetLineStyle( UserBitLn, $4C70, ThickWidth ); Line( 0, 50, x, 50 ); { линия 0100110001110000 } ReadLn; { пауза до нажатия ввода } CloseGraph { закрытие графики } END.

Рис. 19.11 (окончание)

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

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



<== предыдущая лекция | следующая лекция ==>
Управление «текущим указателем» | Коэффициент сжатия изображения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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