Автор работы: Пользователь скрыл имя, 24 Октября 2014 в 02:15, курсовая работа
В данной курсовой работе рассматривается тема «Графика в PascalАВС». Тема курсовой работы выбрана не случайно, так как графика является довольно интересной областью программирования. Данная курсовая работа показывает, что можно создавать простые рисунки не только в графических программах, таких как Paint, AdobePhotoshop, CorelDraw, но и в среде языка программирования PascalАВС.
ВВЕДЕНИЕ 3
ГЛАВА I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 4
1.1 Краткая история становления языка программирования Pascal. 4
1.2 Основные понятия графики 6
1.3 Основные функции и процедуры работы с графикой в PascalABC 7
ГЛАВА II. СОЗДАНИЕ ГРАФИЧЕСКОГО ПРОЕКТА 13
2.1 Понятие "фрактал" 13
2.2 Реализация треугольника 15
2.3 Построенияфрактала "Дерево" 19
ЗАКЛЮЧЕНИЕ 21
СПИСОК ЛИТЕРАТУРЫ 22
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «ВИТЕБСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ П.М. МАШЕРОВА»
Факультет математический _
Кафедра информатики и информационных технологий_
КУРСОВАЯ РАБОТА
по дисциплине Технология программирования и методы алгоритмизации
Графика в PascalABC
Кралько Виктория Анатольевна,
(фамилия, имя, отчество студента (слушателя)
3 курс, 33 группа
(курс, группа)
Руководитель:
Кузьмичёв Денис Романович,
(фамилия, имя, отчество)
Преподаватель кафедры
информатики и ИТ
(должность, ученая степень, звание)
Витебск, 2013
СОДЕРЖАНИЕ
В данной курсовой работе рассматривается тема «Графика в PascalАВС». Тема курсовой работы выбрана не случайно, так как графика является довольно интересной областью программирования. Данная курсовая работа показывает, что можно создавать простые рисунки не только в графических программах, таких как Paint, Adobe Photoshop, Corel Draw, но и в среде языка программирования PascalАВС.
Целью курсовой работы является разработка графического проекта в среде программирования PascalАВС. Графические возможности PascalАВС будут реализованы на примере изображения фрактального дерева.
Задачи:
1)Познакомиться с историей
становления языка программирования PascalАВС.
2)Изучить основные понятия графики, функции и процедуры работы с графикой PascalАВС.
3) Освоить навыки создания графических изображений в среде программирования PascalАВС
4)Создать графическое
изображение в среде
с использованием фракталов.
Курсовая работа состоит из двух основных разделов:
В первом разделе описывается история языка PascalАВС, основные понятия графики, работа с графикой в PascalАВС, основные команды построения изображения, графические модули, дается основная структура программы. Во втором разделе описываются этапы создания фрактального дерева, дается краткое изложение основных элементов рисунка.
Текст созданной программы
Pascal ABC разработан в 2002 году сотрудниками факультета математики, механики и компьютерных наук Южного федерального университета (Ростов-на-Дону, Россия) во главе с С.С. Михалковичем. Целью авторов было создание обучающей среды программирования, более современной, чем Borland Pascal и Turbo Pascal, более простой для изучения, чем Borland Delphi, но в то же время близкой к стандартным компиляторам языка.
Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Некоторые языковые конструкции в Pascal ABC допускают, наряду с основным, упрощенное использование, что позволяет использовать их на ранних этапах обучения. Например, в модулях может отсутствовать разделение на секцию интерфейса и секцию реализации. В этом случае модули устроены практически так же, как и основная программа, что позволяет приступить к их изучению параллельно с темой "Процедуры и функции". Тела методов можно определять непосредственно внутри классов (в стиле Java и C#), что позволяет создавать классы практически сразу после изучения записей, процедур и функций.
Ряд модулей системы программирования Pascal ABC специально создавался для учебных целей:
В языке Pascal ABC имеются арифметические операции с типизированными указателями (в стиле языка C), а также тип complex, предназначенный для работы с комплексными числами.
Компилятор Pascal ABC является компилятором переднего плана (front-end). Это означает, что он не генерирует исполняемый код в виде .exe-файла, а создает в результате компиляции дерево программы в памяти, которое затем выполняется с помощью встроенного интерпретатора. В итоге скорость работы программы примерно в 20 раз медленнее скорости работы этой же программы, откомпилированной в среде Borland Pascal, и в 50 раз медленнее этой программы, откомпилированной в среде Borland Delphi.
В системе Pascal ABC ученик может выполнять так называемые проверяемые задания, обеспечивающие постановку задачи со случайными исходными данными, контроль операций ввода-вывода, проверку правильности решения, а также ведение протокола решения задач.
Экраны цветных мониторов состоят
из прямоугольной решётки точек(пикселей),светящихся
разным цветом. Каждый цветной пиксель
образован тремя более мелкими по площади
участками красного, зелёного и синего
цветов. При свечении этих участков с разной
интенсивностью цвета смешиваются, создавая
элементы изображения различных оттенков
и яркости.
Важной характеристикой растра является
его расширение. Расширение
экрана-это количество точек(пикселей)
на единицу длины. Чем это число выше, тем
более мелкими являются сами пиксели,
и, соответственно, более плотно они располагаются
на плоскости, что и приводит к тому, что
мы воспринимаем их как единое, цельное
изображение. Из года в год разрешающая
способность принтеров, мониторов, сканеров
и .т.п. растёт.
Для использования графических возможностей
языка Паскаль необходимо в блоке описания
uses подключить графический модуль Graph
.Модуль содержит набор графических функций
и процедур, основные из них которые рассмотрены
ниже.
Положение каждой точки изображения задано
координатами Х и У. Координаты- целые
числа, они задают номера колонки и строки
и не зависят от физического размера экрана.
Оси координат направлены следующим образом:
горизонтальная ось Х направлена слева
направо; вертикальная ось У направлена
сверху вниз; верхний левый угол имеет
координаты(0, 0).
Рисунок 1.1
Для рисования в Pascal ABC необходимо
запустить специальный модуль GraphABC, использование
специальных функций и процедур помогут
нарисовать точку, отрезок, окружность,
прямоугольник и другие фигуры:
SetPixel(x,y,color) - Закрашивает один пиксел с
координатами (x,y) цветом color
LineTo(x,y) - рисует отрезок от текущего положения
пера до точки (x,y); координаты пера при
этом также становятся равными (x,y).
Line(x1,y1,x2,y2) - рисует отрезок с началом в
точке (x1,y1) и концом в точке (x2,y2).
SetPenColor(color) - устанавливает цвет пера, задаваемый
параметром color.
SetPenWidth(n) - устанавливает ширину (толщину)
пера, равную n пикселям.
Rectangle(x1,y1,x2,y2) - рисует прямоугольник, заданный
координатами противоположных вершин
(x1,y1) и (x2,y2).
FloodFill(x,y,color) - заливает область одного цвета
цветом color, начиная с точки (x,y).
SetBrushColor(color) - устанавливает цвет кисти.
Заливка кистью распространяется на замкнутый
контур, описание которого следует за
процедурой установки цвета кисти.
Ellipse(x1,y1,x2,y2) - рисует эллипс, заданный своим
описанным прямоугольником с координатами
противоположных вершин (x1,y1) и (x2,y2).
Circle(x,y,r) - рисует окружность с центром в
точке (x,y) и радиусом r.
Arc(x,y,r,a1,a2) - Рисует дугу окружности с центром
в точке (x,y) и радиусом r, заключенной между
двумя лучами, образующими углы a1 и a2 с
осью OX (a1 и a2 – вещественные, задаются
в градусах и отсчитываются против часовой
стрелки).
Цвета в PascalABC:
clBlack черный
clPurple фиолетовый
clWhite белый
clMaroon темно-красный
clRed красный
clNavy темно-синий
clGreen зеленый
clBrown коричневый
clBlue синий
clSkyBlue голубой
clYellow желтый
clCream кремовый
clAqua бирюзовый
clOlive оливковый
clFuchsia сиреневый
clTeal сине-зеленый
clGray темно-серый
clLime ярко-зеленый
clMoneyGreen цвет зеленых денег
clLtGray светло-серый
clDkGray темно-серый
clMedGray серый
clSilver серебряный
Функции для работы с цветом:
Тип цвета Color является синонимом System.Drawing.Color.
function RGB(r,g,b: byte): Color; Возвращает цвет, который содержит красную (r), зеленую (g) и синюю (b) составляющие (r,g и b - в диапазоне от 0 до 255)
function ARGB(a,r,g,b: byte): Color; Возвращает цвет, который содержит красную (r), зеленую (g) и синюю (b) составляющие и прозрачность (a) (a,r,g,b - в диапазоне от 0 до 255)
function RedColor(r: byte): Color; Возвращает красный цвет с интенсивностью r (r - в диапазоне от 0 до 255)
function GreenColor(g: byte): Color; Возвращает зеленый цвет с интенсивностью g (g - в диапазоне от 0 до 255)
function BlueColor(b: byte): Color; Возвращает синий цвет с интенсивностью b (b - в диапазоне от 0 до 255)
function clRandom: Color; Возвращает случайный цвет
function GetRed(c: Color): integer;Возвращает красную составляющую цвета
function GetGreen(c: Color): integer; Возвращает зеленую составляющую цвета
function GetBlue(c: Color): integer; Возвращает синюю составляющую цвета.
Свойства:
property Width: integer;Ширина рисунка.
property Height: integer; Высота рисунка.
property Transparent: boolean; Прозрачность
рисунка. Если Transparent=
property NeedDestroy: boolean; Определяет, должен ли рисунок разрушаться при вызове деструктора и метода Load. NeedDestroy обычно устанавливается в False, если несколько объектов классаPicture разделяют один рисунок.
Методы:
procedure Load(fname: string);
Загружает рисунок из файла с именем fname. Если NeedDestroy установлено в True, то рисунок, находившийся ранее в объекте Picture, разрушается. Рисунок с именем fname ищется вначале в текущем каталоге, а затем в подкаталоге Media\Images\ каталога программы PascalABC.exe.
procedure Save(fname: string);
Сохраняет рисунок в файле с именем fname. Формат рисунка устанавливается расширением имени файла. Допустимые расширения: .bmp, .gif, .jpg, .png.
function Handle: integer;
Возвращает описатель рисунка.
procedure Draw(x,y: integer);
Выводит рисунок в позицию (x,y) графического окна.
procedure Draw(x,y,w,h: integer);
Выводит рисунок в позицию (x,y) графического окна, масштабируя его к размеру (w,h). Если w<0 или h<0, то выводится зеркальное отражение рисунка относительно вертикалоной или горизонтальной оси соответственно.
procedure Draw(x,y: integer; r: Rect);
Выводит часть рисунка, заключенную в прямоугольнике r, в позицию (x,y) графического окна.
procedure Draw(x,y,w,h: integer; src: Rect);
Выводит часть рисунка, заключенную в прямоугольнике r, в позицию (x,y) графического окна, масштабируя ее к размеру (w,h).
procedure CopyRect(dest: Rect; p: Picture; src: Rect);
Копирует в прямоугольник dest текущего рисунка часть рисунка p, заключенную в прямоугольнике src.
procedure FlipHorizontal;
Зеркально отображает картинку относительно горизонтальной оси симметрии.
procedure FlipVertical;
Рисование графических объектов
Рисование графических объектов осуществляется пером и кистью. Линии,
ограничивающие объекты, рисуются пером.