И. И. Мечникова лаборатория кафедра компьютерных методов экспериментальной экспериментальной физики физики компьютерный практикум
Вид материала | Практикум |
Содержание3. Вывод точек, линий, прямоугольников 4. Вывод текста в графическом режиме |
- И. И. Мечникова лаборатория кафедра компьютерных методов экспериментальной экспериментальной, 104.46kb.
- И. И. Мечникова лаборатория кафедра компьютерных методов экспериментальной экспериментальной, 180.75kb.
- Студент Кафедра «Теоретической и экспериментальной физики ядерных реакторов», 38.99kb.
- Аспирант Кафедра «Теоретической и экспериментальной физики ядерных реакторов», 37.79kb.
- Учебно-методический комплекс дисциплина «физика» Кафедра общей и экспериментальной, 611.05kb.
- Рабочая программа утверждаю: по курсу общей и экспериментальной физики (основы квантовой, 73.65kb.
- Ядерно-физические методы в решении проблем нефтяной отрасли и экологии Казахстана 01., 579.83kb.
- Отчет по исследованиям, проведенным в Лаборатории экспериментальной физики высоких, 1736.85kb.
- Аппаратная инфраструктура измерительных и управляющих систем плазменных установок ияф, 734.94kb.
- Российский государственный гидрометеорологический университет кафедра экспериментальной, 191.53kb.
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.