История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
| RGB(R,G,B) | Возвращает цвет(типа Color), который содержит красную (R), зеленую (G) и синюю (B) составляющие (R,G,B - в диапазоне от 0 до 255). |
| ARGB(A,R,G,B) | Возвращает цвет(типа Color), который содержит прозрачность (A), красную (R), зеленую (G) и синюю (B) составляющие (A,R,G,B- в диапазоне от 0 до 255). |
| clRandom | Возвращает случайный цвет(типа Color). |
| GetRed(C) | Возвращает красную составляющую цвета C–целое число в диапазоне от 0 до 255 |
| GetGreen(C) | Возвращает зеленую составляющую цвета C–целое число в диапазоне от 0 до 255 |
| GetBlue(C) | Возвращает синюю составляющую цвета C–целое число в диапазоне от 0 до 255 |
| GetAlpha(C) | Возвращает составляющую прозрачности цвета C–целое число в диапазоне от 0 до 255 |
Пример5. С помощью функции RGB можно получить любой цвет, указав нужные базовые составляющие.Используя функцию RGB, будем получать различные цвета и закрашивать ими графическое окно с помощью процедуры ClearWindow.
Uses GraphABC; // подключение модуля
begin // начало программы
SetWindowCaption('красный цвет'); // красный цвет
ClearWindow(RGB(255,0,0)); // очистка окна красным цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('зеленый цвет'); // зелёный цвет
ClearWindow(RGB(0,255,0)); // очистка окна зеленым цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('синий цвет'); // синий цвет
ClearWindow(RGB(0,0,255)); // очистка окна синим цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('красный + зелёный =?'); // красный + зелёный
ClearWindow(RGB(255,255,0)); // очистка окна заданным цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('красный + синий =?'); // красный + синий
ClearWindow(RGB(255,0,255)); // очистка окна заданным цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('зелёный + синий =?'); // зелёный + синий
ClearWindow(RGB(0,255,255)); // очистка окна заданным цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('оттенок серого'); // когда всех поровну
ClearWindow(RGB(100,100,100)); // очистка окна серым цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('белый цвет'); // белый цвет
ClearWindow(RGB(255,255,255)); // очистка окна белым цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('чёрный цвет'); // чёрный цвет
ClearWindow(RGB(0,0,0)); // очистка окна чёрным цветом
ReadLn; // пауза до нажатия ENTER
SetWindowCaption('случайный цвет'); // случайный цвет
ClearWindow(clRandom); // очистка окна случайным цветом
End. // конец программы
Цветовые константы
(здесь приведено только несколько цветовых констант, на самом деле в модуле их около 140)
| Цветовая константа | Цвет |
| clBlack | Чёрный |
| clMaroon | Красно-коричневый |
| clGreen | Зелёный |
| clOlive | Желтовато-зелёный |
| clNavy | Тёмно-синий |
| clPurple | Пурпурный |
| clSkyBlue | Голубой |
| clGray | Серый |
| clSilver | Серебряный |
| clRed | Красный |
| clLime | Салатовый |
| clYellow | Жёлтый |
| clBlue | Синий |
| clFuchsia | Ярко-розовый |
| clAquamarine | Бирюзовый |
| clLightGray | Светло-серый |
| clDarkGray | Тёмно-серый |
| clWhite | Белый |
Пример6. Получениеи вывод базовых составляющих цвета clAquamarine.
Uses GraphABC; //подключение модуля
Var C: Color; //переменная С типа Color
begin //начало программы
Window.Caption:='Цвет Aquamarine'; // заголовок окна
C:= clAquamarine; //С получила значение clAquamarine
WriteLn('Red=',GetRed(C),
'Green=',GetGreen(C),
'Blue=',GetBlue(C)); // вывод базовых составляющих цвета
End. //конец программы
Пример 7. Получение и вывод базовых составляющих случайного цвета.
Uses GraphABC; //подключение модуля
Var C: Color; //переменная С типа Color
begin //начало программы
Window.Caption:='Случайный цвет'; // заголовок окна
C:= clrandom; //С получила случайное значение
Print(GetAlpha(C), //вывод прозрачности
GetRed(C), // и базовых составляющих цвета С
GetGreen(C),
GetBlue(C));
end. //конец программы
Рисование в графическом окне.
Рисование осуществляется текущим пером Pen (рисование линий и контуров фигур), текущей кистью Brush (заливка замкнутых областей) и текущим шрифтом Font (вывод строк).
Перо
Для рисования линий, контуров фигур и текста используется объект Pen (перо). Объект Pen имеет ряд свойств. Среди них:
- Color – цвет пера (по умолчанию clBlack - чёрный);
- Width – толщина перав пикселах (по умолчанию – 1 пиксел);
- Style – стиль пера(по умолчанию – psSolid);
- X – x-координата текущей позиции пера;
- Y – y-координата текущей позиции пера;
Стили пера
| Значения свойства Styleобъекта Pen | Стиль линии | Образец линии |
| psSolid(по умолчанию) | Сплошное перо |
|
| psClear | Прозрачное перо | |
| psDash | Штриховое перо |
|
| psDot | Пунктирное перо |
|
| psDashDot | Штрихпунктирное перо |
|
| psDashDotDot | Перо, чередующее штрих и два пунктира |
|
Перо по умолчанию пишет чёрной сплошной линией толщиной 1 пиксел. Задать другие значения легко, присваивая свойствам пера нужные значения:
Pen.Color:= clRed; {перо будет писать красным цветом}
Pen.Width:= 3; {толщина пера – 3 пиксела }
Pen.Style:= psDot; {линии будут пунктирные}(
Такого же результата можно достичь, используя следующие процедуры:
SetPenColor(clRed); {перо будет писать красным цветом}
SetPenWidth(3); {толщина пера – 3 пиксела }
SetPenStyle(psDot); {линии будут пунктирные}
| Процедуры движения пера, рисования отрезков | |
| MoveTo(X,Y); | Перо устанавливается в точку X,Y |
| LineTo(X,Y); | Рисуется отрезок от текущей позиции пера до точки (X,Y). Текущая позиция переносится в точку (X,Y). |
| Line(X1,Y1, X2,Y2); | Рисуется отрезок от точки (X1,Y1) до точки (X2,Y2). Положение пера не изменяется. |
| Процедура закраски замкнутой области | |
| FloodFill(X,Y,C); | Закрашивает замкнутую область одного цвета цветом C, начиная с точки (X,Y), находящейся внутри замкнутой области. |
Пример 8. Нарисовать диагонали графического окна с помощью поцедуры Line
Uses GraphABC;
Begin
Window.Title:= 'Диагонали окна';
Pen.Color:= clRandom; {случайный цвет пера}
Pen.Width:= 5; {толщина пера – 5 пикселов }
Pen.Style:= psDash; {штриховое перо}
Line(0,0, WindowWidth,WindowHeight);
Line(0,WindowHeight, WindowWidth,0);
end.
Пример9. Нарисовать и закрасить пятиконечную звезду
| Вершины пятиконечной звезды имеют координаты: A (200,100) B (295,169) C (259,281) D (141,281) E (105,169) Красным пером толщиной 4 пиксела нарисовать звезду, используя процедуры рисования MoveTo и LineTo. Дополнительно: закрасить звезду красным цветом, используя процедуру FloodFill. |
Uses GraphABC;
Begin
Window.Caption:='Пятиконечная звезда'; // Заголовок окна
Pen.Color:= clRed; // Красный цвет пера
Pen.Width:= 4; // Толщина пера 4 пиксела
{Другой вариант программы, где предыдущие три оператора заменяются процедурами:
SetWindowCaption('Пятиконечная звезда');
SetPenColor(clRed);
SetPenWidth(3);
}
MoveTo(200, 100); // Установить перо в точку А
LineTo(259, 281); // Отрезок АС
LineTo(105, 169); // Отрезок СЕ
LineTo(295, 169); // Отрезок ЕВ
LineTo(141, 281); // Отрезок ВD
LineTo(200, 100); // Отрезок DА
FloodFill(200, 200, clred); // Закраска центрального пятиугольника
FloodFill(200, 104, clRed); // Закраска вершины A
FloodFill(280, 170, clRed); // Закраска вершины B
FloodFill(120, 170, clRed); // Закраска вершины E
FloodFill(240, 240, clRed); // Закраска вершины C
FloodFill(160, 240, clRed); // Закраска вершины D
end.
Как нарисовать круг в графическом окне?
| Центр круга спроектируем на оси координат. На оси X получаем точку X0, а на оси Y получаем точку Y0. Это и есть координаты центра круга – (X0,Y0). Радиус круга обозначен буквой R. Чтобы задать круг, надо вызвать нужную процедуру и в ней перечислить 3 параметра – координаты центра и радиус: X0,Y0,R. |
Процедуры рисования круга
| DrawCircle(X0,Y0,R); | Контур круга (окружность) рисуется текущим пером. Внутренность круга не закрашивается |
| FillCircle(X0,Y0,R); | Внутренность круга закрашивается текущей кистью. Контур круга (окружность)не рисуется |
| Circle(X0,Y0,R); | Контур круга (окружность) рисуется текущим пером. Внутренность круга закрашивается текущей кистью. |
Пример 10. Нарисуем пять концентрических окружностей разными стилями пера.
Центр окружностей – точка (320,240).
Uses GraphABC; //подключение модуля GraphABC
begin // начало программы
Window.Caption:= ' «Стильные» окружности'; // заголовок окна
Pen.Color:= clRandom; // задали случайный цвет пера
Pen.Width:= 3; // толщина пера - 3 пиксела
Pen.Style:= psSolid; // стиль пера "Сплошное перо"
DrawCircle(320,240, 220); // нарисовали сплошную окружность R=220
Pen.Style:= psDash; // стиль пера "Штриховое перо"
DrawCircle(320,240, 180); // нарисовали штриховую окружность R=180
Pen.Style:= psDot; // стиль пера "Пунктирное перо"
DrawCircle(320,240, 140); // нарисовали пунктирную окружность R=140
Pen.Style:= psDashDot; // стиль пера "Штрихпунктирное перо"
DrawCircle(320,240, 100); // штрихпунктирная окружность R=100
Pen.Style:= psDashDotDot; // стиль пера "Штрих и два пунктира"
DrawCircle(320,240, 60); // нарисовали окружность таким стилем R=60
end.
Другой вариант программы, где для изменения свойств объекта Pen используются процедуры:
Uses GraphABC; //подключение модуля GraphABC
begin // начало программы
SetWindowCaption('«Стильные» окружности'); // заголовок окна
SetPenColor(clRandom); // задали случайный цвет пера
SetPenWidth(3); // толщина пера - 3 пиксела
SetPenStyle(psSolid); // стиль пера "Сплошное перо"
DrawCircle(320,240, 220); // нарисовали сплошную окружность R=220
SetPenStyle(psDash); // стиль пера "Штриховое перо"
DrawCircle(320,240, 180); // нарисовали штриховую окружность R=180
SetPenStyle(psDot); // стиль пера "Пунктирное перо"
DrawCircle(320,240, 140); // нарисовали пунктирную окружность R=140
end.
Кисть
Для закрашивания внутренностей замкнутых областей используется объект Brush (кисть). Объект Brush имеет ряд свойств:
- Style – стиль кисти(по умолчанию - bsSolid);
- Color – цвет кисти(по умолчанию clWhite - белый);
- Hatch – штриховка(по умолчанию - bhCross);
- HatchBackgroundColor – фон штриховки(по умолчанию clWhite - белый).
Среди свойств кисти определяющим является свойство Style – стиль кисти.
Стили кисти
| Значения свойства Style объекта Brush | |
| bsSolid (по умолчанию) | Сплошная кисть. Закрашивает замкнутую область. Цвет сплошной кисти задаётся свойством - Color – цвет кисти(по умолчанию clWhite- белый). |
| bsClear | Прозрачная кисть. Закраска не происходит. |
| bsHatch | Штриховая кисть. Штрихует замкнутую область. Для штриховой кисти свойство Color не срабатывает, зато можно устанавливать свойства: - Hatch – штриховка(по умолчанию bhCross- клетка); - HatchBackgroundColor – фон штриховки (по умолчанию - белый) |
Стили штриховки (здесь приведено несколько штриховок, на самом деле в модуле их около 60)
| Значения свойства Hatch объекта Brush | Штриховка | Образец штриховки |
| bhCross | Прямоугольная клетка |
|
| bhDiagonalCross | Косоугольная клетка |
|
| bhBackwardDiagonal | Косой штрих / / / / / |
|
| bhForwardDiagonal | Косой штрих \ \ \ \ \ |
|
| bhHorizontal | Штриховка горизонтальными линиями |
|
| bhVertical | Штриховка вертикальными линиями |
|
Задание свойств кисти:
Brush.Color:= clGreen; {цвет сплошной кисти - зелёный}
Brush.Style:= bsHatch; {стиль кисти– штриховая кисть}
Brush.Hatch:= bhDiagonalCross; {стиль штриховки – косоугольная клетка}
Brush.HatchBackgroundColor:=clBlue; {задний плана штриховки - синего цвета}
Такого же результата можно достичь, используя следующие процедуры:
SetBrushColor(clGreen); {цвет сплошной кисти - зелёный}
SetBrushStyle(bsHatch); {стиль кисти – штриховая кисть}
SetBrushHatch(bhDiagonalCross); {стиль штриховки – косоугольная клетка}
SetHatchBrushBackgroundColor(clBlue); {задний плана штриховки - синего цвета}
Пример 11. Работа с кистью.
Нарисуем три круга с помощью процедуры Circle.
Эта процедура нарисует круги текущим пером чёрного цвета (по умолчанию), и каждый круг закрасит кистью в зависимости от установленного стиля кисти.
Uses GraphABC; // Подключили модуль GraphABC
begin // Начало программы
Window.Caption:='«Стильные» круги';// Заголовок графического окна
Brush.Color:= clYellow;// Задали цвет кисти - clYellow (жёлтый)
Brush.Hatch:= bhVertical;//Задали стиль штриховки-bhVertical(вертикаль)
Brush.HatchBackgroundColor:=clLime;//Задали фон штриховки-clLime(салатовый)
Brush.Style:= bsClear;// Задали стиль кисти - Прозрачная кисть (bsClear)
Circle(100,240,100); // Нарисовали первый круг
// Видим, что закраска и штриховка отсутствуют
Brush.Style:= bsSolid;// Задали стиль кисти - Сплошная кисть (bsSolid)
Circle(300,240,100); // Нарисовали второй круг
// Закраска цветом кисти clYellow, штриховки нет
Brush.Style:= bsHatch;// Задали стиль кисти - Штриховая кисть (bsHatch)
Circle(500,240,100); // Нарисовали третий круг
// Штриховка - bhVertical, фон штриховки - clLime
end. // Конец программы
Как нарисовать прямоугольник в графическом окне?
| Рассмотрим левый верхний угол прямоугольника. Спроектируем его на оси координат. На оси X получаем точку X1, а на оси Y получаем точку Y1. Это и есть координаты левого верхнего угла прямоугольника – (X1,Y1). Аналогично подробно объяснить про правый нижний угол – (X2,Y2). |
Чтобы нарисовать прямоугольник – надо вызвать нужную процедуру и в ней перечислить 4 параметра: X1,Y1,X2,Y2.
|
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!