Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Информатика, программирование->Дипломная работа
Имеется широкий круг задач, отличительной особенностью которых является множественность и повторяемость данных, описывающих как сами рассматриваемые о...полностью>>
Информатика, программирование->Реферат
Разработка электрической принципиальной схемы .1 Расчет выходного каскада Выходной каскад обеспечивает требуемый размах напряжения (тока) в нагрузке....полностью>>
Информатика, программирование->Курсовая работа
Организует контроль за ходом выполнения работ, анализ функционирования автоматизированных систем, учет объемов и качества, затрат машинного времени на...полностью>>
Информатика, программирование->Лабораторная работа
В папках Bank и Client изменить имена файлов секретных ключей SIGN0299. SIGN0299.001 следующим образом: SIGNXXYY. SIGNXXYY.001, где XX- номер группы, ...полностью>>

Главная > Домашняя работа >Информатика, программирование

Сохрани ссылку в одной из сетей:

Работа в графическом режиме видеоадаптера в ОС MS-DOS

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

Так же, как и в текстовом режиме, графические функции оперируют с окнами. При запуске программы исходное окно имеет размер всего экрана. Левый верхний угол окна имеет координаты (0,0).

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

Для работы в графическом видеорежиме его необходимо установить для видеоадаптера. В состав графического пакета среды Borland C++ 3.1 входят специальные драйверы графических устройств (*.bgi) и символьные шрифты (*.chr). Наиболее часто используемый драйвер – egavga.bgi.

Необходимо установать параметр компилятора Options > Linker > Libraries > Graphics library.

void far initgraph(int far* driver, int far* mode, char far* path);

Функция устанавливает графический видеорежим. Параметр driver определяет загружаемый драйвер, параметр mode определяет видеорежим драйвера, параметр path определяет путь к директории, в которой находится драйвер. Если маршрут не указан, то предполагается, что файл находится в текущей директории.

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

Константа

Значение

DETECT

0

EGA

3

VGA

9

Если задана константа DETECT, то тип видеоадаптера и драйвер определяются автоматически во время выполнения программы. Константы, задающие режимы для данных драйверов, приведены в таблице ниже.

Драйвер и режим

Значение

Разрешение

Палитра

Количество страниц

EGALO

0

640 X 200

16 цветов

4

EGAHI

1

640 X 350

16 цветов

2

VGALO

0

640 X 200

16 цветов

4

VGAMED

1

640 X 350

16 цветов

2

VGAHI

2

640 X 480

16 цветов

1

int far getmaxmode(void);

Функция возвращает значение максимального режима загруженного драйвера.

int far getgraphmode(void);

Функция возвращает значение текущего режима загруженного драйвера.

void far setgraphmode(int mode);

Функция устанавливает графический режим, значение которого принимает в качестве параметра, для загруженного драйвера.

void far closegraph(void);

void far restorecrtmode(void);

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

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

В зависимости от типа видеоадаптера и установленного видеорежима система может иметь от 1 до 4 буферных страниц. Каждая из страниц может быть указана как активная, в которую происходит вывод, и визуальная, которая отображается на экране. По умолчанию активная и визуальная тсраницы совпадают.

void far cleardevice(void);

Функция очищает активную страницу.

void far setactivepage(int page);

void far setvisualpage(int page);

Функции устанавливают номер активной и визуальной страниц соответственно.

void far setviewport(int left, int top, int right, int bottom, int clip);

Функция создает графическое окно, которое становится активным, координаты левой верхней (left, top) и правой нижней (right, bottom) вершин окна являются абсолютными в системе координат экрана и передаются в качестве параметров. Если параметр clip отличен от нуля, то вывод графической информации за границы окна автоматически прерывается, если равен нулю, то вывод не прерывается. В любом случае ошибка не фиксируется.

void far clearviewport(void);

Функция очищает текущее окно и устанавливает текущую графическую позицию в левый верхний угол окна.

Для получения параметров активного окна в файле graphics.h объявлена специальная структура.

struct viewporttype {

int left, top, right, bottom;

int clip;

};

Поля left, top, right и bottom содержат координаты вершин окна, поле clip хранит значение флага, определяющего возможность выхода за границы окна.

void far getviewsettings(struct viewporttype far* viewport);

Функция заполняет структуру, адрес которой передаётся в качестве параметра, параметрами текущего окна.

int far getmaxx(void);

int far getmaxy(void);

Функции возвращают соответствующую максимальную координату экрана (разрешение экрана по соответствующей координате –1).

unsigned far imagesize(int left, int top, int right, int bottom);

Функция возвращает число байт, необходимое для хранения образа части экрана, координаты левой верхней (left, top) и правой нижней (right, bottom) вершин этого образа передаются в качестве параметров. Если необходимый размер превышает (64K-1) байтов, функция возвращает 0xFFFF (-1).

void far getimage(int left, int top, int right, int bottom, void far* bitmap);

Функция копирует битовый образ экрана в буфер памяти, адрес буфера передаётся в качестве параметра bitmap, остальные параметры содержат координаты левой верхней (left, top) и правой нижней (right, bottom) вершин этого образа.

void far putimage(int left, int top, void far* bitmap, int op);

Функция выводит битовый образ на экран из буфера памяти, адрес буфера передаётся в качестве параметра bitmap, параметры left и top содержат координаты левой верхней вершины выводимого образа. Параметр op задаёт оператор способа вывода образа на экран. Для этого в файле graphics.h объявлен специальный перечислимый тип.

enum putimage_ops {

COPY_PUT,

XOR_PUT,

OR_PUT,

AND_PUT,

NOT_PUT

};

Смысл констант приведён в таблице ниже.

COPY_PUT

Копирование образа из памяти на экран

XOR_PUT

На экран выводится результат операции XOR между битами образа в памяти и битами образа на экране.

OR_PUT

На экран выводится результат операции OR между битами образа в памяти и битами образа на экране.

AND_PUT

На экран выводится результат операции AND между битами образа в памяти и битами образа на экране.

NOT_PUT

На экран выводится результат операции NOT над битами образа в памяти

void far setpalette(int index, int color);

Функция устанавливает цвет текущей палитры с номером index в цвет из набора доступных цветов, номер которого задаётся параметром color. Изменения вступают в действия на экране немедленно.

void far setbkcolor(int color);

Функция устанавливает цвет фона, параметр color задаёт номер цвета из текущей палитры. Изменения вступают в действия на экране немедленно.

int far getbkcolor(void);

Функция возвращает код текущего цвета фона из цветовой палитры.

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

Функция устанавливает цвет пиксела с координатами x и y, код цвета из палитры задаёт параметр color.

unsigned int far getpixel(int x,int y);

Функция возвращает код цвета пиксела с координатами x и y.

void far setcolor(int color);

Функция устанавливает текущий цвет (которым рисуются объекты), параметр задаёт код цвета из палитры. Изменения вступают в действия для вновь выводимых объектов на экране.

int far getcolor(void);

Функция возвращает код текущего цвета из цветовой палитры.

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

int far getx(void);

int far gety(void);

Функции возвращают координату текущей графической позиции по соответствующей оси координат. Возвращаемое значение является относительным относительно текущего графического окна.

void far moveto(int x, int y);

void far moverel(int dx, int dy);

Функции устанавливают новую графическую позицию. Функция moveto() принимает в качестве параметров координаты новой позиции в окне. Функция moverel() устанавливает новую позицию в результате смещения текущей позиции на dx и dy по соответствующей координате.

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

void far linerel(int dx, int dy);

void far lineto(int x, int y);

Функция line() рисует линию из точки (x1, y1) в точку (x2, y2), не изменяя текущую графическую позицию. Функция linerel() рисует линию из текущей графической позиции в точку, смещенную относительно позиции на (dx, dy), изменяя текущую графическую позицию. Функция lineto() рисует линию из текущей графической позиции в точку (x, y), изменяя текущую графическую позицию.

Общие обозначения имён параметров:

radius – радиус объекта;

xradius и yradius - горизонтальная и вертикальная оси объекта,

stangle и endangle – углы начала и конца объекта.

void far circle(int x, int y, int radius);

void far arc(int x, int y, int stangle, int endangle, int radius);

Функция circle() рисует окружность. Функция arc() рисует дугу окружности. Параметры x и y задают центр окружности.

void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);

Функция рисует эллипс. Параметры x и y задают центр эллипса.

void far drawpoly(int numpoints, int far* polypoints);

Функция рисует многоугольник, количество точек и массив, содержащий координаты точек, передаются в качестве параметров. Размер массива вдвое больше, чем число точек. Если необходимо нарисовать замкнутый многоугольник с N вершинами, необходимо передать в функцию N+1 точку, последняя точка должна совпадать с начальной.

void far rectangle(int left, int top, int right, int bottom);

Функция рисует прямоугольник, координаты левой верхней (left, top) и правой нижней (right, bottom) вершин передаются в качестве параметров.



Загрузить файл

Похожие страницы:

  1. Видеосистема компьютера

    Домашняя работа >> Информатика, программирование
    ... текстового режима (1,1), для графического режима (0,0). Стрелками показаны положительные направления соответствующих осей координат, ... монитора или от установленного режима. Работа в текстовом режиме видеоадаптера в ОС MS-DOS Все функции управления консолью ...
  2. Работа с мышью

    Контрольная работа >> Информатика, программирование
    ... режиме – знакоместо, в графическом режиме – пиксел. Координаты мыши считаются попиксельно для любого режима видеоадаптера, поэтому в графическом режиме видеоадаптера ... MS-DOS драйвер не входит, то он должен быть загружен пользователем (или ОС ... для работы с ...
  3. Состояние и ближайшие перспективы развития рынка системной памяти

    Реферат >> Информатика
    ... памяти использовались для памяти видеоадаптера, следующий сегмент делили ... работы (protected mode). Однако самая популярная ОС - MS DOS могла работать только в реальном режиме работы ... Что говорить о скорости обработки графической или видео информации, которые ...
  4. Микропроцессоры Intel 8086 и Intel

    Реферат >> Коммуникации и связь
    ... как «видеопамять» (адресное пространство видеоадаптера), а страница F занята ... реальном или защищённом режиме работает процессор; расширения ... программы реального режима, разработанные для ОС MS-DOS. При ... имела графического интерфейса, в отличие от ОС Microsoft ...
  5. Компьютерная графика (9)

    Шпаргалка >> Информатика, программирование
    ... графического режима видеоадаптера. Любой современный видеоадаптер может работать в двух режимах: текстовом и графическом. В текстовом режиме ... с MS DOS. В MS DOS при работе с видеоадаптерами указываются ... плоскости и координатных осей. КЛАССИФИКАЦИЯ ПРОЕКЦИИ ...

Хочу больше похожих работ...

Generated in 0.0020918846130371