Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Установка цвета линии, типа линии и закраски



 

При работе с цветными изображениями большое значение имеет набор цветов, доступных программисту. Количество доступных для воспроизведения цветов определяется возможностями аппаратуры, то есть дисплея и видеоадаптера, а также видеорежимом. В программировании обычно используется схема цветового представления, в которой считается, что каждый цвет является смесью трех основных цветов: красного Red), зеленого (Green) и синего (Blue), а оттенок определяется интенсивностью компонентов. Эта схема называется RGB-представлением. Использование RGB-представления связано с конструктивными особенностями электронно-лучевой трубки, в которой каждая графическая точка состоит из трех компонентов: красного, зеленого, синего. При инициализации видеорежима компьютер создает цветовую палитру, которую можно считать таблицей, где каждому цвету сопоставлен свой номер.

При работе с цветом в режиме VGA интенсивность основного цвета задается значением типа Word. Шестнадцатицветная палитра VGA приведена в таблице (в процедурах можно использовать как константы цветов, так и их коды):

Таблица 3 – Коды цветов

Цвет Константа Код
Черный Синий Зеленый Бирюзовый Красный Малиновый Коричневый Светло-серый Темно-серый Светло-синий Светло-зеленый Светло-бирюзовый Светло-красный Светло-малиновый Желтый Белый Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

 

Процедура SetColor.

  Используя палитру устанавливает текущий цвет линий.

Описание: SetColor (цвет: Word)

  Цвета линий могут принимать значения в диапазоне от 0 до 15 в зависимости от используемого графического драйвера и графического режима.

Процедура SetBkColor.

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

Описание: SetBkColor (цвет: Word )

  Цвет фона может принимать значение в диапазоне от 0 до 15 (смотрите таблицу цветов).

 

Процедура SetFillStyle.

  Данная процедура устанавливает тип (стиль) закраски и ее цвет.

Описание: SetFillStyle (стиль: Word; цвет: Word; )

В Турбо Паскале имеется 12 стилей заполнения:

- EmptyFill (0) – сплошное заполнение цветом фона;

- SolidFill (1) – сплошное заполнение заданным цветом;

 - LineFill (2) – заполнение горизонтальными линиями;

- LtSlashFill (3) – диагональное заполнение;

- SlashFill (4) – диагональное заполнение толстыми линиями;

- BkSlashFill (5) – обратное диагональное заполнение толстыми линиями;

- LtBkSlashFill (6) – обратное диагональное заполнение;

- HatchFill (7) – клетчатое заполнение;

- XHatchFill (8) – косое клетчатое заполнение;

- InterLeaveFill (9) – чередующееся линейное заполнение;

- WideDotFill (10) – редко расположенные точки;

- CloseDotFill (11) – часто расположенные точки;

- UserFill (12) – стиль определен пользователем.

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

 

Процедура SetLineStyle.

Функция: Устанавливает текущую толщину и тип линии.

Описание: SetLineStyle (тип_строки, образец, толщина).

Примечания: Данная процедура влияет на все типы линий, вычерчиваемых процедурами Line, LineTo, Rectangle, DrawPoly, Arc, Circle и др.

Могут вычерчиваться непрерывные, пунктирные линии, линии, состоящие из точек или точек и тире.

Описаны следующие константы типа линии:

SolidLn=0 – непрерывная линия;

DottedLn=1 – линия из точек;

CenterLn=2 – линия из точек и тире;

DashedLn=3 – пунктирная линия;

UserDilLn=4 – тип, определяемый пользователем.

Описаны следующие константы для толщины линий:

NormWidth=1 – нормальная толщина;

ThickWidth=3 – жирная линия.

 

 

Процедура FloodFill

Функция: Заполняет ограниченную область, используя текущий заполнитель.

Описание: FloodFill ( x, y, граница).

Примечания: Эта процедура используется для заполнения замкнутой области (для растровых устройств). Точка ( x, y ) является внутренней точкой заполняемой области. Для заполнения области, ограниченной цветом, который определяет параметр " граница", используется текущий образец закраски. Если точка ( x, y ) находится внутри замкнутой области, то заполняется внутренняя область. Если эта точка находится вне замкнутой области, то заполняется ее внешняя часть (поле экрана, не входящее в область).

Точки на экране

 

Процедура PutPixel

Рисует точку на экране в заданном месте заданным цветом.

Описание: PutPixel ( x, y, цвет).

Примечания: Выводит точку на экране с координатами ( x, y ) заданным цветом (параметр " цвет" ).

 

Линии и прямоугольники

 

Для вывода линий и прямоугольников в модуле Graph имеются несколько процедур.

Процедура Line

Функция: рисует прямую линию из точки ( x 1, y 1) в точку ( x 2, y 2).

Описание: Line ( x 1, y 1, x 2, y 2).

Примечания: Толщина и тип линии задаются процедурой SetLineStyle, а цвет линии устанавливается процедурой SetColor.

 

Процедура Rectangle

Функция: рисует прямоугольник, используя текущий цвет и тип строки.

Описание: Rectangle (x1, y1, x2, y2).

Примечания: Точка с координатами ( x 1, y 1) определяет верхний левый угол прямоугольника, а точка с координатами ( x 2, y 2) определяет нижний правый угол. При вычерчивании прямоугольника используются текущий тип строки и цвет, которые устанавливаются процедурой SetLineStyle.

 

Процедура Bar

Функция: рисует закрашенный прямоугольник.

Описание: Bar ( x 1, y 1, x 2, y 2).

Описание: Рисуется закрашенный столбец, что можно использовать, например, в гистограммах. При этом используется образец и цвет закраски с помощью процедур SetFilllStyle и SetFillPattern.

 

Процедура Bar 3 D

Описание: Bar 3 D ( x 1, y 1, x 2, y 2: Integer, глубина: Word;, вершина: Boolean ).

Примечания: Рисуется заполненный трехмерный параллелепипед. При этом используется тип и цвет закраски, заданные с помощью процедур SetFillStyle и SetFillPattern. Трехмерный контур параллелепипеда вычерчивается тем цветом и типом линии, которые установлены процедурами SetLineStyle и SetColor, Параметр " глубина" представляет собой число элементов изображения, задающих глубину трехмерного контура. Если переменная, указанная в качестве параметра " вершина" принимает истинное значение (True), то для параллелепипеда рисуется трехмерная вершина, в противном случае вершина не рисуется (что позволяет рисовать несколько параллелепипедов, расположенных один на другом). Типичный параметр глубины можно вычислить, взяв за основу 25% ширины параллелепипеда:

Bar3D (x1, y1, x2, y2, (x2-x1) div 4, TopOn).

 

Окружности, эллипсы, дуги.

 

Процедура Circle

Функция: выводит окружность с центром в точке ( x, y ) и радиусом r.

Описание: Circle ( x, y, r ).

 

Процедура Arc

Функция: Рисует дугу окружности от начального угла до конечного угла.

Описание: Arc ( x, y, нач_угол, кон_угол, радиус).

Примечания: Рисует дугу окружности с центром ( x, y ) и радиусом " радиус". Дуга рисуется от начального угла (" нач_угол" ) до конечного угла (" кон_угол" ). При этом используется текущий цвет. Начальный угол, равный 00 и конечный угол, равный 3600, задают вычерчивание полной окружности.

 

Процудура Ellipse

Рисует эллиптическую дугу от начального угла до конечного угла, используя ( x, y ) в качестве точки центра.

Описание:  Ellipse ( x, y, нач_угол, кон_угол, радХ, рад Y ).

Примечания: Процедура рисует эллиптическую дугу, используя ( x, y ), как точку центра, а " радХ", " рад Y" – как горизоньальную и вертикальную оси. Дуга эллипса вычерчивается от начального угла (параметр " нач_угол" ) до конечного угла (параметр " кон_угол" ) текущим цветом. Углы для процедур Arc, Ellipse и PieSlice задаются по направлению против часовой стрелки. При этом значение (в градусах) 0 соответствует 3 часам, 90 градусов – 12 часам и т.д.

 

Процедура FillEllipse

Функция: рисует закрашенный эллипс.

Описание: FillEllipse ( x, y, X радиус, Y радиус).

Примечания: Используя точку с координатами ( x, y ) в качестве центра, а Храдиус и Y радиус – в качестве горизонтальной и вертикальной осей, рисует закрашенный эллипс.

 

Сектор

Процедура PieSlice

Функция: рисует и заполняет цветом сектор круга.

Описание: PieSlice ( x, y, нач_угол, кон_угол, радиус).

Примечания: ( x, y ) используются в качестве центра окружности, а сектор рисуется от начального угла (параметр " нач_угол" ) до конечного угла (" параметр " кон_угол" ). Контур сектора вычерчивается текущим цветом, а при закрашивании используются тип и цвет закраски, заданные процедурами SetFillStyle и SetFillPattern. Начальный угол, равный 0 градусов и конечный угол, равный 360 градусов, задают вычерчивание полной окружности.

 

Процедура Sector

Функция: вычерчивает и заполняет эллиптический сектор.

Описание: Sector ( x, y, нач_угол, кон_угол, Храдиус, Y радиус).

Примечания: Процедура использует ( x, y ) как точку центра, параметры " X радиус" и Y радиус" определяют горизонтальный и вертикальный радиусы. Сектор вычерчивается от начального угла (параметр " нач_угол" ) до конечного угла (" параметр " кон_угол" ). Сектор рисуется текущим цветом и закрашивается с использованием образца закраски и цвета, заданных с помощью процедур SetFillStyle и SetFillPattern. Если задан начальный угол 00 и конечный угол 3600, то будет нарисован и закрашен полный эллипс.

 

Многоугольники

 

Процедура DrawPoly

Функция: Используя текущий тип прямой и текущий цвет рисует контур многоугольника.

Описание: DrawPoly (числ_коозд, коорд_верш).

Примечания: Параметр " коорд_верш" является нетипизированным параметром, который содержит координаты каждого пересечения в многоугольнике. Параметр " числ_коорд" задает число координат в " коорд_верш". Координата состоит из двух слов: значения х и значения y.

Данная процедура использует текущий тип линии и текущий цвет. Заметим, что для вычерчивания замкнутой фигуры с n вершинами вы должны передать при обращении к процедуре DrawPoly n +1 координату, где координата вершины с номером n будет равна координате вершины с номером 1.

 

Процедура FillPoly

Функция: Заполняет многоугольник.

Описание: FillPolty (числ_коозд, коорд_верш).

Примечания: Параметр " коорд_верш" является нетипизированным параметром, который содержит координаты каждого пересечения сторон в многоугольнике. Параметр " числ_коорд" задает число координат в " коорд_верш". Координата состоит из двух слов: значения х и значения y.

Данная процедура вычисляет все горизонтальные пересечения и заполняет многоугольник, используя текущий тип и цвет линии и текущий тип и цвет закраски. При вычерчивании контура многоугольника используется текущий тип линии и цвет, которые устанавливаются процедурой SetLineStyle.

 


Поделиться:



Последнее изменение этой страницы: 2020-02-16; Просмотров: 123; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.028 с.)
Главная | Случайная страница | Обратная связь