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

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

Содержание


Работа №2 Использование графических средств компьютера для отображения результатов расчетов
1. Графическая библиотека Turbo-Pascal. Экранные координаты. Программирование перехода в графический режим
2. Управление цветом.
3. Вывод точек, линий, прямоугольников
4. Вывод текста в графическом режиме
5. Пример законченной программы построения графиков функций
В а р и а н т 1
В а р и а н т 2
В а р и а н т 3
В а р и а н т 4
В а р и а н т 5
В а р и а н т 6
Приложение Полный перечень процедур и функций стандартного модуля Graph
Подобный материал:
  1   2   3   4   5



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



ЛАБОРАТОРИЯ


КАФЕДРА


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



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


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



ФИЗИКИ




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


ДЛЯ ФИЗИКОВ


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

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


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


Р а б о т а 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. Она прекращает работу видеоадаптера в графическом режиме и восстанавливает текстовый режим.