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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.12.2014
Размер файла 230,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

Введение

Глава 1. Теоритическая часть. Функции и процедуры

1.1 Модуль Graph

1.2 Координаты, окна, страницы

1.3 Линии и точки

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

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

1.6 Краски, палитры, заполнения

1.7 Сохранение и выдача изображений

1.8 Комбинированный алгоритм

Глава 2. Практическая часть

2.1 Примеры по работе

2.2 Скриншоты программ

Заключение

Список использованной литературы

Введение

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

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

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

Глава 1. Теоритическая часть. Функции и процедуры

1.1 Модуль Graph

Модуль Graph Турбо Паскаля содержит около пятидесяти различных процедур. и функции, предназначенных для работы с графическим экраном. В этом же модуле некоторые встроенные константы, которые могут быть использованы в Графических программах. Для того чтобы воспользоваться всеми возможностями модуля Graph, в начале программы( после заголовка)необходимо поместить оператор использования Uses Graph;

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

Функция GraphErrorMsg. Возвращает значение типа String, в котором по указанному коду ошибки дается соответствующее текстовое сообщение.

Fanctional GraphErrorMsg (Code: Integer): String;

Здесь Code - код ошибки, возвращаемый функцией GraphResult.

Функция CloseGraph. Завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана.

1.2 Координаты, окна, страницы

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

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

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

Функции GetMaxX и GetMaxY.

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

Процедура SetViewPort. Устанавливает прямоугольное окно на графическом экране.

Заголовок:

Procedure SetVievPort(X1, Y1, X2, Y2: Integer; ClipOn: Boolean);

Здесь X1..Y2 - координаты левого верхнего(Х1,Y1) и правого нижнего(X2,Y2) углов окна; ClipOn - выражение типа Boolean, определяющее «отсечку» не умещающихся в окне элементов изображения.

Процедура ClearDevice. Очищает графический экран.

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

1.3 Линии и точки

Процедура PutPixel. Выводит заданным цветом точку по указанным координатам.

Procedure PutPixel(X, Y Inteder; Color word);

Здесь X, Y - координаты точки; Color - цвет точки.

Процедура Line. Вычерчивает линию с указанными координатами начала и конца.

Procedure Line(X1, Y1, X2, Y2: Integer);

Здесь X1..Y1 - координаты начала(X1,Y1) и конца(X2,Y2) линии. Линия вычерчивается текущим стилем и текущим цветом.

Процедура SetLineStyle. Устанавливает новый стиль вычерчиваемых линий.

Procedure SetLineStyle(Type, Pattern, Thick: Word);

Здесь Type, Pattern, Thick - соответственно тип, образец и толщина линии. Тип линии может быть создан с помощью одной из следующих констант:

Const

SolidLn= 0; (Сплошная линия)

DottedLn= 1;(Точечная линия)

CenterLn= 2;(Штрих-пунктирная линия)

DashedLn= 3 (Пунктирная линия)

UserBitLn= 4 (Узор линии,определяемый пользователем).

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

Процедура Rectangle. Вычерчивает прямоугольник с указанными координатами углов.

Procedure Rectangle(X1, Y1, X2, Y2: Integer);

Здесь X1..Y2 - координаты левого верхнего угла(X1,Y1) и правого нижнего(X2,Y2) углов прямоугольника. Прямоугольник вычерчивается с использованием текущего цвета и текущего стиля линий.

1.5 Дуги, окружности, эллипсы

Процедура Circle. Вычерчивает окружность.

Procedure Circle(X, Y: Integer; R: Word);

Здесь X,Y -координаты центра; R - радиус в пикселях.

Окружность выводится текущим цветом.Толщина линии устанавливается текущим стилем, вид линии всегда SolidLn(Сплошная).

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

Процедура Arc. Чертит дугу окружности. Заголовок:

Procedure Arc(X, Y: Integer; BegA, EndA, R: Word);

Здесь X, -координаты центра;BegA, EndA -соответственно начальный и конечный углы дуги; R - радиус.

Углы описываются против часовой стрелки и указываются в градусах. Нулевой угол соответствует горизонтальному направлению вектора слева направо. Если задать значения начального угла 0 и конечного-359,то будет выведена полная окружность.

При вычерчивании дуги окружности используется те же соглашения относительно линии радиуса, что и в процедуре Circle.

Процедура Ellipse. Вычерчивает эллипсную дугу.

Procedure Ellipse(X, Y: Integer; BegA, EndA, Rx, RY: Word);

Здесь X,Y - координаты центра; BegA, EndA - соответственно начальный и конечный углы дуги; RX, RY - горизонтальный и вертикальный радиусы эллипса в пикселях.

При вычерчивании дуги эллипса используется те же соглашения относительно линии, что и в процедуре Circle, и те же соглашения относительно углов, что и в процедуре Arc. Если радиусы согласовать с учетом масштабного коэффициента GetAspectRatio, будут вычерчена правильная окружность.

1.6 Краски, палитры, заполнения

Процедура SetCOlor. Устанавливает текущий цвет для вводимых линий и символов.

Procedure SetColor(Color: Word);

Здесь Color - текущий цвет.

Процедура SetBkColor. Устанавливает цвет фона

Procedure SetBkColor (Color: Word);

Здесь Color - цвет фона.

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

Для GGA-адаптера в режиме высокого разрешения установка цвета фона изменяет цвет активных пикселей. Замечу, что после замены цвета фона на любой, отличный от 0 (Black) цвет. Вы не сможете более использовать цвет 0 как черный, он будет заменяться на цвет фона, т.к. процедуры модуля Graph интерпретируют цвет с номером 0 как цвет фона. Это означает, в частности, что Вы уже не сможете вернуть фону черный цвет!

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

Процедура SetFillStyle. Устанавливает стиль (тип и цвет).

Procedure SetFillStile(Fill, Color: Word);

Здесь Fill-тип заполнения;Color - цвет заполнения.

С помощью заполнения можно покрывать какие-либо фрагменты изображения периодически повторяющимся узором

Процедура FloodFill. Заполняет произвольную замкнутую фигуру, используя текущий стиль заполнения(узор и цвет)

Procedure FloodFill(X, Y: Integer; Border: Word)

Здесь X, Y-координаты любой точки внутри замкнутой фигуры; Border - цвет граничной линии. Если фигура не замкнута, заполнение «разольется по всему экрану.

1.7 Сохранение и выдача изображений

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

Function ImageSize(X1, Y2, X2, Y2: Integer): Word;

Здесь X1.Y2 - координаты левого верхнего(X1,Y1) и правого нижнего(X2,Y2) углов фрагмента изображения.

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

Procedure GetImage(X1, Y1, X2, Y2: Integer; var Buf);

Здесь X1.Y2 - координаты углов фрагмента изображения; Buf - переменная или участок кучи, куда будут помещена копия видеопамяти с фрагментом изображения.

Размер Buf должен быть не меньше значения, возвращаемого функцией ImageSize с теми же координатами X1..Y2.

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

Procedure PutImage(X, Y: Integer; var Buf; Mode: Word);

Здесь X, Y -координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения; Buf - переменная или участок кучи, откуда берется изображение; Mode - способ копирования.

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

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

1.8 Комбинированный алгоритм

Комбинированный алгоритм позволяет найти оптимальный путь, не строя граф и не вычисляя все длины дуг этого графа. Определяются только те длины дуг, которые в процессе расчета принимают нулевые значения. В данном примере для поиска оптимального пути не считается только дуга / 2в - Но для: расчета по объекту, имеющему до 50 скважин и более, эффективность предложенного метода более значима.

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

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

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

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

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

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

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

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

При конструировании комбинированных алгоритмов поиска предпочтение следует отдавать комбинациям методов, которые не требуют

Глава 2. Практическая часть

2.1 Примеры по работе

Пример к разделу (1.3 Линии и точки.)

Program P5;

Uses graph; {подключение граф.модуля}

Var gd,gm:integer;

Begin

gd:=detect;{определение граф. драйвера}

Int Graph(gd,gm,' `);{инициализация

графики}

Line(0, round(GetMaxY/2), GetMaxX,

Round(GetMaxY/2));{гориз. лин.}

Line(round(GetMaxX/2), 0,

Round(GetMaxX/2), GetMaxY);

{вертик. лин.}

Readln; {пустой ввод}

CloseGraph; {закрытие графики}

End.

Пример к разделу (1.4.Многоугольники)

Program DemoFillPoly;

uses graph,crt;

const star: array [1..18] of integer =

(75,0,100,50,150,75,100,100,75,

150,50,100,0,75,50,50,75,0);

{координаты вершин звезды}

var Gd,Gm:integer;

begin

Gd:=detect;

initGraph (Gd,Gm,'');

cleardevice;

SetFillStyle (1,green); {установка штриховки и цвета}

FillPoly (9,star); {9=кол-во пересечений + 1}

readln;

closegraph;

end.

Пример к разделу (1.5 Дуги, окружности, эллипсы)

procedure MyCircle(X, Y, R: integer);

var i, j: integer;

begin

for i:=1 to R-1 do

begin j:=r;

while (j*j+i*i)>(R*R) do Dec(j);

begin

PutPixel(x+i, y+j);

PutPixel(x+i, y-j);

PutPixel(x-i, y+j);

PutPixel(x-i, y-j);

PutPixel(x+j, y+i);

PutPixel(x+j, y-i);

PutPixel(x-j, y+i);

PutPixel(x-j, y-i)

end ;

end.

2.2 Скриншоты программ

Построение пятиугольной звезды.

Заключение

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

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

Список использованной литературы

ь Информатика (Базовый курс) С.В. Симонович, СПб: Питер, 2001г.

ь Основы языка Turbo Pascal (учебный курс), П.И. Рудаков, М.А. Федотов, Москва: Радио и Связь, 2000г.

ь Программирования в задачах и примерах, А.В. Милов, Харьков: ФОЛИО, 2002г.

ь Программирование. С. Симонович, Г. Евсеев, Москва: АСТ - ПРЕСС книга 2000г.

ь Практика программирования, Ю. Кетков, А. Кетков, СПб: БХБ/ Петербург, 2002г.

ь rsc-team.ru/bk/index.pl?rzd=2&group=lection&ind=21

ь design-planet.narod.ru

Размещено на Allbest.ru

...

Подобные документы

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

    реферат [109,3 K], добавлен 28.04.2010

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

    реферат [20,0 K], добавлен 08.02.2012

  • Особенности использования графического режима в среде Турбо Паскаль. Типы драйверов. Инициализация графики. Построение изображения на экране. Графические примитивы и работа с текстом. Разработка и реализация программ в среде Турбо Паскаль "Графика".

    курсовая работа [1,2 M], добавлен 26.09.2014

  • Группы и назначение алгоритмов машинной графики верхнего и нижнего уровня. Учет свойств поверхности тела. Уравнения линий, эллипсов. Построение окружностей аппроксимацией отрезками. Отсечение нелицевых граней. Принципы построения полутоновых изображений.

    презентация [10,4 K], добавлен 14.08.2013

  • Использование нестандартных функций и подпрограмм (процедур) для составления алгоритмов вычислений. Программы для вычисления значение корней нелинейного уравнения по методу половинного деления. Составление алгоритма операций над матрицами и интегралами.

    курсовая работа [580,0 K], добавлен 23.08.2015

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

    курсовая работа [1,8 M], добавлен 17.06.2013

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

    реферат [18,6 K], добавлен 01.04.2010

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

    лекция [55,7 K], добавлен 21.05.2009

  • Окна Турбо отладчика, меню View, Module, Wathes, Breakpoints, Stack, Log. Окно сообщений Windows (Windows Messages). Подготовка программ Турбо Ассемблера. Команды, доступные из основного меню. Меню Ё (системное меню). Параметры командной строки.

    доклад [21,7 K], добавлен 22.09.2008

  • Мультимодульная программа расчёта и построения графиков переходного процесса в электрической цепи, ее процедуры и функции. Распечатка текста и графики процесса, построенные с использованием стандартных модулей Турбо Паскаля CRT и GRAPH и Microsoft Excel.

    курсовая работа [880,7 K], добавлен 07.12.2011

  • Характеристика мови Turbo Pascal. Опис деяких графічних процедур і функцій модуля Graph. Робота в графічному режимі. Процедури, опції модуля CRT. Створення програми розв'язку системи нерівностей з двома змінними в графічному режимі Турбо Паскаля.

    курсовая работа [35,0 K], добавлен 24.02.2011

  • Глобальные системы координат GDI. Отображение основных графических объектов. Основные и дополнительные средства для рисования линий. Растровые изображения и метафайлы. Обзор и создание зависимых и независимых от графического устройства битмапов.

    лекция [498,8 K], добавлен 24.06.2009

  • Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.

    дипломная работа [1,0 M], добавлен 16.06.2013

  • Создание простейших рисунков, закраска объектов в CorelDraw. Работа с текстом в графических объектах в программе CorelDRAW. Использование кривых линий и ломаных. Упорядочивание, выравнивание и группировка объектов. Использование графических эффектов.

    практическая работа [1,5 M], добавлен 19.04.2012

  • Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.

    отчет по практике [913,8 K], добавлен 21.07.2012

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

    курсовая работа [1,6 M], добавлен 04.06.2013

  • Использование рекурсии в предметных областях. Рекурсивные процедуры и функции в программировании. Создание алгоритмов для рисования графических изображений с использованием рекурсии в среде программирования Pascal ABC. Примеры рекурсии в графике.

    творческая работа [6,7 M], добавлен 01.02.2014

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

    презентация [361,6 K], добавлен 14.08.2013

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

    курсовая работа [432,2 K], добавлен 16.01.2013

  • История появления эволюционных алгоритмов. Нейрокомпьютерные исследования в России. Реализация генетических алгоритмов. Расчет эффективности процедур поиска конкурирующей процедуры. Schema и теорема шим. Примеры использования нейросетевых технологий.

    курсовая работа [43,0 K], добавлен 20.10.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.