Что нужно знать для создания изображений в Turbo Pascal

Turbo Pascal работает в 2 режимах. Текстовый и графический.
 При работе в текстовом режиме экран разбивается на строки, а строки на позиции, в каждую из которых можно поместить только один символ.

 При работе в графическом режиме экран разбивается на отдельные точки — "пикселы". Положение пиксела также задается двумя координатами — X и Y. Координата X увеличивается слева направо, а координата Y — сверху вниз. Количество пикселов на экране зависит от типа графического адаптера и для распространённого адаптера VGA составляет 640 х 480

 Графический режим работы предоставляет пользователю возможности создания статических и динамических изображений. Для работы в графическом режиме требуется подключить модуль Graph и проинициализировать видеоадаптер.
 Пустая графическая программа выглядит приблизительно так

Uses
     Graph, CRT;
Var
    grDriver,grMode,res:integer;
Begin
    grDriver:=detect;
    init Graph (grDriver,'путь к файлу BGI');
    Операторы графических изображений
    Close graph;
End. 


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

 Константы цвета

Black = 0
Blue = 1
Green = 2
Cyan = 3
Red = 4
Magneta = 5
Brown = 6
LightGray = 7
{Черный}
{Синий}
{Зеленый}
{Голубой}
{Красный}
{Фиолетовый}
{Коричневый}
{Светлосерый}
  DarkGray = 8
LightBlue = 9
LightGreen = 10
LightCyan = 11
LightRed = 12
LightMagneta = 13
Yellow = 14
White = 15
{Темносерый}
{Яркосиний}
{Яркозеленый}
{Яркоголубой}
{Розовый}
{Малиновый}
{Желтый}
{Белый} 



Константы типов и толщины линий


SolidLn = 0
DottedLn = 1
CenterLn = 2
{Сплошная}
{Точечная}
{Штрихпунктирная}
  DashedLn = 3
NormWidth = 1
ThickWidrth = 3
{Пунктирная}
{Нормальная толщина}
{Тройная толщина}
Константы шаблона штриховки


EmtyFill = 0
solidFill = 1
LineFill = 2
LtSlashFill = 3
SlashFill = 4
BkSlashFill = 5
LtBkSlashFill = 6
HatchFill = 7
XHatchFill = 8
InterLeaveFill = 9
WideDotFill = 10
CloseDotFill = 11
UserFill = 12
{Заполнение цветом фона}
{Сплошная штриховка}
{Горизонтальная штриховка}
{/// штриховка}
{/// штриховка толстыми линиями}
{\\\ штриховка толстыми линиями}
{\\\ штриховка}
{Заполнение прямой клеткой}
{ЗАпонение косой клеткой}
{Заполнение частой сеткой}
{Заполнение редкими точками}
{Заполнение частыми точками}
{Тип задается пользователем}
Процедуры

Arc(X,Y:integer; U1,U2,R: Word
 Строит дугу окружности текущим цветом с текущими праметрами линии. X, Y - координаты центра дуги, U1 - угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо, U2 - угол до конечной точки дуги, отсчитываемый так же, как U1, R - радиус дуги.
 

Bar(X1,Y1,X2,Y2:integer) 
 Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов прямоугольника.
 

Bar3D(X1,Y1,X2,Y2:integer;Glubina:word;Top:boolean) 
 Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, X2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковой грани (отсчитывая по горизонтали), Top - признак включения верхней грани (Если True - верхняя грань вычерчивается, False - не вычерчивается).
 

Circle(X,Y:integer;R:word) 
 Рисует текущем цветом окружность радиуса R с центром в точке (X,Y).
 

ClearDevice 
 Очищает графический экран, закрашивает его в цвет фона.
 

ClearViewPort 
 очищает выделенное графическое окно, закрашивает его в цвет фона.
 

CloseGraph
  Закрывает графический режим, т.е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
 

Ellipse(X,Y:ineger; U1,U2,XR,YR:word) 
 Рисует дугу эллипса текущим цветом; X, Y - координаты центра эллипса; U1, U2 - углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, YR - горизонтальная и вертикальная полосы эллипса.
 

FillEllipse(X,Y:ineger; XR,YR:word) 
 Рисует заштрихованный эллипс, используя X,Y как центр и XR, YR как горизонтальную и вертикальную полосы эллипса.
 

FillPoly(N:word;Vwr PolyPoints)
 Рисует и штрихует многоугольник, содержащий N вершин с координатами в PolyPoints.
 

InitGraph(Var Driver, Mode:integer;Path:String) 
 Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ''), считается что драйвер находится в текущем каталоге.
 

Line(X1,Y1,X2,Y2:Integer)
 Рисует линию от точки X1,Y1 до точки X2,Y2.
 

LineTo(X,Y:Integer) 
 Рисует линию от текущего указателя к точке X1,Y1.
 

MoveTo(X,Y:Integer)
 Смещает текущий указатель к точке X, Y.
 

OutTextXY(X,Y:Integer;TextString:String) 
 Выводит текст в заданное место экрана
 

PieSlice(X,Y:Integer;U1,U2,Radius:Word) 
 Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X,Y - координаты центра сектора круга; U1 и U2 - начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной вправо; Radius - радиус сектора.
 

PutPixel(X,Y:Integer;Color:Word) 
 Выводит точку цветом Color с координатами X,Y.
 

Rectangle(X1,Y1,X2,Y2) 
 Рисует контур прямоугольника, используя текущий цвет и тип линии. X1,Y1 - координаты левого верхнего угла прямоугольника, X2,Y2 - координаты правого нижнего угла прямоугольника. 

Sector(X,Y:Integer; U1,U2,XR,YR:word) 

 Рисует и штрихует сектор эллипса радиусами XR и YR с центром в X,Y от начального угла U1 к конечному углу U2.
 

SetBkColor(Color:Word) 
 Устанавливает цвет фона.
 

SetColor(Color:Word)
 Устанавливает основной цвет, которым будет осуществляться рисование.
 

SetFillStyle(Pattern,Color:Word) 
 Устанавливает образец штриховки и цвет.
 

SetLineStyle(LineStyle,Pattern,Thickness:Word) 
 Устанавливает толщину и стиль линии.
 

SetTextStyle(Font,Direction,CharSize:Word)
 Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
 

SetViewPort(X1,Y1,X2,Y2: Integer; ClipOn:Boolean) 
 Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет "отсечку" элементов изображения, не умещающихся в окне.



Функции

GetMaxX и GetMaxY

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

GraphResult 

  Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок.ю или возвращает числовой код ошибки (от -1 до -14). 

Комментариев нет:

Отправить комментарий

Если у вас интересные исходники и вы не прочь поделиться, то присылайте daslex@yandex.ru с указанием Темы: Графика Паскаль
К вашей работе будет прикреплено ваше авторство и по желанию добавлена ссылка на ваш сайт.
На одну страницу - Одна работа. На одну работу - Одна ссылка + указание автора


Основное требование - это один файл .pas без сторонних модулей (только с родными. предпочтение Graph).
Можно использовать ассемблерные вставки.

Все что Запускается у меня и работает, я выкладываю. в этом блоге.
Яндекс.Метрика