И. И. Мечникова лаборатория кафедра компьютерных методов экспериментальной экспериментальной физики физики компьютерный практикум

Вид материалаПрактикум

Содержание


3. Вывод точек, линий, прямоугольников
4. Вывод текста в графическом режиме
Подобный материал:
1   2   3   4   5
^




3. Вывод точек, линий, прямоугольников



Вывод пиксела заданного цвета в точку с экранными координатами X,Y осуществляется процедурой

PutPixel (X, Y, <цвет>),


причем X и Y должны быть целого типа.

Для проведения прямых линий используется несколько процедур.

Процедура

Line (X1, Y1, X2, Y2)


вычерчивает текущим цветом прямую линию из точки с экранными координатами (X1,Y1) в точку с экранными координатами (X2,Y2).

Процедура

LineTo (X, Y)


вычерчивает текущим цветом прямую линию от положения графического указателя до точки с координатами (X,Y) и устанавливает указатель в эту точку.

Графический указатель - это аналог курсора в текстовом режиме, однако, в отличие от курсора, он невидим. После перехода в графический режим указатель находится в точке (0,0). Для установки указателя в позицию с экранными координатами (X,Y) используется процедура

MoveTo (X, Y) .


Две последние процедуры особенно удобно использовать для проведения кривых на графиках. Вначале с помощью MoveTo (X,Y) устанавливают указатель в первую точку кривой, затем организуют цикл, внутри которого последовательно вычисляют координаты следующих точек и подставляют их в качестве параметров в процедуру LineTo (X,Y). Если шаг вычислений достаточно мелкий, получаемая при этом ломаная линия визуально воспринимается как плавная кривая.

Процедура

Rectangle (X1, Y1, X2, Y2)


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

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


program GR_2;


uses Graph;


var

GrDriver, GrMode: integer;

i: integer;


BEGIN

GrDriver:= Detect;

InitGraph (GrDriver, GrMode, 'C:\BP\BGI');


{ вывод разноцветных точек }

for i:= 1 to 15 do

PutPixel (10*i, 50, i);


{ гоpизонтальные пpямые разных цветов }

for i:= 1 to 15 do

begin

SetColor (i);

Line (10, 10*i+150, 200, 10*i+150)

end;


{ постpоение паpаболы }

SetColor (Yellow);

MoveTo (200, 400);

for i:= 1 to 5 do

LineTo (200+50*i, 400-10*i*i);


{ постpоение пpямоугольника }

SetColor (LightBlue);

Rectangle (300, 50, 450, 100);


Readln;

CloseGraph

END.
^

4. Вывод текста в графическом режиме



Употребляемые в текстовом режиме процедуры Write и Writeln работают и в графическом режиме, но ими обычно не пользуются.

Специально для графического режима разработаны мощные процедуры, обеспечивающие вывод сообщений различными шрифтами, в горизонтальном или вертикальном направлении, символами различного размера и цвета. Ниже приведены наиболее употребительные процедуры.


Процедура

OutTextXY (X, Y, <текст>) , где

<текст> - выражение типа string или char, выводит текст, начиная с точки с экранными координатами (X,Y).

Процедура


SetTextStyle (<шрифт>, <направление>, <размер>)


устанавливает стиль текстового вывода на экран.

Для указания шрифта можно использовать следующие определенные в модуле Graph константы:



Константа




Значение




Шрифт












DefaultFont



0


системный


TriplexFont



1


"Триплекс"


SmallFont



2


уменьшенный


SansSerifFont



3


прямой


GothicFont



4



готический




Направление вывода текста можно задавать константами



Константа




Значение




Направление












HorizDir



0


слева направо


VertDir



1



снизу вверх




Размер шрифта кодируется целым параметром, который может принимать значения от 1 до 10. Если задать нулевое значение параметра, автоматически устанавливается наименьший размер, при котором еще различимы все детали символов.

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

Текст, выводимый в графическом режиме, автоматически выравнивается по отношению к заданным в процедуре OutTextXY координатам. Режим выравнивания задается процедурой


SetTextJustify (<гориз.>,<верт.>) , где


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



Константа




Значение



Положение

точки (X,Y)

отн. текста











LeftText



0


слева


CenterText



1


в центре


RightText



2


справа


BottomText



0


снизу


TopText



2



сверху



Цвет выводимого текста устанавливается уже описанной процедурой SetColor.

Разумеется, чтобы процедуры установки шрифта, цвета и режима выравнивания текста возымели действие, они должны вызываться программой перед вызовом процедуры OutTextXY. В противном случае действуют либо предыдущие установки, либо стандартные установки по умолчанию: системный шрифт белого цвета размера 1, вывод слева направо, текст располагается правее и выше указанных в OutTextXY координат.

Ниже приводится программа, демонстрирующая различные шрифты, поддерживаемые графической библиотекой Turbo-Pascal, и результаты ее работы.


program GR_3;


uses Graph;


var

GrDriver, GrMode: integer;


BEGIN

GrDriver:= Detect;

InitGraph (GrDriver, GrMode, 'C:\BP\BGI');


SetTextJustify (CenterText, TopText);


SetTextStyle (DefaultFont, VertDir, 1);

OutTextXY (100,100, 'Default (System) font');


SetTextStyle (TriplexFont, HorizDir, 4);

OutTextXY (240,100, 'Triplex font');


SetTextStyle (SmallFont, HorizDir, 6);

OutTextXY (240,150, 'Small font');


SetTextStyle (SansSerifFont, HorizDir, 4);

OutTextXY (240,170, 'SansSerif font');


SetTextStyle (GothicFont, HorizDir, 4);

OutTextXY (240,220, 'Gothic font');


Readln;

CloseGraph

END.


µ §


Шрифты графической

библиотеки системы

Turbo-Pascal.