Имя и параметры команды | Действие команды |
Line(x1,y1,x2,y2) | Рисует отрезок из точки с координатами (x1,y1) в точку с координатами (x2,y2) |
LineTo(x, y) | Рисует отрезок из текущей точки в точку с координатами (x, y) (соответствует команде сместиться_в с опущенным пером для исполнителя Чертежник) |
Rectangle(x1,y1,x2,y2) | Рисует контур прямоугольника со сторонами параллельными сторонам экрана. Точки с координатами (x1, y1) и (x2, y2) определяют диагональные вершины прямоугольника. |
RoundRect(x1,y1,x2,y2,w,h) | Рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев. |
FillRect(x1,y1,x2,y2); | Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти. |
Circle(x,y, radius); | Рисует окружность с центром в точке с координатами (x,y) и радиусом radius. |
Ellipse(x1,y1,x2,y2); | Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2). |
MoveTo(x, y) | Переводит текущую точку в положение новое положение, в точку с координатами (x, y) (соответствует команде сместиться_в с поднятым пером для исполнителя Чертежник) |
TextOut (x, y, text) | Выводит Text на экран. Начало текста в точке с координатами (x, y) |
SetPixel(x,y,color) | Закрашивает цветом color точку с координатами (x, y) |
SetPenColor(color) | Задает цвет рисования линий. Параметр color – число в промежутке от 0 до 256 3 -1. |
SetPenStyle(ps) | Устанавливает стиль пера, задаваемый параметром ps. Стили пера задаются следующими именованными константами: |
Значение | Описание | Вид линии |
psSolid | Сплошная линия | |
psDash | Штриховая линия | |
psDot | Пунктирная линия | |
psDashDot | Штрихпунктирная линия | |
psDashDotDot | Линия – штрих и два пунктира | |
psClear | Отсутствие линии |
Модуль GraphABC содержит константы и функции для работы с цветами. Тип ColorType, описывающий цвет, определен следующим образом:
Стандартные цвета задаются символическими константами:
clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый | clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебристый |
Для работы с цветами используются следующие функции.
function RGB(r,g,b: integer): ColorType;
Возвращает целое значение, являющееся кодом цвета, который содержит красную, зеленую и синюю составляющие с интенсивностями R,G и B соответственно (R,G и B – целые в диапазоне от 0 до 255, причем, 0 соответствует минимальной интенсивности, 255 – максимальной).
function GetRed(color: ColorType): integer;
Выделяет красный цвет интенсивностью (целое число от 0 до 255);
function GetGreen(color: ColorType): integer;
Выделяет зеленый цвет интенсивностью (целое число от 0 до 255);
function GetBlue(color: ColorType): integer;
Выделяет синий цвет интенсивностью (целое число от 0 до 255).
Пример графической программы, рисующей изображение дома:
uses graphABC; //подключение модуля graphABC
SetWindowWidth(800); //ширина окна программы
SetWindowHeight(600); //высота окна программы
SetFontStyle(fsBold); //жирный стиль шрифта
SetFontSize(18); //размер шрифта
SetFontColor(clRed); //цвет шрифта
SetBrushColor(clAqua); //цвет заливки окна
FillRect(300,400,500,500); //процедура заливки окна
Тема №3 Графический модуль GraphABC
Система ABC Pascal обладает великолепной графической библиотекой. Для ее модключения после заголовка программы необходимо написать Uses GraphABC. Модуль GraphABC содержит константы, типы, процедуры и функции для рисования в графическом окне. Они подразделяются на несколько групп:
* Действия с кистью
* Действия с цветом
* Действия со шрифтом
* Действия с точками и прямоугольниками
* Действия с рисунками
* Действия с пером
* Действия с графическим окном
Рассмотрим сразу пример:
Program Gr01;
Uses GraphABC;
begin
Line(0,0, WindowWidth, WindowHeight)
Line(0,WindowHeight, WindowWidth, 0)
end.
Процедура SetWindowSize устанавливает размер графического окна 256?256 пикселей.
Процедура SetPenColor определяет цвет рисования линий. Функция RGB возвращает цвет, заданный своими Red, Green, Blue компонентами. Процедура Line рисует линию из точки, заданной первой парой координат, в точку, заданную второй парой координат. Функции WindowWidth и WindowHeight возвращают текущие значения ширины и высоты графического окна (следовательно, если вы поменяете размер окна в процедуре SetWindowSize, то линии все равно будут проводиться из угла в угол).
* Координата x растет слева на право от 0 до значения WindowWidth
* Координата y растет сверху вниз от 0 до значения WindowHeight
Как известно восприятие цвета у человека трехцветное. Основываясь на этом, в графических библиотеках используется именно такое трехкомпонентное представление цвета. Цвет задается с помощью функции rgb(Red, Green,Blue)
* Red – число от 0 до 255, соответствующее интенсивности красной компоненты
* Green – число от 0 до 255, соответствующее интенсивности зеленой компоненты
* Blue – число от 0 до 255, соответствующее интенсивности синей компоненты
Функция формирует целое число (integer), которое может использоваться везде в графической библиотеке, где требуется указание цвета. Есть несколько предопределенных цветов:
clMoneyGreen – цвет зеленых денег
Задание стиля и цвета пера
* SetPenColor(цвет) – устанавливает цвет пера, задаваемый параметром color.
* SetPenWidth(ширина) – устанавливает ширину пера.
* SetPenStyle(стиль) – устанавливает стиль пера (сплошной, пунктир и т.п.), возможные значения указаны в таблице (стиль применим только к ширине пера 1 пиксел)
Текущее перо используется для рисования линий, прямоугольников, ломаных, окружностей, эллипсов, дуг и т.п.
Uses GraphABC;
begin
Circle (256,256,WindowHeight div 2);
end.
Задание стиля и цвета кисти
* SetBrushColor(цвет) – устанавливает цвет кисти
* SetBrushPicture(имя файла) – устанавливает в качестве образца для закраски кистью образец, хранящийся в файле, при этом текущий цвет кисти при закраске игнорируется.
* ClearBrushPicture – очищает рисунок-образец, выбранный для кисти.
* SetBrushStyle(стиль) – устанавливает стиль кисти, задаваемый параметром bs.
Возможные стили кисти:
bsSolid bsClear bsCross bsDiagCross bsHorizontal bsBDiagonal bsVertical bsFDiagonal
Текущей кистью закрашиваются все замкнутые фигуры, контур фигур рисуется текущим пером. Чтобы нарисовать не закрашенную фигуру, используйте SetBrushColor(bsClear).
Program Gr03;
Uses GraphABC;
Var i,j : integer;
begin
end.
Некоторые графические примитивы[6]
* Line(x1, y1, x2, y2) – рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).
* Circle(x,y,r) – рисует окружность с центром в точке (x,y) и радиусом r.
* Ellipse(x1, y1, x2, y2) – рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).
* Rectangle(x 1,y1,x2,y2) – рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
* RoundRect(x 1,y1,x2,y2,w,h) – рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев.
* Arc(x,y, r, a1,a2) – рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
* Pie(x,y,r,a1,a2) – рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc).
* Chord(x,y, r, a1,a2) – рисует фигуру, ограниченную дугой окружности и отрезком, соединяющим ее концы (параметры процедуры имеют тот же смысл, что и в процедуре Arc).
* FloodFill(x,y,color) – закрашивает область одного цвета, начиная с точки (x,y) цветом color.
Напишите программу, использующую не менее трех процедур рисования, которая рисовала бы несложный рисунок (домик, автомобиль, и т.п.)
Пример решения задания
Program avto;
var i : integer;
begin
SetPenStyle (psClear); // верхняя часть автомобиля
setBrushColor (ClAqua); // окна
setBrushColor (Clgreen); // корпус
setBrushColor (ClYellow); // фары
setBrushColor (ClLightGray); // бампер
SetPenStyle (psSolid); // двери
setBrushColor (ClBlack); // колеса
end.
Похожие главы из других книг
ТЕМА НОМЕРА: Как родилась эта тема
ТЕМА НОМЕРА: Как родилась эта тема Автор: Владимир ГуриевОбычно мы стараемся придумать на первое апреля что-нибудь веселое, но последние несколько лет редакции и без первого апреля живется все лучше и веселее, так что настроения шутить у нас не было, и в тематическом
Компьютерра №33 (605) Тема номера: Выставки ТЕМА НОМЕРА SIGGRAPH 2005
Компьютерра №33 (605) Тема номера: Выставки ТЕМА НОМЕРА SIGGRAPH 2005 В начале августа в Лос-Анджелесе прошла выставка SIGGRAPH 2005. Полное название этого мероприятия звучит следующим образом: 32-я Международная конференция по компьютерной графике и интерактивным технологиям
1.2.1 Графический контекст
1.2.1 Графический контекст Прежде чем начать работу с графикой, программа должна выделить себе специальную структуру данных и получить указатель на нее. Эта структура называется графическим контекстом (Graphic Context (GC)). Указатель на GC используется в качестве одного из
1.3. Графический интерфейс и консоль
1.3. Графический интерфейс и консоль 1.3.1. Что такое консоль В первых версиях Linux не было графического интерфейса. Да, система X Window (новое название – X.Org), которая лежит в основе графического интерфейса, появилась в 1992 году, но как такового графического интерфейса пользователя
ТЕМА НОМЕРА: Запретная тема
Графический интерфейс
Графический интерфейс Отличие всех программ, работающих в операционной среде Windows, – это графический настраиваемый интерфейс. Это относится и к программам Microsoft Office. Пользователь в определенных пределах сам может выбирать вид, размер и функции рабочих окон и
Простейший графический редактор
Графический цвет
Графический цвет Графический цвет — это обычное графическое изображение, которым закрашиваются линии или заливки. Таким графическим изображением может быть содержи- мое как обычного графического файла, так и другой канвы.Графический цвет создают в три этапа.Первый
Графический цвет
Графический цвет Графический цвет — это обычное графическое изображение, которым закрашиваются линии или заливки. Таким графическим изображением может быть содержимое как обычного графического файла, так и другой канвы.Графический цвет создают в три этапа.Первый этап
Графический редактор
Графический редактор Теперь, когда мы ознакомились с графическими методами, настало время написать простейший графический редактор с минимальными возможностями. В этом приложении можно будет рисовать при помощи стилуса линии, а также прямые цветные линии из трех
2.6.2. Графический редактор Paint
2.6.2. Графический редактор Paint Для работы над изображениями и рисунками и создания собственных в Windows встроен графический редактор — Paint, что в переводе с английского значит «рисовать, писать красками». Редактор не сложный и умеет выполнять простые операции с рисунками. С
2.4. Видеокарта (графический адаптер или графический ускоритель)
Модуль GraphABC
Модуль GraphABC Модуль GraphABC представляет собой простую графическую библиотеку и предназначен для создания несобытийных графических и анимационных программ в процедурном и частично в объектном стиле. Рисование осуществляется в специальном графическом окне, возможность
Типы и переменные модуля GraphABC
Типы и переменные модуля GraphABC Color = System.Drawing.Color; Тип цвета Point = System.Drawing.Point; Тип точки GraphABCException = class(Exception) end; Тип исключения GraphABC RedrawProc: procedure; Процедурная переменная перерисовки графического окна. Если равна nil, то используется стандартная
События модуля GraphABC
События модуля GraphABC Графическая программа продолжает выполняться даже после того как выполнены все операторы основной программы. Графическое окно реагирует на события мыши, клавиатуры, событие изменения размеров окна и событие закрытия окна. Данные события определены
Для просмотра полного описания модуля воспользуйтесь справкой в PascalABC.Net.
Содержание
GraphABC – модуль для рисования в PascalABC.Net.
В GraphABC существует множество процедур и функций для рисования линий, прямоугольников, ломаных и текста. Но перед рисованием Вам следует уяснить то, что изначально все примитивы будут рисоваться черным цветом – изначальным цветом кисти.