Графический модуль GraphABC

Система ABC Pascal обладает великолепной графической библиотекой. Для ее
модключения после заголовка программы необходимо написать Uses GraphABC. Модуль
GraphABC содержит константы, типы, процедуры и функции для рисования в
графическом окне. Они подразделяются на несколько групп:

  •  Графические примитивы
  •  Действия с цветом
  • Действия с точками и прямоугольниками
  • Действия с пером
  • Действия с кистью
  • Действия со шрифтом
  • Действия с рисунками
  • Действия с графическим окном

Рассмотрим сразу пример:

[cc lang=»pascal»]

Program Gr01;
Uses GraphABC;
begin
SetWindowSize(256,256);
SetPenColor(RGB(0,0,255));
Line(0,0, WindowWidth, WindowHeight)
Line(0,WindowHeight, WindowWidth, 0)
end.

[/cc]

Процедура SetWindowSize устанавливает размер графического окна 256×256 пикселей.
Процедура SetPenColor определяет цвет рисования линий. Функция RGB возвращает цвет,
заданный своими Red, Green, Blue компонентами. Процедура Line рисует линию из точки,
заданной первой парой координат, в точку, заданную второй парой координат. Функции
WindowWidth и WindowHeight возвращают текущие значения ширины и высоты
графического окна (следовательно, если вы поменяете размер окна в процедуре
SetWindowSize, то линии все равно будут проводиться из угла в угол).

Оконные координаты

  •  Координата x растет слева на право от 0 до значения WindowWidth
  •  Координата y растет сверху вниз от 0 до значения WindowHeight

Задание цвета
Как известно восприятие цвета у человека трехцветное. Основываясь на этом, в
графических библиотеках используется именно такое трехкомпонентное представление
цвета. Цвет задается с помощью функции rgb(Red,Green,Blue)

Задание стиля и цвета пера

  •  SetPenColor(цвет) – устанавливает цвет пера, задаваемый параметром color.
  •  SetPenWidth(ширина) – устанавливает ширину пера.
  •  SetPenStyle(стиль) – устанавливает стиль пера (сплошной, пунктир и т.п.), возможные
    значения указаны в таблице (стиль применим только к ширине пера 1 пиксел)

psClear           psDash           psDot           psDashDot            psDashDotDot

Текущее перо используется для рисования линий, прямоугольников, ломаных,
окружностей, эллипсов, дуг и т.п.

[cc lang=»pascal»]

Program Gr02;
Uses GraphABC;
Var i : integer;
begin
SetWindowSize(512,512);
SetPenStyle(psDash);
SetBrushStyle(bsClear);
Circle(256,256,WindowHeight div 2);
end.

[/cc]

Задание стиля и цвета кисти

  • SetBrushColor(цвет) – устанавливает цвет кисти
  • SetBrushPicture(имя файла) – устанавливает в качестве образца для закраски кистью
  • образец, хранящийся в файле, при этом текущий цвет кисти при закраске
    игнорируется.
  • ClearBrushPicture – очищает рисунок-образец, выбранный для кисти.
  • SetBrushStyle(стиль) – устанавливает стиль кисти, задаваемый параметром bs.

Возможные стили кисти:
bsSolid bsClear bsCross bsDiagCross bsHorizontal bsBDiagonal bsVertical bsFDiagonal
Текущей кистью закрашиваются все замкнутые фигуры, контур фигур рисуется текущим
пером. Чтобы нарисовать не закрашенную фигуру, используйте SetBrushColor(bsClear).

[cc lang=»pascal»]

Program Gr03;
Uses GraphABC;
Var i,j : integer;
begin
SetWindowSize(512,512);
SetBrushColor(rgb(128,0,255));
SetBrushStyle(bsDiagCross);
Rectangle(10,10,WindowWidth-10,WindowHeight-10);
end.

[/cc]

Некоторые графические примитивы

  • 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(x1,y1,x2,y2) – рисует прямоугольник, заданный координатами
    противоположных вершин (x1,y1) и (x2,y2).
  • RoundRect(x1,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.

 

 

Расскажите друзьям:

Джамшид

Единственное, чего ты не можешь — помешать людям думать.

Графический модуль GraphABC: 4 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *