Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

а обеспечивающей работу монитора

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

При написании программ для задач из данного раздела не забывайте включить в программу заголовочный файл graphics.h и правильно вызвать функцию initgraph для инициализации графического режима.

  1.  Графический режим

В графическом режиме все изображения на экране создаются светящимися точками – пикселями. Разрешающая способность, то есть количество пикселей по горизонтали и по вертикали, зависит от типа монитора и типа электронной схемы (видеоадаптера), обеспечивающей работу монитора.

В состав TC входит библиотека функций для реализации точечной графики, прототипы которых находятся в файле graphics.h.

Графические драйверы и режимы

Для поддержки графического режима работы экрана в оперативную память должна быть загружена специальная программа – графический драйвер. В TC имеются шесть файлов с графическими драйверами: CGA.BGI, EGAVGA.BGI, IBM8514.BGI, HERC.BGI, ATT.BGI, PC3270.BGI. Заметим, что расширение BGI произошло от слов Borland Graphic Interface. Каждый файл содержит драйвер для одного или нескольких близких по типу видеоадаптеров. Логически TC различает десять графических драйверов. Для каждого драйвера в файле graphics.h определена константа, которую можно считать символическим именем драйвера. Константы графических драйверов, их значения и соответствующие имена файлов перечислены в табл..


Таблица
. Графические драйверы Turbo C++

Константа (символическое имя драйвера)

Значение

константы

Имя файла драйвера

CGA

MCGA

EGA

EGA64

EGAMONO

IBM8514

HERCMONO

ATT400

VGA

PC3270

DETECT

1

2

3

4

5

6

7

8

9

10

0

CGA.BGI

CGA.BGI

EGAVGA.BGI

EGAVGA.BGI

EGAVGA.BGI

IBM8514.BGI

HERC.BGI

ATT.BGI

EGAVGA.BGI

PC3270.BGI

Константа DETECT используется, когда системе самой поручается определить тип видеоадаптера и загрузить соответствующий драйвер. При этом будет использован драйвер, обеспечивающий максимальное разрешение

Графические драйверы обеспечивают один или несколько различных графических режимов, для которых в файле graphics.h определены константы. В табл. приведены имена и значения этих констант для драйвера VGA, разрешение и количество цветов.

Таблица . Константы графических режимов

Графический драйвер

Константа графического режима

Значение константы

Разрешение, пикселей

Количество цветов

VGA

VGALO

VGAMED

VGAHI

0

1

2

640 x 200

640 x 350

640 x 480

16

16

16

Инициализация графики

Для перевода адаптера экрана в графический режим и загрузки соответствующего драйвера служит библиотечная функция initgraph. Ее прототип имеет вид

void initgraph(int* GraphDriver, int* GraphMode, char* PathToDriver);

Графический драйвер ищется в каталоге, имя которого указано в аргументе PathToDriver. Если в указанном каталоге драйвер не найден, то просматривается текущий каталог. Если в качестве третьего аргумента указана пустая строка "", то просматривается только текущий каталог. GraphDriver указывает номер драйвера, GraphMode указывает номер графического режима, который должен быть установлен.

Если положить GraphDriver = 0 или библиотечной константе  DETECT, то производится автоматическое распознавание графического адаптера, в память загружается соответствующий драйвер, устанавливается режим с максимальным разрешением, а переменным, указанным в аргументах GraphDriver и GraphMode, присваиваются значения, равные номеру драйвера и номера режима.

Об успехе или неудаче той или иной графической операции можно судить по значению, вырабатываемому функцией

int graphresult(d);

после каждой графической операции. Результат, равный 0 (значение библиотечной константы grOk), означает удачное, а отрицательное значение – неудачное выполнение операции.

Для восстановления текстового режима служит функция

void closegraph():

Эта функция освобождает память, выделенную графическому драйверу и выбранному виду шрифта, использовавшегося в графическом режиме.

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

Функции рисования

Для рисования на экране имеется довольно много библиотечных функций. Рассмотрим некоторые.

int getcolor(void);

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

void setcolor(int color);

устанавливает новый цвет рисования color.

int getbkcolor(void);

возвращает текущий цвет фона.

void setbkcolor(int color);

устанавливает новый цвет фона color.

void putpixel(int x, int y, int color);

изображает на экране точку с координатами x, y цветом color.

void line(int x1, int y1, int x2, int y2,);

рисует на экране отрезок прямой, соединяющий точки с координатами (x1, y1) и (x2, y2), используя текущий цвет, текущие стиль и толщину линий. По умолчанию текущим является белый цвет, текущим стилем – сплошная линия, а текущей толщиной – толщина в один пиксель.

void circle (int x, int y, int Radius);

изображает на экране окружность радиуса Radius с центром, имеющим координаты x, y.

int getmaxx(void); int getmaxy(void);

возвращают максимальные координаты точек на экране соответственно в горизонтальном и вертикальном направлениях.

Обратите внимание на строку "C:\\TC30\\BGI", задающую путь к папке, в которой находятся файлы графических драйверов. Принято имена вложенных папок отделять обратной наклонной чертой, чтобы ее изобразить в программе на языке C++, она удваивается.

В программе использована константа M_PI, определенная в файле math.h имеющая значение числа π.

Координаты вершин звезды хранятся в массивах x и y из N элементов. Для изображения звезды, например, при N=7 и m=3 нужно провести 7 отрезков, соединяющих следующие вершины: 0 и 3, 1 и 4, 2 и 5, 3 и 6, 4 и 0, 5 и 1, 6 и 2. Отрезки рисуются в цикле с помощью функции line. Номера начальных точек i возрастают от 0 до N-1, а номера конечных точек находятся с помощью выражения (i + m) % N, где % оператор нахождения остатка от деления. В правильности данного выражения легко убедиться подстановкой.

На экране мы увидим следующее:




1. Heian Art
2. Собачье сердце.html
3. U.RU Николай Бердяев Церковная смута и сво.html
4. Правовая регламентация процесса доказывания в арбитражном судопроизводстве.html
5. тематика Протокол Председатель комиссии- С
6. Лабораторна робота 3 З дисципліни
7. В нем накапливается излишнее тепло увеличивается влажность к нему примешиваются вредные газы.html
8. Subjects they know lot bout for exmple politics B someone you py to come to your house nd look fter your children C someone whose job is to mke or repir things from wood D some
9. законный статус в современном русском языке жаргон стал предметом лингвистического анализа.
10. Поляриметрические методы анализа
11. экономический рост В экономической науке определились два понятия характеризующие изменения в развити
12. Рынок олигополии.html
13. Методы и формы работы семейного социального педагога с семьей группы риска
14. Современная детская поэзия
15. Включает в себя в том числе создание и исполнение художественных произведений силами исполнителей любите
16. в отрезках имеет вид- 5 общая точка пересечения с осью Ох; bобщая точка пересечения с осью Oy
17. Реферат на тему- Буровые работы при инженерногеологических исследованиях Выполнил- с
18. Акулы
19. каскадная структура идеальна для подчеркивания доминантности минимизации поворотов и пересечений дуг упр
20. Доклад- Созвездие Гончие псы