Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию.doc
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
116 Кб
Скачать
☆

Работа в графическом режиме.

Обеспечивается функциями модуля <graphics.h> которые реализуют Borland Graphics Interface (BGI).

Для подключения библиотеки необходимо установить опцию с помощью меню

options → linker → liblaries → graphics library

void for initgraph (int far *graphdrive, int far *graphmode, char far *path); — инициализирует графический режим определенный двумя первыми параметрами

graphdrive — собственный режим (по умолчанию graphdrive = DETECT)

graphmode —

режим VGA с одной страницы видео памяти и разрешением 640х480 pixels.

Для постраничного режима необходимо задать следующие значения параметров

graphdrive = VGA //9;

graphmode = VGAMED //1;

path — строка задающая путь к файлу egavga.bgi (графический драйвер)

Драйверы при стандартной установке системы находится в папке bgi после выззова функции экран очищается, невидимый курсор помещается в верхний левый угол экрана с координатами 0:0.

// рисуем дугу окружности в центре x, y, с радиусом r, началом и концом

void arc(int x, int y, int stangle, int endangle, int r)

// рисует окружность

void circle (int x, int y, int r)

// рисует закрашенный сектор круга

void pieclise (int x, int y, int stangle, int endangle, int r)

// рисует дугу элипса

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

// рисует закрашенным элипсом

void fillellipse (int x, int y, int xradius, int yradius)

// рисует закрашенный сектор элипса

void sector (int x, int y, int stangle, int endangle, int xradius, int yradius)

// рисует прямоугольник по левому-верхнему и нижнему-правому углу

void rectangle (int x1, int y1, int x2, int y2)

//закрашенный прямоугольник

void bar (int x1, int y1, int x2, int y2)

// закрашенный параллелепипед (depth — глубина, topflag — определяет какая из из трехмерных вершин рисуется)

void bar3d (int x1, int y1, int x2, int y2, int depth, int topflag)

// контур многоугольника, n — кол-во вершин+1, points — координаты точек (одномерный массив последовательно x, y, чтобы многоугольник получился замкнутым необходимо передать координаты n+1 вершины, повторив в конце массива координаты первой вершины).

void drawpoly (int n, int * points)

// закрашенный многоугольник

void fillpoly (int n, int * points)

// закрашивает пиксель

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

// рисует линию

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

// линию от данной точки

void lineto (int x, int y)

// линию от данной точки до точки определенной смещением по x и y

void linerel (int dx, int de)

// перемещает курсор в точку

void moveto (int x, int y)

// смещает курсор

void moverel (int dx, int dy)

// возвращает текущую позицию курсора

int getx(), int gety()

// устанавливает цвет рисования (от 0 — черный до 16 — белый или цветовые константы)

void setcolor (int color)

// цвет фона

void setbkcolor (int color)

// стиль линии (2 параметр — шаблон в битовой матрицы, если первый параметр определяет стиль линии как пользовательский, 3 параметр — толщина)

void setlinestyle (int linestyle, unsigned upattern, int thickness)

// стиль и цвет заполнения закрашенных фигур (стли от 0 до 11, 12 — пользовательский, задать который можно с помощью битовой матрицы функцией)

void setfillstyle (int pattern, int color)

// битовая матрица ...

void setfillpattern (char * upattern, int color)

// выводит строку текста в текущую позицию

void outtext (const shat * str)

// выводит строку текста в заданной позиции

void outtextxy (int x, int y, char * str)

// устанавливает стиль символов (1 — шрифт (русские только в 0), 2 — направление вывода текста (0 — горизонталь, 1 — вертикаль), 3 — размер символов)

void settextstyle (int font, int direction, int charsize)

// полином определяет доступность экрана вне окна, clipon = 0 — область вне окна доступна, иначе нет

void setviewport (int x1, int y1, int x2, int y2, int clipon)

// очищает окно, заполняя его цветом фона, перемещает в верхний левый угол окна

void clearviewport ()

// очищает экран, заполняя его цветом фона, перемещает в верхний левый угол окна

void cleardevice ()

// закрывает графику

void closegraph ()

// устанавливает активную страницу видео памяти (страницы нумеруются с 0)

void setactivepage (int numpage)

// отображает страницу на экране

void setvisualpage (int numpage)

// коэффициент сжатия

void setaspectratio (int *xasp, int *yasp)

// сохраняет в памяти битовый образ прямоугольной части экрана

void getimage (int x1, int y1, int x2, int y2, void *bitmap)

// выводит битовый образ сохраненный ранее на экран, op — определяет способ вывода изображения

void putimage (int x, int ym void *bitmap, int op)

Задача «Ханойская башня»

#include <stdio.h>

Void honoy (int k, int I,int j);

{

If(k)

{

Hanoy(k-1,I,6-i-j);

Printf(“Диск %d-й со шпиля %d на шпиль %d”,k,I,j);

}

}