
- •2 Задачи работы
- •3 Порядок выполнения работы
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Описание процедур и функций модуля Graph
- •5.2 Построение изображений на экране
- •5.3 Установка цвета и стиля заполнения
- •5.4 Заполнение областей изображения
- •5.5 Работа с текстом
- •6 Образцы решения задач
- •Изобразить летающую тарелку.
- •7 Контрольные вопросы
- •Варианты заданий для выполнения
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Колледж экономики, управления и права
методические рекомендации
для УЧЕБНОЙ практиКИ студентов
по дисциплине «Основы алгоритмизации и программирования»
Специальность
230105 51 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ
автор-составитель Шинакова С.В.
Ростов-на-Дону 2011
Рассмотрены на заседании Ц(П)К специальности 230105.51 Программное обеспечение вычислительной техники и автоматизированных систем
«07» апреля 2011 г. Протокол № 8
Председатель Ц(П)К _____________ Шинакова С.В.
Практическая работа № 6
Тема «Работа с графикой»
1 Цель работы
Научиться принципам работы с процедурами и функциями модуля Graph в среде программирования Turbo Pascal или Pascal ABC.
2 Задачи работы
Изучить приемы решения задач с использованием процедур и функций модуля Graph.
3 Порядок выполнения работы
3.1 В среде программирования Turbo Pascal или Pascal ABC составить и отладить программы решения задач в соответствии с указанным вариантом приложений.
3.2 Провести анализ результатов работы программы.
3.3 Составить отчет о проделанной работе.
4 Отчет о проделанной работе должен содержать
- название и цель работы;
- номер и условие своего варианта;
- текст программы;
- полученные при тестировании результаты;
- ответы на контрольные вопросы пункта 6 в соответствии с указаниями преподавателя.
5 Теоретические положения
5.1 Описание процедур и функций модуля Graph
Для создания графических изображений в среде Турбо Паскаль предназначен стандартный библиотечный модуль Graph. Он представляет собой библиотеку подпрограмм, которая полностью обеспечивает управление графическими режимами различных адаптеров дисплея. Библиотека содержит около 80 графических процедур и функций, а также десятки стандартных констант и описаний типов данных.
Подключение модуля Graph осуществляется с помощью зарезервированного слова USES:
USES Graph;
Чтобы запустить программу, в которой используются процедуры модуля Graph, необходимо поместить в рабочий каталог соответствующие графические драйверы-файлы с расширением .BGI , которые обеспечивают взаимодействие программ с графическими устройствами. При инициализации определенного графического режима подключается соответствующий драйвер. Для обеспечения работы программы в одном из графических режимов процедура InitGraph определяет тип адаптера и загружает соответствующий BGI-файл.
Процедура инициализации InitGraph(VAR GraphDriver: Integer; {тип адаптера}
VAR GraphMode : Integer; {режим графики}
VAR DriverPath : String;) {путь к драйверу}
Если GraphDriver присваивается значение константы Detect, то система переходит в режим автоопределения и инициализируется соответствующий BGI-драйвер и включается режим максимального разрешения для данного типа видеоадаптера. В GraphDriver и GraphMode при этом процедура возвратит автоматически определенные значения для этих параметров или код ошибки.
Процедура CloseGraph служит для удаления графического драйвера из памяти и восстановления текстового режима видеоадаптера.
В модуле Graph реализован механизм обнаружения ошибок и генерирования сообщений об ошибках с помощью функций GraphResult и GraphErrorMsg.
Функция GraphResult: Integer возвращает 0, если последняя графическая операция выполнилась без ошибок, или число в диапазоне от -15 до -1, если ошибка имела место.
5.2 Построение изображений на экране
Для построения изображений на экране в графическом режиме применяется система координат, отличная от используемой в текстовом режиме. Отсчет начинается от верхнего левого угла экрана, который имеет координаты (0,0). Значение X(столбец) увеличивается в направлении слева направо, а значение Y (строка) - в направлении сверху вниз. При этом экран представляется в виде прямоугольного массива адресуемых точек, а не символов.
Определение значений максимальных координат экрана в модуле Graph реализовано с помощью функций
GetMaxX: Integer
GetMaxY: Integer
Процедура MoveTo (X, Y: Integer) перемещает текущий указатель в точку с координатами X, Y.
Процедура MoveRel (dX, dY: Integer) перемещает текущий указатель на dX точек по горизонтали и на dY точек по вертикали относительно последнего положения текущего указателя.
Для определения текущего положения графического курсора используются функции
GetX: Integer
GetY: Integer
Процедура PutPixel (X, Y: Integer; Color: Word) отображает на экране точку с заданными координатами X, Y и цветом C.
Процедура Line (X1, Y1, X2, Y2: Integer) выводит на экран отрезок прямой с координатами начальной (X1, Y1) и конечной (X2, Y2) точек .
Для построения отрезков применяются ещё две процедуры:
LineTo(X,Y) строит отрезок из точки текущего положения указателя до точки с координатами (X,Y)
LineRel(dX,dY) строит отрезок от точки текущего положения указателя до точки с координатами, отстоящими на расстоянии dX по горизонтали и dY – по вертикали.
Установка стиля линии производится процедурой
SetLineStyle(LineStyle: Word; Pattern: Word; Thickness: Word)
Параметром LineStyle задается тип строки, Pattern- шаблон, Thickness- толщина линии.
Константа |
Значение |
Характеристика линии |
SolidLn |
0 |
Сплошная |
DottedLn |
1 |
Пунктирная |
CenterLn |
2 |
Штрих- пунктирная |
DashedLn |
3 |
Штриховка |
UserBitLn |
4 |
Заданная пользователем |
NormWidth |
1 |
Нормальной толщины |
ThickWidth |
3 |
Большой толщины |
Если параметр LineStyle не равен UserBitLn, то параметр Pattern не используется и обычно задается равным нулю.
Процедура Rectangle (X1, Y1, X2, Y2: Integer) строит прямоугольник на плоскости
(X1, Y1) –координаты верхнего левого угла, (X2, Y2)- координаты правого нижнего угла прямоугольника
Процедура Bar (X1, Y1, X2, Y2: Integer) рисует прямоугольник, внутренняя область которого залита по текущему шаблону. Данная процедура обычно используется в деловой графике для построения столбиковых диаграмм.
Процедура Bar3D (X1, Y1, X2, Y2: Integer; D3: Word; Top: Boolean) рисует параллелепипед, “лицевая” сторона которого залита по текущему шаблону, а глубина задается в пикселях параметром D3. Параметр Top задает режим отображения верхней плоскости: True- отображать, False- не отображать . Этот параметр необходим для рисования столбцов, расположенных “один на другом”.
Процедура Circle(X, Y: Integer; Radius: Word) рисует окружность (X, Y) –координаты центра окружности, Radius- ее радиус
Процедура Arc (X, Y: Integer; StEngle, EndEngle, Radius: Word) рисует дугу (X, Y) –координаты центра окружности дуги, StEngle и EndEngle- начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, Radius- радиус.
Процедура Ellipse (X, Y: Integer; StEngle, EndEngle: Word; XR, YR: Word) рисует дугу (X, Y) –координаты центра эллипса в дисплейных координатах, StEngle и EndEngle - начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, XR и YR – горизонтальная и вертикальная оси.