Выводит на экран строку текста, начиная с текущего положения курсора.
OutTextXY(X,Y,Text)
Выводит на экран строку текста, начиная с точки с координатами X,Y.
Чтобы построить изображение, необходимо обязательно указать начальную позицию. В графическом режиме для перемещения указателя используются процедуры MoveTo и MoveRel
Формат:
MoveTo(X,Y:Integer);
Перемещает текущий указатель в точку с координатами X, Y.
MoveRel(dX,dY:Integer);
Перемещает указатель на dX точек по горизонтали и на dY точек по вертикали относительно последнего положения текущего указателя. При задании положительных значений dX или dY значения соответствующих координат текущего указателя будут увеличиваться, при задании отрицательных – уменьшаться.
Для определения текущего положения графического курсора используются функции
GetX:Integer;
GetY:integer;
Возвращающие значения текущих координат указателя.
Пример. Позиционирование указателя и определение его координат.
USES Graph;
VAR
Gd,Gm:Integer;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
{перемещение в центр экрана}
MoveTo(GetMaxX DIV 2,GetMaxY DIV 2);
OutTextXY(GetX,GetY,’Указатель в центре’);
{смещение указателя на некоторую величину}
MoveRel(-GetX DIV 2,-GetY DIV 2);
OutText(‘Указатель смещен’);
ReadLn;
CloseGraph;
END.
Какие бы изображения ни выводились на экран, все они построены из точек. Для отображения точки (пиксела) на экране используется процедура
PutPixel(X,Y,Color)
где X и Y – координаты точки на экране, Color – ее цвет.
Функция
GetPixel(X,Y)
определяет номер цвета пиксела с координатами X,Y.
Пример1. Заполнение экрана множеством точек различного цвета.
USES Graph;
VAR
Gd,Gm:Integer;
Color:Word;
X,Y:Word;
Begin
Gd:=Detect;
{Инициализация графического режима}
InitGraph(Gd,Gm,'C:\TP7\BGI');
{Обработка ошибки инициализации}
IF GraphResult<>0 THEN Begin
WriteLn(‘Ошибка инициализации’);
HALT(1);
End;
Color:=0;
Randomize;
Repeat
{звуковой сигнал, если цвет пикселов совпадает}
If Color=GetPixel(X,Y) Then Write(#7);
{случайным образом выбранные координаты пиксела}
X:=Random(GetMaxX);
Y:=Random(GetMaxY);
PutPixel(X,Y,Color); {вывод пиксела}
Inc(Color); {изменение цвета}
{проверка, не превышает ли значение цвета максимально допустимого}
If Color=GetMaxColor Ten Color:=0;
Until KeyPressed; {пока не нажата клавиша}
CloseGraph;
End.
Пример 2. Вывести N точек в пределах окружности радиуса R.
USES CRT,GRAPH;
VAR
GD,GM:integer;
A:Real;
R:Integer;
X,Y:integer;
Color:Word;
BEGIN
GD:=detect;
InitGraph(GD,GM,'c:\tp7\bgi');
IF GraphResult<>0 THEN HALT(1);
ClearDevice;
SetBkColor(1);
Color:=1;
Repeat
A:=Random(628)/100; {Угол отклонения в радианах}
R:=Random(80); {Радиус}
Y:=Trunc(R*Sin(A));
X:=Trunc(R*Cos(A));
PutPixel(GetMaxX Div 2 +X,GetMaxY Div 2 + Y,Color);