Создание графических объектов
КУРСОВОЙ ПРОЕКТ
по МДК 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 – линия толщиной в три пиксела