Материал с сайта:
http://svgimnazia1.grodno.by/sinica/Book_ABC/Book_ABC_pascal/GraphABC.htm
Модуль растровой графики GraphABC обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi. Он доступен в несобытийных программах и позволяет легко создавать анимацию без мерцания.
Модуль GraphABC содержит константы, типы, процедуры, функции и классы для рисования в графическом окне. Они подразделяются на следующие группы:
Графические примитивы
Действия с цветом
Действия с пером
Действия с кистью
Действия со шрифтом
Действия с рисунками: описатели
Действия с рисунками: класс Picture
Действия с графическим окном
Задание режимов вывода
Графические примитивы
Процедуры и функции рисования и установки параметров рисования аналогичны методам и свойствам класса TCanvas в Delphi. Например, вместо свойства Canvas.Brush.Color используется пара: процедура SetBrushColor(color) и функция BrushColor.
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; - возвращает текущий стиль пера.
Стили пера задаются следующими именованными константами:
Значение
|
Описание
|
psSolid
|
Сплошная линия (установлено по умолчанию)
|
psDash
|
Штриховая линия
|
psDot
|
Пунктирная линия
|
psDashDot
|
Штрихпунктирная линия
|
psDashDotDot
|
Линия, чередующая штрих и два пунктира
|
psClear
|
Отсутствие линии
|
procedure SetPenMode(m: integer); - устанавливает режим пера, задаваемый параметром m.
function PenMode: integer; - возвращает текущий режим пера. Режим пера определяет, как цвет пера взаимодействует с цветом поверхности.
Режимы пера задаются следующими именованными константами:
pmCopy – обычный режим; при рисовании цвет поверхности заменяется цветом пера;
pmNot – режим инвертирования; при рисовании цвет поверхности инвертируется (становится негативным), а цвет пера при этом игнорируется.
|