- •1.1. Типы драйверов
- •1.2. Инициализация графики
- •1.2.2. Инициализация и завершение видеорежима
- •1.2.3. Процедуры работы с видеорежимами
- •2. Построение изображений на экране
- •2.1. Система координат
- •2.2. Управление текущим указателем
- •3. Основные процедуры и функции, используемые в графическом режиме
3. Основные процедуры и функции, используемые в графическом режиме
Процедура Arc
procedure Arc (X, Y: Integer; StAngle, EndAngle, Radius: Word);
Строит дугу окружности текущим цветом с учетом масштабов по осям. Текущий цвет задается процедурой SetColor, текущие параметры линии - процедурой SetLineStyle. Изменение относительных масштабов изображения по вертикали и горизонтали осуществляется процедурой SetAspectRatio.
X, Y – координаты центра дуги;
StAngle – угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо;
EndAngle – угол до конечное точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо;
Radius – радиус дуги.
Процедура Bar
procedure Bar(Xl, Yl, X2, Y2: Integer);
Строит прямоугольник, закрашенный текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурой SetFillStyle или SetFillPattern.
XI, Yl, X2, Y2 – координаты левого верхнего и правого нижнего углов прямоугольника.
Процедура Bar3D
procedure Bar3D(Xl, Yl, X2, Y2: Integer; Depth Word; Top:Boolean);
Строит параллелепипед. закрашенный текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурой SetFillStyle или SetFillPattern.
XI, Yl, X2, Y2 – координаты левого верхнего и правого нижнего углов передней грани;
Depth – ширина боковой грани (отсчитывается по горизонтали);
Top – признак включения верхней грани (если True - верхняя грань вычерчивается, в противном случае верхняя грань не отображается).
Процедура Circle
procedure Circle(X, Y: Integer; Radius: Word);
Строит окружность текущим цветом с учетом масштабов по осям. Текущий цвет задается процедурой SetColor, текущие параметры линии – процедурой SetLineStyle. Изменение относительных масштабов изображения по вертикали и горизонтали осуществляется процедурой SetAspectRatio.
X, Y – координаты центра окружности;
Radius – радиус окружности.
Процедура ClearDevice
procedure ClearDevice;
Очищает графический экран, закрашивает его в цвет фона, устанавливает указатель текущей позиции в точку с координатами (0, 0). Цвет фона задается процедурой SetBkColor.
Процедура Ellipse
procedure Ellipse(X, Y: Integer; StAngle. EndAngle: Word; XRadius, YRadius: Word);
Рисует дугу эллипса текущим цветом. Текущий цвет задается процедурой SetColor, текущие параметры линии - процедурой SetLineStyle. Изменение относительных масштабов изображения по вертикали и горизонтали осуществляется процедурой SetAspectRatio.
X, Y – координаты центра эллипса;
StAngle – угол до начальной точки эллипса, отсчитываемый против часовой стрелки от горизонтальной оси. направленной слева направо;
EndAngle – угол до конечной точки эллипса, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо; '
XRadius, YRadius – горизонтальная и вертикальная полуоси эллипса.
Процедура FillEllips
procedure FillEllipse(X, Y: Integer; XRadius, Yradius: Word);
Строит эллипс, закрашенный текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурой SetFillStyle или SetFillPattern. Текущий цвет контура задается процедурой SetColor, текущие параметры линии - процедурой SetLineStyle.
Изменение относительных масштабов изображения по вертикали и горизонтали осуществляется процедурой SetAspectRatio.
X, Y – координаты центра эллипса;
XRadius, YRadius – горизонтальная и вертикальная полуоси эллипса.
Процедура FloodFill
procedure FloodFill(X, Y: Integer; Border: Word);
Закрашивает область, ограниченную непрерывной линией, текущим орнаментом и цветом заполнения. Орнамент и цвет заполнения задаются процедурой SetFillSlyle или SetFillPattern.
X, Y – координаты любой точки внутри закрашиваемой линии;
Border – цвет линии, до которой производится закрашивание.
Процедура GetAspectRatio
procedure GetAspectRatio(var Xasp, Yasp: Word);
Возвращает число точек (пикселов) на графическом экране по горизонтали и вертикали.
Xasp, Yasp – переменные, в которые процедура записывает число точек по горизонтали и вертикали.
Процедура Line
procedure Line(X1, Y1, X2, Y2: Integer);
Проводит линию текущего цвета между точками с координатами (X1, Y1) и (X2, Y2) без изменения значения указателя координат. Текущий цвет задается процедурой SetColor, текущие параметры линии - процедурой SetLineStyle, a режим построения линии - процедурой SetWriteMode.
X1, Yl, X2, Y2 – координаты точек, между которыми проводится линия.
Процедура LineRel
procedure LineRel(Dx, Dy: Integer);
Проводит линию текущего цвета из текущей позиции в точку, сдвинутую относительно исходной позиции на величины Dx и Dy. Текущий цвет задается процедурой SetColor, текущие параметры линии – процедурой SetLineStyle, a режим построения линии – процедурой SetWriteMode.
Dx, Dy – смещение координат точки конца линии по отношению к исходным координатам.
Процедура LineTo
procedure LineTo(X, Y: Integer);
Проводит линию текущего цвета из текущей позиции в точку с заданными координатами. Текущий цвет задается процедурой SetColor, текущие параметры линии – процедурой SetLineStyle, a режим построения линии – процедурой SetWriteMode.
X, Y - координаты точки, до которой проводится линия.
Процедура MoveRel
procedure MoveRel(Dx, Dy: Integer);
Перемещает указатель координат на заданное расстояние (Dx, Dy) по отношению к его предыдущему положению (точка на экране не высвечивается).
Dx, Dy - смещение текущего указателя относительно его старого положения.
Процедура MoveTo
procedure MoveTo(X, Y: Integer);
Перемещает текущий указатель координат в точку окна с координатами (X, Y). Точка на экране не высвечивается.
X, Y – координаты точки относительно левого верхнего угла окна.
Процедура PutPixel
procedure putPixel(X, Y: Integer; Pixel: Word);
Закрашивает пиксел с заданными координатами в цвет Pixel.
X, Y – координаты пиксела;
Pixel – цвет, в который закрашивается пиксел.
Процедура Rectangle
procedure Rectangle(Xl, Yl, X2, Y2: Integer);
Строит контур прямоугольника текущим цветом. Текущий цвет задается процедурой SetColor, текущие параметры линии – процедурой SetLineStyle, a режим построения линии – процедурой SetWriteMode.
X1, Y1 – координаты левого верхнего угла прямоугольника;
X2, Y2 – координаты правого нижнего угла прямоугольника (необходимо чтобы 0 <= X1 < X2 <= GetMaxX и 0 <= Y1 < Y2 <= GetMaxY).
Процедура SetAspectRatio
procedure SetAspectRatio(Xasp, Yasp: Word);
Меняет относительный масштаб изображения по горизонтали и вертикали.
Xasp, Yasp – задаваемые масштабы по горизонтали и вертикали.
Процедура SetBkColor
procedure SetBkColor(Color: Word);
Устанавливает цвет фона экрана.
Color - устанавливаемый цвет (соответствует номеру цвета в палитре или черный, если Color = 0).
Процедура SetCotor
procedure SetColor(Color: Word);
Устанавливает текущий цвет, которым будут изображаться контуры фигур и тексты.
Color - устанавливаемый цвет (номер цвета из палитры).
Процедура SetFillPattern
procedure SetFillPattern(Pattern:FillPatternType;Color:Word);
Задает произвольный орнамент, а также цвет для заполнения фигур.
Pattern – задаваемый пользователем орнамент.
Color – цвет заполнения фигур.
Процедура SetFillStyle
procedure SetFillStyle(Pattern: Word; Color: Word);
Задает стандартные орнамент и цвет заполнения фигур.
Pattern – задаваемый стандартный параметр;
Color – цвет заполнения фигур (номер цвета в палитре).
Процедура SetLineStyle
procedure SetLineStyle(LineStyle: Word; Pattern: Word;
Thickness: Word);
Задает текущие параметры линии (стиль, шаблон и толщину).
LineStyle – стиль линий;
Pattern – шаблон линии – задается только в случае, если LineStyle = UserBitLn; представляется в виде двухбайтового числа, каждый бит которого равен 1, если очередной пиксель следует высветить, и 0 – в противном случае;
Thickness – толщина линии.
Процедура SetPalette
procedure SetPalette(ColorNum: Word; Color: Shortint);
Меняет цвет одной компоненты в палитре.
ColorNum – номер компоненты палитры;
Color – задаваемый цвет.
Функция GetBKColor
function GetBKColor: Word;
Возвращает номер текущего цвета фона в палитре.
Функция GetColor
function GetColor: Word;
Возвращает номер цвета в палитре, заданного последней процедурой SetColor.
Функция GetMaxX
function GetMaxX: Integer;
Возвращает максимальную координату Х для текущего драйвера в текущем режиме.
Функция GetMaxY
function GetMaxY: Integer;
Возвращает максимальную координату Y для текущего драйвера в текущем режиме.
Функция GetPixel
function GetPixel(X, Y: Integer): Word;
Возвращает цвет пиксела с заданными координатами.
Функция GetX
function GetX: Integer;
Возвращает координату X текущей позиции на экране относительно установленного графического окна.
Функция GetY
function GetY: Integer;
Возвращает координату Y текущей позиции на экране относительно установленного графического окна.
Коды цветов (для процедур SetPalette и SetAllPalette)
Таблица 2.1.
Имя |
Значение |
Назначение |
Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LighlMagenta Yellow White |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Черный Синий Зеленый Голубой Красный Фиолетовый Коричневый Светло-серый Темно-серый Светло-синий Светло-зеленый Светло-голубой Розовый Светло-фиолетовый Желтый Белый |
Коды типов линий для процедур GetLineStyle, SetLineSlyle и GetLineSettings
Таблица 2.2.
Имя |
Значение |
Назначение |
SolidLn DottedLn CenterLn DashedLn UserBitLn |
0 1 2 3 4 |
Сплошная Пунктирная Штрихпунктирная Штриховая Заданная пользователем |
Толщины линий для процедур GetLineStyle, SetLineStyle и GetLineSettings
Таблица 2.3.
Имя |
Значение |
Назначение |
NormWidth ThickWidth |
1 3 |
Нормальная Толстая |
Константы изображения параллелепипеда для процедуры Bar3D
Таблица 2.4.
Имя |
Значение |
Назначение |
TopOn TopOff |
True False |
Закрашивается верхняя грань He закрашивается верхняя грань |
Константы орнамента заполнения для процедур GetFillStyle и SetFillSlyle
Таблица 2.5.
Имя |
Значение |
Назначение |
EmptyFill SolidFill LineFill LtSlashFill SlashFill BkSlashFill LtBkSlashFill HatchFill XHatchFill InterleaveFill WideDotFill CloseDotFill UserFill |
0 1 2 3 4 5 6 7 8 9 10 11 12 |
Заполнение цветом фона Однородное заполнение цветом Заполнение --- Заполнение /// Заполнение /// толстыми линиями Заполнение \\\ толстыми линиями Заполнение \\\ Заполнение клеткой Заполнение косой клеткой Заполнение частой сеткой Заполнение редкими точками Заполнение частыми точками Заполнение определяется пользователем |