Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемlyceum29.moy.su
1 Графический режим. Растровая и векторная графика. Инициализация графики.
2 Введение Формальное определение компьютерная ( машинная ) графика – это создание, хранение и обработка моделей объектов и их изображений с помощью ЭВМ. Одно и то же изображение может быть представлено в памяти ЭВМ двумя принципиально различными способами и получено два различных типа изображения : растровое и векторное.
3 Растровая графика. Под растровым (bitmap, raster) понимают способ представления изображения в виде совокупности отдельных точек ( пикселей ) различных цветов или оттенков. Это наиболее простой способ представления изображения, ибо таким образом видит наш глаз. Достоинством такого способа является возможность получения фотореалистичного изображения высокого качества в различном цветовом диапазоне. Недостатком – высокая точность и широкий цветовой диапазон требуют увеличения объема файла для хранения изображения и оперативной памяти для его обработки.
4 Векторная графика. Для векторной графики характерно разбиение изображения на ряд графических примитивов – точки, прямые, ломаные, дуги, полигоны. Таким образом, появляется возможность хранить не все точки изображения, а координаты узлов примитивов и их свойства. Чтобы компьютер нарисовал прямую, нужны координаты двух точек, которые связываются по кратчайшей прямой. Для дуги задается радиус и т. д. Таким образом, векторная иллюстрация – это набор геометрических примитивов.
5 Хранение изображения в памяти : Изображение будет представлять из себя массив описаний : отрезок (20,20-100,80); окружность (50,40-30). Достоинствами векторного способа представления изображения, по сравнению с растровым, являются : · векторное изображение может быть легко масштабировано без потери качества, так как это требует пересчета сравнительно небольшого числа координат узлов ; · графические файлы, в которых хранятся векторные изображения, имеют существенно меньший, по сравнению с растровыми, объем ( порядка нескольких килобайт ).
6 Модуль Graph Для создания графических изображений в языке Турбо Паскаль предназначен стандартный библиотечный модуль GRAPH. Он представляет собой библиотеку подпрограмм, которая полностью обеспечивает управление графическими режимами различных адаптеров дисплеев : CGA, EGA, VGA, MCGA и д. т. Библиотека содержит около 80 графических процедур и функций, а также десятки стандартных констант и описаний типов данных. Uses Graph; { подключение модуля graph к программе }
7 Модуль Graph Чтобы запустить программу, в которой используются процедуры модуля Graph, необходимо поместить в рабочий каталог соответствующие графические драйверы ( файлы с расширением.bgi). Если вы используете штриховые шрифты, необходимо включить в этот каталог и файлы шрифтов ( с расширением. с hr). Сам модуль GRAPH представляет собой отдельный файл Graph.tpu, который не входит в состав библиотеки Turbo.tpl, и чтобы обеспечить возможность работы с графикой, нужно сделать файл Graph.tpu доступным для компилятора.
8 Классификация типов драйверов и видеорежимов. Перед началом работы с графикой необходимо установить наиболее подходящий для данного монитора видеорежим. В комплект поставки Турбо Паскаля входит ограниченное число драйверов, каждый из которых может поддерживать один или несколько видеорежимов. Тип драйвера и режим могут быть заданы в виде числа или символьной константы.
9 Коды драйверов графических устройств ИмяЗначениеНазначение Detect CGA MCGA EGA EGA64 EGAMono IBM8514 HercMono АТТ 400 VGA PC3270 CurrentDriver Автоматический выбор драйвера Текущий драйвер
10 Некоторые константы графических режимов модуля Graph Следующая таблица содержит перечни возможных графических режимов для различных типов видеоадаптеров. Во втором столбце указаны имена зарезервированных констант, которые можно передавать в процедуры, управляющие графическими режимами. В последнем столбце представлено значение количество полноэкранных изображений, которые могут одновременно загружаться в память видеоадаптера.
11 ИмяЗначениеРазмер поляПалитраЧисло страниц АТТ400С0 АТТ400С1 АТТ400С2 АТТ400СЗ ATT400Med ATT400Hi x x x x x x400 С0 С1 С2 СЗ 2 цвета 2 цвета EGALo EGAHi EGA64LO EGA64Hi EGAMonoHi x x x x x цветов 16 цветов 16 цветов 4 цвета 2 цвета или 2 IBM8514LO IBM8514Hi0 640x x цветов РС3270Hi0720x3502 цвета1 VGALo VGAMed VGAHi x x x цветов 16 цветов 16 цветов
12 Процедура инициализации InitGraph. Загрузка графического драйвера и инициализация графики осуществляется с помощью процедуры, которая вызывается следующим образом : Initgraph( Драйвер, Режим, Путь к драйверу ); Драйвер – переменная типа integer, определяющая тип графического драйвера. Режим – переменная типа integer, устанавливающая режим работы адаптера. Режим определяет разрешающую способность и палитру цветов. Путь к драйверу – выражение типа string, содержащее путь к файлу драйвера.
13 Процедура Для перевода системы в графический режим можно написать отдельную процедуру, которую затем можно будет использовать для написания программ, так как не очень - то удобно каждый раз записывать в программе целый набор операторов инициализации.
14 Program name01; Uses crt, graph; Procedure initg; Var gd, gm, gr: Integer; { определяют драйвер, режим и код ошибки } Begin gd:=detect; { режим автоопределения } Initgraph(gd, gm, C:\bp\bgi); gr:=GraphResult; { код ошибки } if grGrOk then begin writeln(GraphErrorMsg (gr)); while not keypressed do; halt; end; end; Begin initg; ….. { процедуры и операторы построения графических изображений }; closegraph; End.
15 Процедура CloseGraph. Когда все действия с графикой завершены, необходимо выйти из графического режима. В процессе этого выполнения эта процедура освобождает память, распределенную под драйверы графики, файлы шрифтов и промежуточные данные, и восстанавливает тот режим работы адаптера, в котором он находится до выполнения инициализации системы. Последующие переключения в графический режим возможны только путем повторной инициализации.
16 Обработка ошибок инициализации При выполнении любой программы могут возникать ошибки, и графические программы в этом аспекте ничем не отличаются от прочих. В модуле Graph реализован механизм обнаружения и генерирования сообщений об ошибках с помощью функций GraphResult и GraphErrorMsg. Функция GraphResult возвращает 0, если последняя графическая операция выполнилась без ошибок, или число в диапазоне от -14 до -1, если ошибка имела место.
17 Коды ошибок, возвращаемые функцией GraphResult ИмяЗначениеНазначение grOk grNoInitGraph grNotDetected grFileNotFound grInvalidDriver grNoLoadMem grNoScanMem grNoFloodMem grFontNotFound grNoFontMem grInvalidMode grError grIOerror grInvalidFont grInvalidFontNum Успешное выполнение Не установлен графический режим Графический режим не предусмотрен Нет драйвера устройства Ошибка в драйвере Нет памяти для загрузки драйвера Нет памяти для сканирования Нет памяти для закраски Не найден файл со шрифтом Нет памяти для загрузки шрифта Недопустимый режим для выбранного драйвера Ошибка графической системы Ошибка ввода-вывода графической системы Ошибка в файле со шрифтом Неверный номер шрифта
18 Функция GraphErrorMsg Для быстрой выдачи простого сообщения о типе ошибки графической системы используется функция, преобразующая результат вызова функции GraphResult в сообщение, которое можно вывести на экран процедурой write.
19 Система координат в графическом режиме. (0,0) x y Чтобы узнать максимальные координаты экрана в текущем режиме работы, воспользуемся стандартными функциями GetMaxX и Get MaxY. Для этого наберите в программе команду : Writeln (GetmaxX, x, GetMaxY);
20 Построение графических изображений Чтобы строить изображение, нужно указать точку начала вывода. В графическом режиме нет видимого курсора, но есть так называемый невидимый текущий указатель (Current Pointer). После инициализации графического режима указатель стоит в точке (0;0). Чтобы переместить его в нужное место используют следующие процедуры : MoveTo (X, Y), где переменные X, Y типа Integer - перемещает текущий указатель в точку с координатами (X,Y). MoveTo (200, 100);
21 Построение графических изображений MoveRel (dX, dY), где переменные dX, dY типа Integer - перемещает текущий указатель по горизонтали на расстояние, равное dX пикселям, а по вертикали на расстояние, равное dY пикселям. (Relation ( англ.) - относительно ) Например, если после выполнения предыдущей процедуры текущий указатель находится в точке (200, 100), то после выполнения процедуры MoveRel (25, 150) он будет находится в точке с координатами (225, 250).
22 Построение точки PutPixel(X, Y, Color), где переменные X, Y типа Integer, а Color типа Word - процедура выводит точку заданного цвета Color в точку с координатами (X, Y). Для задания цвета точки можно использовать как слово на английском языке, так и цифру из следующей таблицы :
23 Таблица цветов : Цвет Код Цвет Код Black черный 0 DarkGray темно-серый 8 Blue синий 1 LightBlue ярко-голубой 9 Green зеленый 2 LightGreen ярко- зеленый 10 Cyan бирюзовый 3 LightCyan ярко- бирюзовый 11 Red красный 4 LightRed ярко- красный 12 Magenta малиновый 5 LightMagenta ярко- малиновый 13 Brown коричневый 6 Yellow желтый 14 LightGray светло- серый 7 White белый 15
24 Задания : 1. Написать программу, которая выводит на экран линию из точек. 2. Написать программу, в которой на экран выводятся разноцветные точки внутри квадрата 100 × 100 пока не будет нажата клавиша. 3. Измените программу так, чтобы : Точки светились по всему экрану ; Точки светились в верхней половине экрана.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.