Модуль graph в паскале abc

Модуль graph в паскале abc

Для просмотра полного описания модуля воспользуйтесь справкой в PascalABC.Net.

Содержание

GraphABC — модуль для рисования в PascalABC.Net.

В GraphABC существует множество процедур и функций для рисования линий, прямоугольников, ломаных и текста. Но перед рисованием Вам следует уяснить то, что изначально все примитивы будут рисоваться черным цветом — изначальным цветом кисти.

Тема №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).

Читайте также:  1С подписка на событие обработкапроведения

* 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 Графическая программа продолжает выполняться даже после того как выполнены все операторы основной программы. Графическое окно реагирует на события мыши, клавиатуры, событие изменения размеров окна и событие закрытия окна. Данные события определены

  • Закрепить знания об алгоритмах и способах записи алгоритмов путем решения практических задач.
  • Познакомиться с графическими возможностями программы ПаскальАВС.
  • умения анализировать, сравнивать, систематизировать и обобщать;
  • интерес к учению, стремление к расширению кругозора;
  • бережное отношение к имуществу, ВТ и учебным пособиям;
  • дисциплинированность, любознательность.
Читайте также:  Device not responding перевод

  • Организационный момент.
  • Проверка домашнего задания. Фронтальный опрос или тест на компьютере. На усмотрение учителя выставляются отметки. Проверить выполнение задачи begin6;
  • Изучение нового материала. Используем видеокурс:

Урок 18. Знакомство с модулем GraphABC и некоторыми его командами.
Вспомнить систему координат.

  • Изображение, которое мы видим на экране компьютера, представлено в виде пикселей.
  • Координаты в рисунке считаются по пикселям (приводим пример игра «Морской бой»)
  • Подключаем графический модуль и начинаем объяснять материал на простом примере, вводя основные команды библиотеки GraphABS.
  • Точка — SetPixel (x, y, color) — Закрашивает цветом color точку с координатами (x, y);
  • Отрезок — Line (x1,y1,x2,y2) — Рисует отрезок из точки с координатами (x1,y1) в точку с координатами (x2,y2);
  • окружность — Circle (x, y, radius) — Рисует окружность с центром в точке с координатами (x, y) и радиусом radius.
  • прямоугольник — Rectangle (x1,y1,x2,y2) — Рисует контур прямоугольника со сторонами параллельными сторонам экрана. Точки с координатами (x1, y1) и (x2, y2) определяют диагональные вершины прямоугольника.
  • Для закрепления изученного материала выполнить программу в результате выполнения которой будет нарисована рожица.
  • Перед выполнением задания записать в

тетрадь команды, которые мы сегодня
изучили.

  • Выучить команды и их характеристики.
  • Составить в тетради программу,

в результате выполнения которой, вы
получите задуманный рисунок.

procedure SetPixel (x, y, color: integer);

Закрашивает один пиксел с координатами (x, y) цветом color.

function GetPixel (x, y): integer;

Возвращает текущее значение цвета для пиксела с координатами (x, y).

procedure MoveTo (x, y: integer);

Передвигает невидимое перо к точке с координатами (x, y); эта функция работает в паре с функцией LineTo (x, y).

procedure LineTo (x, y: integer);

Рисует отрезок от текущего положения пера до точки (x, y); координаты пера при этом также становятся равными (x, y).

procedure Line (x1,y1,x2,y2: integer);

Рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

procedure Circle (x, y, r: integer);

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

procedure Ellipse (x1,y1,x2,y2: integer);

Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).

procedure Rectangle (x1,y1,x2,y2: integer);

Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).

procedure RoundRect (x1,y1,x2,y2,w, h: integer);

Рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h — ширину и высоту эллипса, используемого для скругления краев.

procedure Arc (x, y, r, a1, a2: integer);

Рисует дугу окружности с центром в точке (x, y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 — вещественные, задаются в градусах и отсчитываются против часовой стрелки).

procedure Pie (x, y, r, a1, a2: integer);

Рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc).

procedure Chord (x, y, r, a1, a2: integer);

Рисует фигуру, ограниченную дугой окружности и отрезком, соединяющим ее концы (параметры процедуры имеют тот же смысл, что и в процедуре Arc).

procedure TextOut (x, y: integer; s: string);

Выводит строку s в позицию (x, y) (точка (x, y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s).

procedure FloodFill (x, y, color: integer);

Заливает область одного цвета цветом color, начиная с точки (x, y).

procedure FillRect (x1,y1,x2,y2: integer);

Заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.

procedure Polygon (var a; n: integer);

Строит ломаную по n точкам, координаты которых заданы в массиве a элементов типа Point.

procedure Polyline (var a; n: integer);

Строит замкнутую ломаную по n точкам, координаты которых заданы в массиве a элементов типа Point.

Модуль GraphABC содержит константы и функции для работы с цветами. Тип ColorType, описывающий цвет, определен следующим образом:

type ColorType=integer;

Стандартные цвета задаются символическими константами:

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;

Выделяет красную составляющую из цвета color (целое в диапазоне от 0 до 255);

function GetGreen (color: ColorType): integer;

Выделяет зеленую составляющую из цвета color (целое в диапазоне от 0 до 255);

function GetBlue (color: ColorType): integer;

Выделяет синюю составляющую из цвета color (целое в диапазоне от 0 до 255).

function PenX: integer;
function PenY: integer;

Возвращают текущие координаты пера.

procedure SetPenColor (color: integer);

Устанавливает цвет пера, задаваемый параметром color.

function PenColor: integer;

Возвращает текущий цвет пера.

procedure SetPenWidth (w: integer);

Устанавливает ширину пера, равную w пикселам.

function PenWidth: integer;

Возвращает текущую ширину пера.

procedure SetPenStyle (ps: integer);

Устанавливает стиль пера, задаваемый параметром ps.

function PenStyle: integer;

Возвращает текущий стиль пера.

procedure SetBrushColor (color: integer);

Устанавливает цвет кисти, задаваемый параметром color.

function BrushColor: integer;

Возвращает текущий цвет кисти.

procedure SetBrushPicture (fname: string);

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

procedure ClearBrushPicture;

Очищает рисунок-образец, выбранный для кисти.

procedure SetBrushStyle (bs: integer);

Устанавливает стиль кисти, задаваемый параметром bs.

function BrushStyle: integer;

Возвращает текущий стиль кисти.

procedure SetFontColor (color: integer);

Устанавливает цвет шрифта.

function FontColor: integer;

Возвращает текущий цвет шрифта.

procedure SetFontSize (sz: integer);

Устанавливает размер шрифта в пунктах.

function FontSize: integer;

Возвращает текущий размер шрифта в пунктах.

procedure SetFontName (name: string);

Устанавливает наименование шрифта.

function FontName: string;

Возвращает текущее наименование шрифта.

По умолчанию установлен шрифт, имеющий наименование MS Sans Serif.
Наиболее распространенные шрифты — это Times, Arial и Courier New.
Наименование шрифта можно набирать без учета регистра.

procedure SetFontStyle (fs: integer);

Устанавливает стиль шрифта.

function FontStyle: integer;

Возвращает текущий стиль шрифта.

Стили шрифта задаются следующими именованными константами:

fsBoldItalic — жирный наклонный;

Читайте также:  1С подписка на событие обработкапроведения

fsBoldUnderline — жирный подчеркнутый;

fsItalicUnderline — наклонный подчеркнутый;

fsBoldItalicUnderline — жирный наклонный подчеркнутый.

function TextWidth (s: string): integer;

Возвращает ширину строки s в пикселях при текущих настройках шрифта.

function TextHeight (s: string): integer;

Возвращает высоту строки s в пикселях при текущих настройках шрифта.

Работа с рисунками в модуле GraphABC производится либо с помощью описателей (целых чисел, однозначно определяющих рисунок), либо с помощью объектов класса Picture. Работа с помощью описателей позволяет манипулировать рисунками, используя обычные поцедуры и функции и не используя классы.

Каждый рисунок, хранящийся во время работы программы в оперативной памяти, имеет описатель (дескриптор), представляющий собой целое число. Это число возвращается функцией загрузки рисунка из файла LoadPicture, а также функцией создания рисунка CreatePicture, после чего передается в качестве первого параметра во все остальные процедуры и функции работы с рисунками.

function LoadPicture (fname: string): integer;

n:=LoadPicture (fname) — загружает рисунок из файла с именем fname в оперативную память и возвращает описатель рисунка в целую переменную n; если файл не найден, то возникает ошибка времени выполнения. Загружать можно рисунки в формате .bmp, .jpg или .gif.

procedure SavePicture (n: integer; fname: string);

Сохраняет рисунок с описателем n в файл с именем fname. Рисунки можно сохранять в формате .bmp, .jpg или .gif.

procedure DrawPicture (n, x, y: integer);

Выводит рисунок с описателем n в позицию (x, y) графического окна.

procedure DrawPicture (n, x, y, w, h: integer);

Ссылка на основную публикацию
Adblock detector