Создание графических объектов

КУРСОВОЙ ПРОЕКТ

по МДК 01.02. Р1. «Объектно-ориентированное программирование».

на тему

Графические возможности языка программирования Pascal.

Выполнил студент группы ПО-31___________________М. О. Антошкин

Руководитель курсового проекта____________________О. А. Комиссарова

Оценка:______________

Стерлитамак, 2014

СОДЕРЖАНИЕ

ВВЕДЕНИЕ. 3

I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. 4

Графические возможности языка Паскаль. 4

Установка графического режима работы.. 4

Использование цветов. 6

Создание графических объектов. 7

Установка стиля линии. 9

II. ПРАКТИЧЕСКАЯ ЧАСТЬ. 11

ВВЕДЕНИЕ

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

Чаще всего в учебных заведениях изучается процедурное программирование. А наиболее часто изучаемым в учебных заведениях языком программирования является Pascal.

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

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

Для достижения поставленной цели необходимо:

1.Изучить теоритический материал по данной теме.

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

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

4.Выполнить тестирование программного модуля.

5.Осуществить оптимизацию программного кода модуля.

I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Графические возможности языка Паскаль

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

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

Установка графического режима работы

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

InitGraph(var Driver, Mode:integer; Path:string),

где переменные Driver и Mode должны содержать тип графического драйвера и его режим работы. Допускается указать Driver=0 для автоматического определения данных параметров по результатам тестирования аппаратуры. Параметр Path определяет маршрут поиска файла графического адаптера.

Графические операторы языка Паскаль позволяют адресоваться к любому элементу (пикселю) графического окна и управлять светимостью этого элемента. Для указания пикселя используется следующая система координат: начало координат (0,0) располагается в левом верхнем углу экрана; горизонтальная координата Х увеличивается слева направо, вертикальная координата Y увеличивается сверху вниз. При стандартном графическом адаптере VGA (в режиме 640х480) правый нижний угол экрана имеет координаты (639, 479), а центр экрана - координаты (319, 239).

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

Пример 1

program pr1;

uses Graph; {Подключение графического модуля Graph}

var d, m: Integer;

begin

d:=0;

m:=0;

InitGraph(d, m,'d:\bp\bgi'); {Переход в графический режим. Строка d:\bp\bgi указывает путь размещения файла Graph.tpu для конкретного компьютера, на котором разрабатывалась данная программа}

Circle (319, 239, 100); {Рисование круга радиуса 100 с центром в середине экрана}

readln; {Оператор ввода, используемый в данном случае для задержки изображения на экране вплоть до нажатия на клавишу Enter}

CloseGraph; {Выход из графического режима}

Приведенная выше в примере 1 программа позволяет нарисовать круг радиуса 100 с центром в точке (319, 239). Т.к. данная программа не использует цветовые возможности графического режима, то рисование будет осуществляться цветами по умолчанию – белый рисунок на черном фоне.

Использование цветов

Язык программирования Паскаль поддерживает 16 основных цветов, обозначаемых соответственно номерами от 0 до 15 (см. таблицу 1).

Таблица 1

Константы цвета

Константа цвета Цвет Константа цвета Цвет
0 (Black) Черный 8 (DarkGray) Темносерый
1 (Blue) Синий 9 (LightBlue) Яркосиний
2 (Green) Зеленый 10 (LightGreen) Яркозеленый
3 (Cyan) Голубой 11 (LightCyan) Яркоголубой
4 (Red) Красный 12 (LightRed) Розовый
5 (Magenta) Фиолетовый 13 (LightMagenta) Малиновый
6 (Brown) Коричневый 14 (Yellow) Желтый
7 (LightGray) Светлосерый 15 (White) Белый

Основными графическими операторами по работе с цветами являются процедуры модуля GRAPH под именами SetBkColor (служит для установки цвета фона) и SetColor (для установки цвета рисования).

Формат данных операторов следующий:

SetBkColor (Color: word);

SetColor (Color: word),

где переменная Color, имеющая целочисленный тип word, служит для указания требуемого номера цвета.

Например, операторы SetBkColor (1); SetColor (14) позволяют установить режим рисования желтым цветом по синему фону.

Создание графических объектов

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

Rectangle(x1, y1, x2, y2: integer) - служит для рисования прямоугольников, задаваемых координатами двух своих противоположных углов;

Bar(x1, y1, x2, y2: integer) - служит для рисования заштрихованных прямоугольников, используя при этом текущий стиль и цвет штриховки;

SetFillStyle(Pattern, Color: word) – устанавливает образец штриховки и ее цвет, где переменная Pattern обозначает номер шаблона штриховки (см. таблицу 2), а Color – номер цвета штриховки (см. таблицу 1);

Circle(x, y: integer; r: word) – рисует окружность радиуса r с центром в точке (x, y);

Line(x1, y1, x2, y2: integer) – рисует линию от точки (x1, y1) до точки (x2, y2);

PieSlice(x, y: integer; StAngle, EndAngle, r:word) – рисует и заштриховывает сектор окружности радиусом r с центром в (x, y) от начального угла StAngle к конечному углу EndAngle. При этом используется текущий стиль и цвет штриховки (см. процедуру SetFillStyle);

PutPixel(x, y:integer; Color:word) – выводит на экран точку цвета Color с координатами (x, y);

OutTextXY(x, y:integer; TextString:string) – выводит техт TextString в заданное координатами (x, y) место экрана.

Таблица 2

Шаблоны штриховки

Номер Стиль штриховки Номер Стиль штриховки
Нет штриховки Наклонная влево
Сплошная (заливка) В клетку по образцу +++
Горизонтальными линиями В клетку по образцу ххх
Наклонная вправо Штриховка в мелкую клетку
Наклонная вправо толстыми линиями Редкими точками
Наклонная влево толстыми линиями Частыми точками

Для построения для построения графиков функции, которые заданы в практической части курсового проекта будет использоваться специальная процедура Line( X1, Y1, X2, Y2 ), где X1, Y1 – координаты начала, а X2, Y2 – координаты конца отрезка.

Примеры.

Вывод вертикальной линии зеленого цвета в середине экрана.

SetColor(Green);
x:=GetMaxX div 2;
Line( x, 0, x, GetMaxY );

Вывод диагональной линии ярко-красного цвета.

SetColor(LightRed);
Line( 0, 0, 639, 479 );

Для вычерчивания линий существует еще две процедуры: LineTo и LineRel.
Процедура LineTo( X, Y ) строит отрезок прямой из точки текущего положения указателя в точку с координатами X, Y. Процедура LineRel( dX, dY ) проводит линию от точки текущего положения указателя в точку со смещением dX, dY.

Установка стиля линии

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

SetLineStyle( Style, Pattern, Thickness ),

где Style – параметр, определяющий стиль линии. Возможные значения этого параметра приведены в таблице 3; Pattern – образец; Thickness – толщина линии. Если применяется один из стандартных стилей, значение параметра Pattern должно быть равно 0.

Таблица 3

Стили линии.

Описание стиля Константа
Сплошная линия SolidLn = 0
Точечная линия DottedLn = 1
Штрих-пунктирная линия CenterLn = 2
Пунктирная линия DashedLn = 3
Стиль, определяемый пользователем UserBitLn = 4

Параметр Thickness может принимать всего два значения:

NormWidth = 1 – линия толщиной в один пиксел
ThickWidth = 3 – линия толщиной в три пиксела

Наши рекомендации