Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Графика Турбо-Паскаля. Динамические изображения



КУРСОВАЯ РАБОТА

по дисциплине «Языки и системы программирования»

 

ТЕМА

Графика Турбо-Паскаля. Динамические изображения

 

БГТИ (филиал) ГОУ ВПО ОГУ 050501.65.5.2.09.9 ПЗ

 

 

Пояснительная записка

на 25 листах

 

 

Студентка группы: 07ПО

_______ Городецкая А.А.

          

Руководитель:

________Литвинова С.А.

            

 

Бузулук 2009

                                                                  Кафедра физики, информатики,

                                                              математики

Утверждаю

Зав. кафедрой

____________ Степунина О.А.

«__» ________________2009г.

 

 

Задание на курсовую работу

 

Студентке Городецкой Анне Александровне

1. Тема работы: Графика Турбо-Паскаля. Динамические изображения.

2. Срок сдачи студенткой законченной работы 10.12.2009г.

3. Перечень подлежащих разработке в работе вопросов:

1) Изучить теоретические основы рассматриваемого вопроса.

2) Разработать программу, реализующую движение по траектории графического объекта.

3) Разработка программы, реализующей перемещение по экрану окружности

4. Перечень графического материала: рисунок, таблицы

 

Дата выдачи задания: 31.10.2009г.

Руководитель: __________ Литвинова С.А.

Задание приняла к исполнению: «__» ___________ 2009г.

___________________  Городецкая А.А.

Содержание

Введение. 4

Раздел 1. Теоретическая часть. 5

1.1 Текстовый и графический режимы.. 5

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

1.2.1 Переключение между текстовым и графическим режимами. 7

1.3 Процедуры и функции. 10

1.3.1 Установка цвета линии, типа линии и закраски. 10

1.3.2 Точки на экране. 12

1.3.3 Линии и прямоугольники. 12

1.3.4 Окружности, эллипсы, дуги. 13

1.3.5 Сектор. 14

1.3.6 Многоугольники. 14

1.3.7 Вывод изображений в относительных координатах. 15

1.3.8 Работа с текстами в графическом режиме. 16

1.4 Графические окна. 18

1.5 Программирование движущихся объектов. 19

Раздел 2. Практическая часть. 20

2.1 Разработка программы, реализующей движение по траектории графического объекта. 20

2.2 Разработка программы, реализующей перемещение по экрану окружности 21

Заключение. 24

Список использованных источников. 25

 

 

Введение

 

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

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

USES Graph;

Инициализация графики производится с помощью процедуры InitGraph:

InitGraph(var d, t, ‘’)

Переменная d определяет тип видеоадаптера, t – тип графического режима. Если переменной d присвоить значение Detect, то Паскаль сам определит установленный видеоадаптер и установит самый мощный из имеющихся графический режим. Для проверки успешности инициализации графики можно использовать процедуру GraphResult. Если графика была успешно инициализирована, то процедура GraphResult вернет значение grOk.

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

Раздел 1. Теоретическая часть

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

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

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

Точкой отсчета является верхний левый угол экрана. Значения х-координаты отсчитываются слева направо, а y-координаты – сверху вниз. Последнее отличает графические координаты от обычных декартовых координат, принятых в математике, и служит не иссякающим источником ошибок для начинающего программиста.

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

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

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

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

Таким образом, декартовы координаты точки (x, y) для отображения ее на экране следует пересчитать в графические (xg, yg) по формулам

xg=|sx * x|+dx;

yg=ry-|sy * y|-dy,

где |x| - целая часть х; sx и sy – масштабные множители, выбираемые из условия

rx=|sx * xmax|+1,

ry=|sy * ymax|+1.

Здесь xmax и ymax – максимальные значения геометрических координат. Пересчет координаты y по такой же формуле, что и для х, привел бы к зеркально отраженному относительно горизонтальной линии изображению. Слагаемые dx и dy обеспечивают смещение изображения относительно левого верхнего угла экрана. Изображение будет смещено в центр экрана при

dx=|rx/2|,

dy=|ry/2|.

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

 

Процедуры и функции

Точки на экране

 

Процедура PutPixel

Рисует точку на экране в заданном месте заданным цветом.

Описание: PutPixel ( x, y, цвет).

Примечания: Выводит точку на экране с координатами ( x, y ) заданным цветом (параметр " цвет" ).

 

Линии и прямоугольники

 

Для вывода линий и прямоугольников в модуле Graph имеются несколько процедур.

Процедура Line

Функция: рисует прямую линию из точки ( x 1, y 1) в точку ( x 2, y 2).

Описание: Line ( x 1, y 1, x 2, y 2).

Примечания: Толщина и тип линии задаются процедурой SetLineStyle, а цвет линии устанавливается процедурой SetColor.

 

Процедура Rectangle

Функция: рисует прямоугольник, используя текущий цвет и тип строки.

Описание: Rectangle (x1, y1, x2, y2).

Примечания: Точка с координатами ( x 1, y 1) определяет верхний левый угол прямоугольника, а точка с координатами ( x 2, y 2) определяет нижний правый угол. При вычерчивании прямоугольника используются текущий тип строки и цвет, которые устанавливаются процедурой SetLineStyle.

 

Процедура Bar

Функция: рисует закрашенный прямоугольник.

Описание: Bar ( x 1, y 1, x 2, y 2).

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

 

Процедура Bar 3 D

Описание: Bar 3 D ( x 1, y 1, x 2, y 2: Integer, глубина: Word;, вершина: Boolean ).

Примечания: Рисуется заполненный трехмерный параллелепипед. При этом используется тип и цвет закраски, заданные с помощью процедур SetFillStyle и SetFillPattern. Трехмерный контур параллелепипеда вычерчивается тем цветом и типом линии, которые установлены процедурами SetLineStyle и SetColor, Параметр " глубина" представляет собой число элементов изображения, задающих глубину трехмерного контура. Если переменная, указанная в качестве параметра " вершина" принимает истинное значение (True), то для параллелепипеда рисуется трехмерная вершина, в противном случае вершина не рисуется (что позволяет рисовать несколько параллелепипедов, расположенных один на другом). Типичный параметр глубины можно вычислить, взяв за основу 25% ширины параллелепипеда:

Bar3D (x1, y1, x2, y2, (x2-x1) div 4, TopOn).

 

Окружности, эллипсы, дуги.

 

Процедура Circle

Функция: выводит окружность с центром в точке ( x, y ) и радиусом r.

Описание: Circle ( x, y, r ).

 

Процедура Arc

Функция: Рисует дугу окружности от начального угла до конечного угла.

Описание: Arc ( x, y, нач_угол, кон_угол, радиус).

Примечания: Рисует дугу окружности с центром ( x, y ) и радиусом " радиус". Дуга рисуется от начального угла (" нач_угол" ) до конечного угла (" кон_угол" ). При этом используется текущий цвет. Начальный угол, равный 00 и конечный угол, равный 3600, задают вычерчивание полной окружности.

 

Процудура Ellipse

Рисует эллиптическую дугу от начального угла до конечного угла, используя ( x, y ) в качестве точки центра.

Описание:  Ellipse ( x, y, нач_угол, кон_угол, радХ, рад Y ).

Примечания: Процедура рисует эллиптическую дугу, используя ( x, y ), как точку центра, а " радХ", " рад Y" – как горизоньальную и вертикальную оси. Дуга эллипса вычерчивается от начального угла (параметр " нач_угол" ) до конечного угла (параметр " кон_угол" ) текущим цветом. Углы для процедур Arc, Ellipse и PieSlice задаются по направлению против часовой стрелки. При этом значение (в градусах) 0 соответствует 3 часам, 90 градусов – 12 часам и т.д.

 

Процедура FillEllipse

Функция: рисует закрашенный эллипс.

Описание: FillEllipse ( x, y, X радиус, Y радиус).

Примечания: Используя точку с координатами ( x, y ) в качестве центра, а Храдиус и Y радиус – в качестве горизонтальной и вертикальной осей, рисует закрашенный эллипс.

 

Сектор

Процедура PieSlice

Функция: рисует и заполняет цветом сектор круга.

Описание: PieSlice ( x, y, нач_угол, кон_угол, радиус).

Примечания: ( x, y ) используются в качестве центра окружности, а сектор рисуется от начального угла (параметр " нач_угол" ) до конечного угла (" параметр " кон_угол" ). Контур сектора вычерчивается текущим цветом, а при закрашивании используются тип и цвет закраски, заданные процедурами SetFillStyle и SetFillPattern. Начальный угол, равный 0 градусов и конечный угол, равный 360 градусов, задают вычерчивание полной окружности.

 

Процедура Sector

Функция: вычерчивает и заполняет эллиптический сектор.

Описание: Sector ( x, y, нач_угол, кон_угол, Храдиус, Y радиус).

Примечания: Процедура использует ( x, y ) как точку центра, параметры " X радиус" и Y радиус" определяют горизонтальный и вертикальный радиусы. Сектор вычерчивается от начального угла (параметр " нач_угол" ) до конечного угла (" параметр " кон_угол" ). Сектор рисуется текущим цветом и закрашивается с использованием образца закраски и цвета, заданных с помощью процедур SetFillStyle и SetFillPattern. Если задан начальный угол 00 и конечный угол 3600, то будет нарисован и закрашен полный эллипс.

 

Многоугольники

 

Процедура DrawPoly

Функция: Используя текущий тип прямой и текущий цвет рисует контур многоугольника.

Описание: DrawPoly (числ_коозд, коорд_верш).

Примечания: Параметр " коорд_верш" является нетипизированным параметром, который содержит координаты каждого пересечения в многоугольнике. Параметр " числ_коорд" задает число координат в " коорд_верш". Координата состоит из двух слов: значения х и значения y.

Данная процедура использует текущий тип линии и текущий цвет. Заметим, что для вычерчивания замкнутой фигуры с n вершинами вы должны передать при обращении к процедуре DrawPoly n +1 координату, где координата вершины с номером n будет равна координате вершины с номером 1.

 

Процедура FillPoly

Функция: Заполняет многоугольник.

Описание: FillPolty (числ_коозд, коорд_верш).

Примечания: Параметр " коорд_верш" является нетипизированным параметром, который содержит координаты каждого пересечения сторон в многоугольнике. Параметр " числ_коорд" задает число координат в " коорд_верш". Координата состоит из двух слов: значения х и значения y.

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

 

Графические окна

 

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

Описание: SetViewPort ( x 1, y 1, x 2, y 2, Clip ).

Примечания: Точка ( x 1, y 1) задает верхний левый угол области просмотра, а точка с координатами ( x 2, y 2) определяет правый нижний угол области просмотра. Булевская переменная Clip определяет, будет ли изображение отсекаться текущими границами области просмотра. Определены следующие константы: ClipOn: = True; ClipOff: = False.

Процедура SetViewPort (0, 0, GetMaxX, GetMaxY, ClipOn ) всегда задает в качестве области просмотра все поле графического экрана.

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

 

Заключение

 

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

В данной курсовой работе были описаны различные процедуры и функции, предназначенные для создания графических объектов в Турбо Паскале.

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

КУРСОВАЯ РАБОТА

по дисциплине «Языки и системы программирования»

 

ТЕМА

Графика Турбо-Паскаля. Динамические изображения

 

БГТИ (филиал) ГОУ ВПО ОГУ 050501.65.5.2.09.9 ПЗ

 

 

Пояснительная записка

на 25 листах

 

 

Студентка группы: 07ПО

_______ Городецкая А.А.

          

Руководитель:

________Литвинова С.А.

            

 

Бузулук 2009

                                                                  Кафедра физики, информатики,

                                                              математики

Утверждаю

Зав. кафедрой

____________ Степунина О.А.

«__» ________________2009г.

 

 

Задание на курсовую работу

 

Студентке Городецкой Анне Александровне

1. Тема работы: Графика Турбо-Паскаля. Динамические изображения.

2. Срок сдачи студенткой законченной работы 10.12.2009г.

3. Перечень подлежащих разработке в работе вопросов:

1) Изучить теоретические основы рассматриваемого вопроса.

2) Разработать программу, реализующую движение по траектории графического объекта.

3) Разработка программы, реализующей перемещение по экрану окружности

4. Перечень графического материала: рисунок, таблицы

 

Дата выдачи задания: 31.10.2009г.

Руководитель: __________ Литвинова С.А.

Задание приняла к исполнению: «__» ___________ 2009г.

___________________  Городецкая А.А.

Содержание

Введение. 4

Раздел 1. Теоретическая часть. 5

1.1 Текстовый и графический режимы.. 5

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

1.2.1 Переключение между текстовым и графическим режимами. 7

1.3 Процедуры и функции. 10

1.3.1 Установка цвета линии, типа линии и закраски. 10

1.3.2 Точки на экране. 12

1.3.3 Линии и прямоугольники. 12

1.3.4 Окружности, эллипсы, дуги. 13

1.3.5 Сектор. 14

1.3.6 Многоугольники. 14

1.3.7 Вывод изображений в относительных координатах. 15

1.3.8 Работа с текстами в графическом режиме. 16

1.4 Графические окна. 18

1.5 Программирование движущихся объектов. 19

Раздел 2. Практическая часть. 20

2.1 Разработка программы, реализующей движение по траектории графического объекта. 20

2.2 Разработка программы, реализующей перемещение по экрану окружности 21

Заключение. 24

Список использованных источников. 25

 

 

Введение

 

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

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

USES Graph;

Инициализация графики производится с помощью процедуры InitGraph:

InitGraph(var d, t, ‘’)

Переменная d определяет тип видеоадаптера, t – тип графического режима. Если переменной d присвоить значение Detect, то Паскаль сам определит установленный видеоадаптер и установит самый мощный из имеющихся графический режим. Для проверки успешности инициализации графики можно использовать процедуру GraphResult. Если графика была успешно инициализирована, то процедура GraphResult вернет значение grOk.

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


Поделиться:



Последнее изменение этой страницы: 2020-02-16; Просмотров: 172; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.09 с.)
Главная | Случайная страница | Обратная связь