Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
02.05.2014
Размер:
214.02 Кб
Скачать

Министерство Образования Российской Федерации

Московский Государственный Индустриальный Университет

Филиал в г. Вязьме

Отчет по лабораторной работе № 11

Дисциплина: «Информатика и программирование»

Тема: «Программирование графики средствами языка Turbo Pascal 7.0»

Вариант: 5

Группа: 03Ид1

Студент: Афанасьев Виктор Валерьевич

Преподаватель: Соколова Н.В.

2003 г.

Лабораторная работа № 11

Тема: Программирование графики средствами языка Turbo Pascal 7.0

Цель: разработать программу на языке программирования Turbo Pascal 7.0 для решения следующей задачи.

Задание: изобразить на экране две спирали которые завинчиваются навстречу и пересекаются.

Краткие теоретические сведения:

Графический режим.

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

Различие между текстовым и графическим режимами работы монитора заключается в возможностях управления выводом визуальной информацию в текстовом режиме минимальным объектом, отображаемым на экране, является символ, алфавитно-цифровой или какой-либо иной. В графическом режиме минимальным объектом, выводом которого может управлять программист, является так называемый пиксель. Пиксель имеет меньшее размеры по сравнению с символом. Его геометрические размеры определяются разрешением монитора. Разрешение монитора обычно задается в виде rx x ry, где rx- количество пикселов на экране по горизонтали, а ry-количество пикселов по вертикали. На практике используются не произвольные, а некоторые определенные значения разрешения. Такими разрешениями являются, например, 320x200, 640x480, 800x600, 1024x768, 1280x1024 и т. д.

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

Можно рассуждать и геометрически. Размер экрана - величина фиксированная. Если величина диагонали экрана 14 дюймов, его геометрические размеры составляют примерно 28x20 см. размер пиксела можно приблизительно получить, разделив размер экрана на разрешение. Геометрические размеры пиксела определяют степень детализации изображения, его качество. Имеется, правда, минимально допустимое значение размера пиксела, определяемое техническими параметрами монитора.

Графические координаты.

Графические координаты задают положение точки на экране дисплея. Поскольку минимальным элементом, к которому имеет доступ программист, является пиксел, естественно в качестве графических координат использовать порядковые номера пикселов. Допустимый диапазон изменения графических координат составляет [0, rx-1] для x-координаты и [0,ry-1] для y-координаты. Точкой отсчета является верхний левый угол экрана. Значение x-координаты отсчитываются слева направо, а y-координаты-сверху вниз.

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

  1. графические координаты принимают только целочисленные значения.

  2. графические координаты принимают значения, ограниченные как снизу (нулевым значением), так и сверху (значением разрешения).

  3. графическая координата y отсчитывается сверху вниз.

Инициализация графического режима.

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

Uses Graph;

приведенный после заголовка программы или в общем случае списке подключаемых модулей:

Uses Graph, <другие используемые модули>;

Модули, указанные в разделе uses, должны находится или в рабочем каталоге, или каталоге указанным в строке UNITS окна ввода Options / Directories. Допустим, модуль graph.tpu содержится в подкаталоге

D:\BP\UNITS\,

тогда именно эту строку следует занести в поле ввода UNITS, не забыв сохранить настройки. Если этого не сделать, то при компиляции программы проявится сообщение: Error 15: File not found (Graph.tpu).

Кроме модуля Graph, с системой Borland Pascal поставляется устаревшей модуль Graph3. процедуры библиотеки Graph3 во многом аналогичны процедурам библиотеки Graph, существенное отличие в том, что в модуле Graph3 имеются процедуры для работы с так называемой «черепаховой графикой», которая в свое время была популярна, особенно при изучении информатики в школах.

Взаимодействие программы и видеосистемы в графических режимах обеспечивают драйверы, в которых применяется графический интерфейс фирмы Borland-Borland Graphics Interface(BGI). Драйверы, поставляемые с

Borland Pascal, собраны в файлах, имеющих расширение BGI: CGA.BGI, EGAVGA.BGI, HERC.BGI, IBM8514.BGI, ATT.BGI, PC3270.BGI и др. каждый из этих драйверов обеспечивает работу в нескольких графических режимах.

В Паскале предусмотрена процедура InitGraph(var GraphDriver, GraphMode:Integer; Path:String), которая переключает компьютер в графический режим. Аргументы GraphDriver и GraphMode имеют целочисленный тип и определяют графический режим. Также в графическом режиме довольно много процедур и функций.

Основные процедуры и функции:

Процедура PutPixel(X,Y: integer; Color: word) выводит на экран точку с заданными координатами.

Процедура Line вычерчивает линию с указанными координатами начала и конца. Заголовок: Procedure Line (X1,Y1,X2,Y2: integer).

Процедура Rectangle вычерчивает прямоугольник с указанными координатами углов. Заголовок: Procedure Rectangle (X1,Y1,X2,Y2: Integer).

Процедура Circle вычерчивает окружность. Заголовок: Procedure Circle (X,Y: integer; R: word).

Представление алгоритма в виде Паскаль-программы

program lab_11;

uses crt,graph;

var

y,x,mode,driver:integer;

p,i:real;

begin

driver:=detect;

initgraph(driver,mode,'C:\tp\bgi');

i:=0;

repeat

i:=i+0.0001;

p:=1/i*i*i;

x:=round(5*p*cos(i));

y:=round(5*p*sin(i));

putpixel(320+x,240+y,2);

until i>20;

readkey;

i:=0;

repeat

i:=i+0.0001;

p:=1/i*i*i;

x:=round(5*p*cos(i));

y:=round(5*p*sin(i));

putpixel(320-x,240+y,3);

until i>20;

readkey;

end.

Тестовый пример

Выполнил:_________________

Защитил:___________________

Соседние файлы в папке Лабораторная работа1