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




ОДЕССКИЙ ГОСУНИВЕРСИТЕТ им. И.И.Мечникова



ЛАБОРАТОРИЯ


КАФЕДРА


КОМПЬЮТЕРНЫХ МЕТОДОВ



ЭКСПЕРИМЕНТАЛЬНОЙ


ЭКСПЕРИМЕНТАЛЬНОЙ ФИЗИКИ



ФИЗИКИ




КОМПЬЮТЕРНЫЙ ПРАКТИКУМ


ДЛЯ ФИЗИКОВ


МЕТОДИЧЕСКИЕ УКАЗАНИЯ ДЛЯ СТУДЕНТОВ

ФИЗИЧЕСКОГО ФАКУЛЬТЕТА


Автор доцент П.А.Виктор


Р а б о т а 2


ИСПОЛЬЗОВАНИЕ ГРАФИЧЕСКИХ СРЕДСТВ КОМПЬЮТЕРА

ДЛЯ ОТОБРАЖЕНИЯ РЕЗУЛЬТАТОВ РАСЧЕТОВ


ОДЕССА - 1994
^ Работа №2 Использование графических средств компьютера для отображения результатов расчетов

Видеосистема IBM-совместимых компьютеров может работать в двух различных режимах: в текстовом режиме и в графическом режиме. Первый режим позволяет выводить на экран только буквы, цифры и специальные символы в строго определенных позициях экрана (обычно это 25 строк по 80 символов в строке). Второй режим дает возможность полностью реализовать возможности видеосистемы и получать на экране монитора практически любые изображения - от простейших геометрических фигур до полутоновых изображений. Ниже приведены начальные сведения об использовании графической библиотеки языка Turbo-Pascal для построения графиков различных зависимостей.


^ 1. Графическая библиотека Turbo-Pascal. Экранные координаты. Программирование перехода в графический режим

Графические процедуры и функции Turbo-Pascal включены в стандартный библиотечный модуль GRAPH.TPU. Поэтому для того, чтобы получить доступ к графическим средствам, в начале программы необходимо поставить предложение

uses Graph;

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

Изображение на экране представляет собой совокупность большого числа светящихся точек - пикселов. Положение пиксела задается целочисленными координатами X и Y, которые могут изменяться от 0 до максимальных значений, зависящих от типа видеоадаптера, установленного в компьютере, и от режима его работы. Максимальные значения X и Y можно узнать с помощью библиотечных функций GetMaxX и GetMaxY. Ниже приведена таблица значений этих функций для наиболее распространенных видеоадаптеров.



Видеоадаптер



GetMaxX



GetMaxY











СGA (ч/б)



639


199


CGA (4 цвета)



319


199


EGA (16 цветов)



639


349


VGA (16 цветов)



639


479



Пиксел с координатами (0,0) находится в левом верхнем углу экрана. Таким образом, горизонтальная координата экрана увеличивается слева направо, а вертикальная - сверху вниз.

µ §


Координаты графического экрана для адаптера VGA


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

Для перехода в графический режим используется процедура InitGraph, формат обращения к которой имеет вид:

InitGraph (<драйвер>,<режим>,<путь>) , где

<драйвер> - переменная типа integer, определяющая тип графического драйвера;

<режим> - переменная типа integer, определяющая режим работы графического адаптера;

<путь> - выражение типа string, содержащее путь к файлу, где находится драйвер.

Графический драйвер - это специальная программа, управляющая графическим адаптером. Такие программы для различных типов адаптеров входят в состав системы Turbo-Pascal и обычно находятся в подкаталоге BGI в виде файлов с расширением .BGI (от англ. Borland Graphics Interface - графический интерфейс фирмы Borland). Например, CGA.BGI - драйвер для CGA-адаптера, EGAVGA.BGI - драйвер для адаптеров EGA и VGA.

Удобнее всего переменной, задающей тип драйвера, заранее присваивать значение константы Detect, определенной в модуле Graph. В этом случае процедура InitGraph сама определяет тип графического адаптера и устанавливает его в режим максимального разрешения (как правило, адаптеры могут работать в нескольких режимах, отличающихся значениями GetMaxX, GetMaxY и числом доступных цветов).

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


program GR_1;


uses Graph;


var

GrDriver, GrMode: integer;

S1, S2: string;


BEGIN

GrDriver:= Detect;

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


OutTextXY (100, 100, 'Гpафический pежим установлен');


Str (GetMaxX:6, S1);

Str (GetMaxY:6, S2);


OutTextXY (100, 120, 'Max X = ' + S1);

OutTextXY (100, 140, 'Max Y = ' + S2);


Readln;

CloseGraph

END.


Как видно из текста этой программы, нужный графический драйвер процедура InitGraph ищет на диске C в подкаталоге BGI каталога BP (путь к файлу имеет вид C:\BP\BGI).

Процедуры OutTextXY выводят на экран текст, начиная с заданной позиции экрана. Третий параметр этой процедуры должен быть строкового типа, а функции GetMaxX и GetMaxY возвращают целые значения. Поэтому в программе использованы процедуры

Str (GetMaxX:6, S1) и Str (GetMaxY:6, S2) ,

которые преобразуют числовые значения в строковые и присваивают результат переменным S1 и S2. Формат, записи результата преобразования задается с помощью одного или двух двоеточий по тем же правилам, что и в процедурах Write и Writeln.

Программа завершается процедурой CloseGraph. Она прекращает работу видеоадаптера в графическом режиме и восстанавливает текстовый режим.
^ 2. Управление цветом.

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

SetColor (<цвет>) , где <цвет> - номер цвета.



Константа



Значение




Цвет




















































































































































Black


0



черный









































































































































Blue


1

синий
































































































































Green


2

зеленый























































































































Cyan


3

бирюзовый














































































































Red


4

красный





































































































Magenta


5

фиолетовый




























































































Brown


6

коричневый



















































































LightGray


7

светло-серый










































































DarkGray


8

темно-серый

































































LightBlue


9

ярко-синий
























































LightGreen


10

ярко-зеленый















































LightCyan


11

ярко-голубой






































LightRed


12

ярко-красный





























LightMagenta


13

малиновый




















Yellow


14

желтый











White


15

белый



Для видеоадаптеров EGA и VGA <цвет> может принимать целые значения от 0 до 15. В модуле Graph опреде­лены специальные кон­станты для задания цве­та, принимающие ука­зан­ные 16 значений. Их список приведен в таблице. Таким образом, если необходимо назна­чить ярко-красный теку­щий цвет, это можно сделать как процедурой

SetColor (12),

так и процедурой SetColor (LightRed).


Чтобы изменить цвет фона, используется процедура

SetBkColor (<цвет>) ,

вызов которой немедленно изменяет цвет графического экрана.


^


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.


^ 5. Пример законченной программы построения графиков функций


Рассмотрим пример написания программы, которая строит графики функций


µ §

в интервале изменения аргумента x от 0 до 2 и производит оформление графиков, включая разметку координатных осей и вывод пояснительных надписей.

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

Пример такой программы GR_4 приведен ниже. Она проводит вычисление значений функций (они обозначены F1 и F2) в 101 точке от MinX=0 до MaxX=2 (NPoints=100 и еще точка X=0). Шаг изменения аргумента обозначен Step. Для хранения результатов вычисления функций используется вспомогательный массив Fn из двух элементов. Использование массива позволяет только один раз вычислять функции в каждой точке, а потом в нужных местах просто подставлять готовые значения. Как видно из программы, этих подстановок четыре (см. операторы if...). Следовательно, данный прием существенно сокращает время вычислений.

Программа GR_4 позволяет также вывести на экран таблицу всех значений функций, если удалить знаки комментария { и }, окружающие соответствующий участок программы.


program GR_4;


const

NPoints = 100;

MinX = 0.0; MaxX = 2.0;

var

i, k: integer;

Step, X, MinY, MaxY: real;

Fn: array [1..2] of real;


{ функции, гpафики котоpых стpоятся }


function F1 (t: real): real;

begin

F1:= Sqr(Sin(Pi*t))/(t+1)

end;


function F2 (t: real): real;

begin

F2:= 1/2/(t+1)

end;


{ ----------------------------------------- }

BEGIN

Step:= (MaxX-MinX)/NPoints;


MinY:= F1 (MinX); MaxY:= F1 (MinX);

for i:= 0 to NPoints do

begin

X:= Step * i;


Fn [1]:= F1 (X);

Fn [2]:= F2 (X);

{

Write (t:12:3);

for k:= 1 to 2 do

Write (Fn [k]:12:3);

Writeln;

}

for k:= 1 to 2 do

begin

if Fn [k] < MinY then

MinY:= Fn [k];

if Fn [k] > MaxY then

MaxY:= Fn [k]

end

end;

Writeln;

Writeln ('Минимум =', MinY:7:3);

Writeln ('Максимум =', MaxY:7:3);


Readln

END.


Результаты работы программы:


Минимум = 0.000

Максимум = 0.674


Теперь, когда известны пределы изменения функций, можно приступить к размещению графика на экране. Предположим, что компьютер оснащен VGA-адаптером, т.е. экран имеет ширину 640 пикселов и высоту 480 пикселов. Разместим график внутри прямоугольной области шириной Width=500 и высотой Height=400 пикселов. Поскольку график располагается в первом квадранте, начало координат поместим в левый нижний угол области с экранными координатами X0scr=100 и Y0scr=400. Оставшиеся 99 пикселов слева и 79 пикселов снизу от этой области отведем для размещения оцифровки осей и названия графика.

В пределах графика аргумент меняется от MinX=0 до MaxX=2. Функции меняются от MinY=0 до 0.674 . Чтобы оставить над кривыми немного свободного места, возьмем MaxY=0.8 .

Все определенные выше параметры графика зададим в программе в виде констант.

Далее установим связь между экранными координатами и значениями аргумента и функций. Пусть ScaleX - масштабный множитель, имеющий смысл числа пикселов, приходящихся на единицу изменения аргумента, т.е. ScaleX = Width / (MaxX - MinX). Тогда горизонтальная экранная координата Xscr точки, соответствующей значению аргумента X, равна

Xscr = X0scr + Round (ScaleX*X) .

Аналогично для вертикальной экранной координаты

Yscr = Y0scr - Round (ScaleY*Y) .

Знак минус во второй формуле связан с тем, что вертикальная экранная координата отсчитывается сверху вниз, в то время как ось ординат графика направлена снизу вверх. Функция округления Round используется для получения целочисленных экранных координат.

Две последние формулы используем в функциях вычисления экранных координат, которые зададим в разделе описаний программы после описания переменных. Здесь же опишем функции F1 и F2, графики которых мы строим.

В основной части программы после перехода в графический режим организуем вычисление масштабных множителей ScaleX и ScaleY и шага изменения аргумента Step. Далее начертим прямоугольник, внутри которого будет размещен график.

График первой функции изобразим в виде линии ярко-красного цвета. Вначале поместим графический указатель в начало кривой Xscr(0), Yscr(0) процедурой MoveTo, а затем в цикле организуем вычисление значений аргумента для следующих точек и проведение отрезков в эти точки процедурой LineTo.

График второй функции изобразим точками ярко-зеленого цвета, используя процедуру PutPixel.

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

Следующий этап - разметка координатных осей, т.е. изображение штрихов и числовых значений возле них. Начнем с горизонтальной оси. Вначале в процедуре SetTextJustify укажем, что выводимые числа должны быть центрированы по горизонтали (CenterText) и расположены ниже координатных штрихов (TopText). Далее в цикле организуем вывод пяти штрихов для значений аргумента 0, 0.5 ... 2 . Эти значения удобно выразить через порядковый номер штриха i. Горизонтальную экранную координату штрихов обозначим Grid. Длина штриха - 5 пикселов. Численные значения под штрихами выводим процедурой OutTextXY, предварительно преобразовав действительное значение 0.5*i в строковую переменную S процедурой Str.

Аналогично размечаем вертикальную ось в точках 0, 0.25, 0.5 и 0.75 .

Заключительная часть программы выводит подписи под осями и заголовок графика. Здесь используется шрифт SmallFont с размером символов 5 и 7.

Ниже приводится полный текст программы построения графика.


program GR_5;


uses Graph;


const

NPoints = 100;

X0Scr = 100; Y0Scr = 400;

Width = 500; Height = 400;

MinX = 0.0; MaxX = 2.0;

MinY = 0.0; MaxY = 0.8;

var

GrDriver, GrMode: integer;

i, Grid: integer;

ScaleX, ScaleY: real;

Step, X: real;

S: string;


{ функции вычисления экpанных кооpдинат }


function Xscr (X:real): integer;

begin

Xscr:= X0scr + Round (ScaleX*X)

end; { Xscr }


function Yscr (Y:real): integer;

begin

Yscr:= Y0scr - Round (ScaleY*Y)

end; { Xscr }


{ функции, гpафики котоpых стpоятся }


function F1 (t: real): real;

begin

F1:= Sqr(Sin(Pi*t))/(t+1)

end;


function F2 (t: real): real;

begin

F2:= 1/2/(t+1)

end;

{ ----------------------------------------- }

BEGIN

GrDriver:= Detect;

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


{ задание масштабных коэффициентов и шага }

ScaleX:= Width/(MaxX-MinX);

ScaleY:= Height/(MaxY-MinY);

Step:= (MaxX-MinX)/NPoints;


Rectangle (X0Scr, 0, X0Scr+Width, Height); { pамка }


{ вывод кpивой в виде линии }

SetColor (LightRed);

MoveTo ( XScr(0), YScr(0) );

for i:= 1 to NPoints do

begin

X:= Step * i;

LineTo ( XScr(X), YScr(F1(X)) )

end;


{ вывод кpивой точками }

for i:= 0 to NPoints do

begin

X:= Step * i;

PutPixel ( XScr(X), YScr(F2(X)), LightGreen )

end;


{ пояснительные надписи }

SetColor (White);

OutTextXY (260, 100, 'F1(x)');

OutTextXY (320, 250, 'F2(x)');


{ pазметка осей - гоpизонтальная ось }

SetTextJustify (CenterText, TopText);


for i:= 0 to 4 do

begin

Grid:= XScr (0.5*i);

Line (Grid, Height, Grid, Height+5);

Str (0.5*i:3:1, S);

OutTextXY (Grid, Height+10, S)

end;


{ веpтикальная ось }

SetTextJustify (RightText, CenterText);


for i:= 0 to 3 do

begin

Grid:= YScr (i/4);

Line (X0Scr-5, Grid, X0Scr, Grid);

Str (i/4:5:2, S);

OutTextXY (X0Scr-10, Grid, S)

end;


{ подписи под осями и гpафиком }

SetTextJustify (CenterText, CenterText);

SetTextStyle (SmallFont, HorizDir, 5);

OutTextXY (500, 430, 'Значения аpгумента');

OutTextXY (320, 470, '(Виктоp П.А., каф.эксп.физики)');

SetTextStyle (SmallFont, VertDir, 5);

OutTextXY (30, 100, 'Значения функции');

SetColor (Yellow);

SetTextStyle (SmallFont, HorizDir, 7);

OutTextXY (320, 450, 'ГРАФИКИ ДВУХ ФУНКЦИЙ');


Readln;

CloseGraph

END.


Результаты выполнения программы GR_5 представлены на следующем рисунке.


6. Задание

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

Математический маятник совершает малые колебания с амплитудой µ §и частотой w над диском, вращающимся с угловой скоростью W. В этом случае кривая, описываемая концом маятника по поверхности диска, задается уравнениями


µ §


Постройте эту кривую для µ § если


µ §
^


В а р и а н т 2

Рассчитайте кривые распределения молекул газа по скоростям (распределение Максвелла)

µ §


для азота при температурах Т = 100 К, 200 К, ... 500 K в интервале изменения скорости v от 0 до 1000 м/c . Масса молекулы азота µ §, постоянная Больцмана µ §.
^ В а р и а н т 3

Колебания прямоугольной формы можно представить рядом Фурье вида


µ § .


Постройте кривую f(t), сохраняя в ряду только 3 первых члена. Кроме того, точками разных цветов изобразите графики каждого из трех слагаемых суммы. Расчеты проведите в интервале µ §.


^ В а р и а н т 4

Постройте графики функции Ферми


µ §


для температур 200 K, 500 K, 1000 K, 2000 K и 5000 К в области изменения энергии µ § мэВ.

Энергия Ферми F = 1000 мэВ.

Постоянная Больцмана µ §.


^ В а р и а н т 5

Рассчитайте кривые спектральной плотности лучистой энергии, испускаемой абсолютно черным телом, по формуле Планка


µ §


в диапазоне длин волн l от 50 до 1000 нм для значений температуры Т тела 6000 К, 7000 К, 8000 К, 9000 К и 10000 К. Постоянная Планка µ § скорость света µ § постоянная Больцмана µ §.


^ В а р и а н т 6

Рассчитайте радиальную плотность вероятности обнаружения электрона в атоме водорода в 3s, 3p и 3d состояниях по формулам


µ §


(Расстояние от ядра r выражено в первых боровских радиусах.)

Постройте графики рассчитанных зависимостей в области изменения аргумента µ § .


____________________________

^ Приложение Полный перечень процедур и функций стандартного модуля Graph

Для более полного ознакомления с графической библотекой пользуйтесь встроенной справочной системой Turbo-Pascal.


Процедура Arc(X,Y : integer; StAngl, EndAngl, Radius : word) .

Вычерчивает дугу окружности радиуса Radius с центром в точке с координатами X,Y начиная с угла StAngl до угла EndAngl.


Процедура Bar(X1,Y1,X2,Y2 : integer) .

Штрихует (но не обводит) прямоугольник текущим цветом и образцом.


Процедура Bar3D(X1,Y1,X2,Y2 : integer; DEPTH : word; TOP : Boolean) .

Обводит и закрашивает трехмерный параллепипед.


Процедура Circle(X,Y : integer; Radius : word) .

Вычерчивает окружность радиуса Radius с координатами центра X и Y.


Процедура ClearDevice.

Очищает графический экран.


Процедура ClearViewPort.

Очищает графическое окно.

Процедура CloseGraph.

Закрывает графический режим экрана и переводит его в текстовый режим.


Процедура DetectGraph(var GraphDriver,GraphMode : integer) .

Возвращает текущий графический драйвер и его режим работы.


Процедура DrawPoly(NumPoints: word; var PolyPoints) .

Вычерчивает ломаную по заданным координатам.


Процедура

Ellipse(X,Y : integer; StAngle, EndAngle : word;XRadius, YRadius : word) .

Вычерчивает дугу эллипса.


Процедура FillEllipse(X,Y : integer; XRadius, YRadius : word) .

Обводит линией и штрихует эллипс.


Процедура FillPoly(NumPoints : word; var PolyPoints) .

Обводит линией и штрихует замкнутый многоугольник.


Процедура FloodFill(X,Y : integer; Border : word) .

Штрихует произвольную замкнутую фигуру.


Процедура GetArcCoords(var ArcCoords : ArcCoordsType) .

Возвращает координаты центра, начала и конца дуги.


Процедура GetAspectRatio( var Xasp, Yasp : word) .

Возвращает два числа, позволяющих оценить отношение сторон

графического экрана.


Функция GetBkColor : word .

Возвращает значение типа word, содержащее текущий цвет фона.


Функция GetColor : word .

Возвращает текущий цвет , установленный процедурой SetColor.


Процедура GetDefaultPalette ( var Pal : PaletteType) .

Возвращает структуру палитры, устанавливаемой по умолчанию.


Функция GetDriveName : string .

Возвращает имя загруженного графического драйвера.


Процедура GetFillPattern(var FillPattern : FillPatternType).

Возвращает образец закраски, установленный процедурой SetFillPattern.


Процедура GetFillSettings(var FillInfo : FillSettingsType).

Возвращает образец и цвет штриховки.


Функция GetGraphMode : integer .

Возвращает код установленного режима работы графического адаптера.


Процедура GetImage(x1,y1,x2,y2 : integer; var BitMap) .

Копирует в память часть графического экрана.

Процедура GetLineSettings(var LineInfo : LineSettingsType) .

Возвращает текущий стиль линий.


Функция GetMaxColor : word .

Возвращает максимальный доступный код цвета.


Функция GetMaxMode : integer .

Возвращает количество возможных режимов работы графического адаптера.


Функция GetMaxX : integer .

Возвращает максимальную горизонтальную координату экрана.


Функция GetMaxY : integer .

Возвращает максимальную вертикальную координату экрана.


Функция GetModeName(ModeNumder : word) : string .

Возвращает имя текущего режима работы графического адаптера.


Процедура

GetModeRange(GraphDriver : integer;var LoMode, HiMode : integer) .

Возвращает диапазон режимов работы заданного графического драйвера.


Процедура GetPalette(var Palette : PaletteType) .

Возвращает размер и цвета текущей палитры.


Функция GetPaletteSize : integer .

Возвращает размер текущей палитры.


Функция GetPixel(X, Y : integer) : word .

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


Процедура GetTextSettings(var TextInfo : TextSettingsType) .

Возвращает текущий стиль и выравнивание текста.


Процедура GetViewSettings(var ViewPort : ViewPortType) .

Возвращает координаты и признак отсечки текущего графического окна.


Функция GetX : integer .

Возвращает горизонтальную координату графического указателя.


Функция GetY : integer .

Возвращает вертикальную координату графического указателя.


Процедура GraphDefaults .

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


Функция GraphResult : integer .

Возвращает код ошибки для графического режима работы экрана.

Процедура Line(x1,y1,x2,y2 : integer) .

Вычерчивает линию между двумя произвольными точками.


Процедура LineRel(DX,DY : integer) .

Вычерчивает линию от текущего положения указателя к точке, заданной приращением координат.


Процедура LineTo(X,Y : integer) .

Вычерчивает линию от текущего положения указателя к нужной точке.


Процедура MoveRel(DX,DY : integer) .

Переводит графический указатель в точку,заданную приращением координат.


Процедура MoveTo(X,Y : integer) .

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


Процедура OutText(TextString : string) .

Выводит текстовую строку на графический экран.


Процедура OutText(X,Y : integer; TextString : string) .

Выводит текстовую строку в заданное место графического экрана.


Процедура PieSlice(X,Y : integer; StAngle, EndAngle, Radius : word) .

Вычерчивает и штрихует сектор окружности.


Процедура PutImage(X, Y : integer; var BitMap, BitBit : word) .

Выводит на графический экран копию фрагмента изображения.


Процедура PutPixel(X, Y : integer; Color : word) .

Устанавливает новый цвет пикселя.


Процедура Rectangle(x1, y1, x2, y2 : integer) .

Вычерчивает прямоугольник.


Процедура RestoreCrtMode .

Осуществляет перевод экрана в текстовый режим.


Процедура Sector(X, Y : integer; StAngle, EndAngle, XRadius,YRadius : word).

Вычерчивает и штрихует сектор эллипса.


Процедура SetActivePage(Page : word) .

Устанавливает активную страницу графического экрана.


Процедура SetAllPalette(var Palette) .

Изменяет все цвета палитры.


Процедура SetAspectRatio(Xasp, Yasp : word) .

Изменяет масштабный коэффициент отношения сторон графического экрана.


Процедура SetBkColor(Color : word) .

Изменяет цвет фона графического экрана.


Процедура SetFillPattern(Pattern : FillPatternType; Color : word) .

Устанавливает произвольный образец штриховки.


Процедура SetFillStyle(Pattern, Color : word) .

Устанавливает образец и цвет штриховки.


Процедура SetGraphBufSize(Size : word) .

Изменяет размер внутреннего буфера, используемого в процедуре штриховки (заполнения) замкнутой фигуры. По умолчанию размер этого буфера составляет 4 Кбайта, что достаточно для штриховки многоугольника с 650 вершинами. Процедуру необходимо вызывать до инициации графического режима.


Процедура SetGraphMode(Mode : integer) .

Устанавливает новый режим работы графического адаптера.


Процедура SetLineStyle(LineStyle, Pattern, Thickness : word) .

Устанавливает стиль линий.


Процедура SetPalette(ColorNum : word; Color : shortint) .

Устанавливает один из цветов палитры.


Процедура SetRGBPalette(ColorNum, Red, Green, Blue : integer) .

Устанавливает цветовую гамму для дисплея VGA и IBM-8514.


Процедура SetTextJustify(Horiz, Wert : word) .

Осуществляет горизонтальное и вертикальное выравнивание текста.


Процедура SetTextStyle(Font,Direction, CharSize : word) .

Устанавливает стиль текста.


Процедура SetUserCharSize(MultX, DivX, MultY, DivY) .

Устанавливает пропорции выводимых символов.


Процедура SetViewPort(x1, y1, x2, y2 : integer; ClipOn : Boolean) .

Устанавливает графическое окно.


Процедура SetVisualPage(PageNo : word) .

Делает видимой нужную страницу графического экрана.


Процедура SetWriteMode(WriteMode : integer).

Устанавливает способ взаимодействия вычерчиваемых линий с уже существующим на экране изображением.


Функция TextHeight(Text : string) : word .

Возвращает максимальную высоту символов в пикселях.


Функция TextWidth(Text : string) : word .

Возвращает длину символьной строки в пикселях.


* * *





'
еще рефераты
Еще работы по разное