Рейтинг@Mail.ru
TMT Logo

МОДУЛЬ GRAPH
Графическая Библиотека для TMT Pascal v3.50SP2
Часть 4

Copyright (c) 1997,98 TMT Development Corp.
All Rights Reserved

Если вы заметили в документе
опечатки или неточности перевода,
просьба сообщить о них!
Перевод на русский язык и оформление:
Валерий Вотинцев

К Содержанию


Процедуры и Функции


AnalizeRGB (процедура)

Возвращает RGB составляющие указанного цвета.

Объявление:
 procedure AnalizeRGB (Color: Dword; var R,G,B: Byte);
Пояснения:
Данная функция работает только с SVGA режимами HiColor и TrueColor. Значения RGB составляющих, возвращаемые процедурой AnalizeRGB, зависят от того, какой именно видео режим установлен (32K, 64K или 16M цветов).

К СодержаниюНаверх

Arc (процедура)

Рисует дугу окружности.

Объявление:
 procedure Arc (X,Y; Integer; StAngle, EndAngle, Radius; Word);
Пояснения:
Дуга начинается от радиального угла StAngle (стартовый угол) и закачиваетс в точке с углом EndAngle; Radius - радиус окружности; (x,y) - точка центра окружности.

К СодержаниюНаверх

Bar (процедура)

Рисует прямоугольник, закрашенный текущим цветом заполнения.

Объявление:
 procedure Bar(x1, y1, x2, y2: LongInt);
Пояснения:
С помощью данной процедуры можно рисовать закрашенные изнутри прямоугольники, часто используемые, например, в столбиковых диаграммах. Для заполнени используется цвет, задаваемый в SetFillColor. Если требуется отрисовка внешнего контура прямоугольника, то для этого следует использовать вызов Bar3D с указанием нулевой глубины.

К СодержаниюНаверх

Bar3D (процедура)

Рисует 3-D прямоугольник (параллелепипед), закрашенный текущим цветом заполнения.

Объявление:
  procedure Bar3D(x1, y1, x2, y2: DWord; Depth: Word; Top: Boolean);
Пояснения:
Процедура Bar3D рисует трехмерный прямоугольник (параллелепипед), заполненный изнутри цветом и образцом заполнения, задаваемыми процедурой SetFillColor. 3-D обрамление прямоугольника рисуется линией текущего стил и цвета, которые устанавливаются процедурами SetLineStylle и SetColor. Параметр "Depth" задает глубину в пикселях внешней 3-D обводки. Если значение Top = TopOn, то верхняя грань рисуется, если TopOff = False, то, соответственно, нет. Таким образом, имеется возможность изображать множество параллелепипедов, располагая их один над другим.
Типичное значение глубины обычно составляет 25% от ширины прямоугольника:
    Bar3D(X1, Y1, X2, Y2, (X2 - X1 + 1) div 4, TopOn);

К СодержаниюНаверх

Circle (процедура)

Рисует окружность с центром в точке (X,Y) текущим цветом, установленным с помощью SetColor.

Объявление:
 procedure Circle(X,Y: LongInt; Radius: DWord);
Пояснения:
При рисовании учитывается коэффициент пропорциональности, зависящий от установленного графического режима.

К СодержаниюНаверх

ClearDevice (процедура)

Очищает выбранное текущим устройство вывода и устанавливает указатель в начальное положение.

Объявление:
 procedure ClearDevice;
Пояснения:
ClearDevice перемещает текущий указатель в точку (0, 0), и очищает всю доступную видео-память нулями.

К СодержаниюНаверх

ClearPage (процедура)

Очищает текущую активную страницу цветом фона, установленным процедурой SetBkColor, и перемещает текущий указатель в точку (0, 0).

Объявление:
 procedure ClearPage;
Пояснения:
Следует учитывать, что активная логическая страница, установленна процедурой SetLogicalPage, может быть больше размеров физического экрана.

К СодержаниюНаверх

ClearViewPort (процедура)

Очищает видимую часть изображения (view port) фоновым цветом, установленным процедурой SetBkColor, и перемещает текущий указатель в начальное положение (0, 0).

Объявление:
 procedure ClearViewPort;

К СодержаниюНаверх

CliRetrace (процедура)

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

Объявление:
 procedure CliRetrace;

К СодержаниюНаверх

CliHRetrace (процедура)

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

Объявление:
 procedure CliHRetrace;

К СодержаниюНаверх

CloseGraph (процедура)

Полностью закрывает графическую систему.

Объявление:
 procedure CloseGraph;
Пояснения:
Процедура CloseGraph восстанавливает состояние экрана, которое было до инициализации графической системы и освобождает память, выделенную под графический буфер.

К СодержаниюНаверх

DetectSVGAMode (функция)

Врзвращает правильный номер VESA VBE режима для запрашиваемого видео-режима. Если запрашиваемый видео-режим не поддерживается, то возвращается ноль.

Объявление:
 function DetectSVGAMode (XRes,YRes,BPP,VMode: Word): Word;
Пояснения:
Эта функция может быть использована совместно с процедурой SetGraphMode. В следующем примере производится попытка установить SVGA режим 640x480 с максимальным количеством цветов:
 uses Crt,Graph;

 function SetSVGA640x480: String;
 const Bps: array [0..4] of Word=(32,24,16,15,8);
 var   Mode,i: Word;
 begin
  for i:=0 to 4 do begin
   Mode:=DetectSVGAMode(640,480,bps[i],LfbOrBanked);
   if Mode>0 then begin
    SetGraphMode(Mode);
    if GraphResult=grOk then begin
     Str(bps[i],Result);
     exit;
    end;
   end;
  end;
  RestoreCrtMode;
  Result:='';
 end;

 var S: String;
 begin
  S:=SetSVGA640x480;
  if S<>'' then begin
   SetTextJustify(CenterText,CenterText);
   OutTextXY(320,240,'Установлен SVGA режим 640x480 '+S+' bps');
   OutTextXY(320,260,'Нажмите любую клавишу...');
   ReadKey;
   RestoreCrtMode;
  end else
   Writeln(' Режим SVGA 640x480 не поддерживается...');
 end.

К СодержаниюНаверх

DrawEllipse (процедура)

Рисует эллипс с центром в точке (X,Y). Параметры "A" и "B" задают габариты эллипса соответственно по горизонтали и по вертикали.
Объявление:
 procedure DrawEllipse(X, Y, A, B: LongInt)

К СодержаниюНаверх

DrawHLine (процедура)

Рисует ГОРИЗОНТАЛЬНУЮ линию установленным цветом заполнения (fill color).

Объявление:
 procedure DrawHLine (X1,X2,Y: LongInt);

К СодержаниюНаверх

DrawPoly (процедура)

Рисует выпуклый многоугольник текущим цветом и стилем линии.

Объявление:
 procedure DrawPoly(NumVert: DWord; var Vert);
Пояснения:
Параметр Numvert задает количество вершин в многоугольнике. Каждая вершина описывается парой координат (X,Y) типа LongInt в массиве Vert.
Эта процедура отличается от аналогичной процедуры из модуля Borland GRAPH. Внутренние углы в многоугольнике НЕ ДОЛЖНЫ превышать 180 градусов, т.е. многоугольник должен быть выпуклым.
                                    /\
            /\                      \ \
            \ \                     /  \
             \ \                    \/\ \
              \/                       \/
        1. Правильный       2. Неправильный
           многоугольник       многоугольник
Если Вам требуется нарисовать неправильный многоугольник (2), то Вы должны предварительно разделить его на 2 правильных:
                     /\               /\
                     \ \              \ \
         /\     +     \ \      =      /  \
         \/            \ \            \/\ \
                        \/               \/

К СодержаниюНаверх

Ellipse (процедура)

Рисует ЧАСТЬ эллипса.

Объявление:
 procedure Ellipse(X,Y: LongInt;
                   StAngle, EndAngle,
                   XRadius, YRadius: DWord);
Пояснения:
Процедура Ellipse рисует дугу эллипса начиная с угла StAngle до угла EndAngle, с радиусами XRadius и YRadius, и точкой центра (X,Y).

К СодержаниюНаверх

ExpandFill (процедура)

Закрашивает ограниченную область текущим цветом.

Объявление:
 procedure ExpandFill(X, Y: Integer);
Пояснения:
Процедура заливает текущим цветом, установленным с помощью SetFillColor, закрытую область растрового изображения. Заливка начинается в точке (X, Y). Если эта точка находится внутри зоны одного цвета, то зона будет закрашена изнутри. Если же точка находится снаружи - то будет залито все за пределами данной зоны.

К СодержаниюНаверх

FillEllipse (процедура)

Рисует закрашенный эллипс

Объявление:
 procedure FillEllipse(X, Y, A, B: LongInt)
Пояснения:
(X,Y) - точка центра;
A и B - габариты по горизонтали и вертикали.

К СодержаниюНаверх

FillPoly (процедура)

Рисует закрашенный многоугольник.

Объявление:
 procedure FillPoly(NumVert: DWord; var Vert);
Пояснения:
Vert - содержит пары координат (X,Y:LongInt) для всех вершин многоугольника.
NumVert - количество вершин в многоугольнике.

Процедура FillPoly сначала рассчитывает все точки пересечения ребер многоугольника, и затем закрашивает его цветом, установленным процедурой SetFillColor.

К СодержаниюНаверх

FillTriangle (процедура)

Рисует закрашенный треугольник.

Объявление:
 procedure FillTriangle (X1,Y1,X2,Y2,X3,Y3: LongInt);

К СодержаниюНаверх

FlipImageOY (процедура)

Переворачивает растровое изображение (BitMap) по вертикали (зеркальный поворот относительно оси OX).

Объявление:
 procedure FlipImageOY (var BitMap);
Пример:
 uses Graph, CRT;

 var P: Pointer;
     i,j,dx,dy: DWord;

 begin
  { Set SVGA mode 640x480x256. You can set ANY supported mode }
  SetSVGAMode(640,480,8,LfbOrBanked);
  if GraphResult<>grOk then begin
   ClrScr;
   Writeln(GraphErrorMsg(GraphResult));
   exit;
  end;
  dx:=(GetMaxX+1) div 2;
  dy:=(GetMaxY+1) div 2;
  for i:=0 to dx do
   for j:=0 to dy do
    PutPixel(i,j,i*j div dx);
  SetTextJustify(CenterText,BottomText);
  OutTextXY(dx,dy+dy div 2,'Press any key...');
  ReadKey;
  GetMem(P,ImageSize(0,0,dx-1,dy-1));
  GetImage(0,0,dx-1,dy-1,P^);
  FlipImageOX(P^);
  PutImage(dx,0,P^);
  FlipImageOY(P^);
  PutImage(dx,dy,P^);
  FlipImageOX(P^);
  PutImage(0,dy,P^);
  ReadKey;
  FreeMem(P,ImageSize(0,0,dx-1,dy-1));
  RestoreCrtMode;
 end.

К СодержаниюНаверх

FlipImageOX (процедура)

Переворачивает растровое изображение (BitMap) по горизонтали (зеркальный поворот относительно оси OY).

Объявление:
 procedure FlipImageOX (var BitMap);
Пояснения:
См. пример для FlipImageOY.

К СодержаниюНаверх

FlipToMemory (процедура)

Копирует содержимое нулевой графической страницы в буфер, на который указывает указатель Addr.

Объявление:
 procedure FlipToMemory (Addr: Pointer)
Пояснения:
Эта процедура весьма удобна для копирования содержимого текущей графической страницы в виртуальный буфер для последующей обработки.
FlipToMemory НЕ ПОДДЕРЖИВАЕТСЯ в бесплатной версии TMT Pascal.

К СодержаниюНаверх

FlipToScreen (процедура)

Копирует содержимое из буфера памяти, адресуемого указателем Addr, в нулевую графическую страницу.

Объявление:
 procedure FlipToScreen (Addr: Pointer)
Пояснения:
Эта процедура очень удобна для переноса уже обработанного изображени из виртуальной страницы на графическую страницу.
FlipToScreen НЕ ПОДДЕРЖИВАЕТСЯ в бесплатной версии TMT Pascal.

К СодержаниюНаверх

FloodFill (процедура)

Производит заливку области до границы указанного цвета.

Объявление:
 procedure FloodFill(X, Y: Integer; Border: Word);
Пояснения:
Используется для заливки области, ограниченной цветом, задаваемым в параметре Border. Заливка производится текущим цветом заливки, установленным процедурой SetFillColor. (X, Y) - стартовая точка заливки.

К СодержаниюНаверх

Автор русского проекта:
Valery Votintsev

при поддержке
TMT Development Corporation.
All rights reserved.


[Новости]   [Продукты]   [Продажи]   [Скачать]   [Апдейты]   [Поддержка]
[Документация]   [FAQ]   [Contributions]   [Ссылки]   [Связь с TMT]   [Главная]