Графика в Си.

12 сентября 2018 - Администратор

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

Чтобы работать в графическом режиме в Си, необходимо перейти в графический режим, инициализировав окно initwindow ( ширина окна, высота окна ); в котором и будут рисоваться изображения. После завершения работы  с графикой, необходимо выйти из графического режима.

Структура программы с графикой в Си.

#include <graphics.h> // подключение заголовочного файла с графическими функциями

#include <conio.h>

main()

{

initwindow ( 500, 500 ); // инициализировали и открыли окно размером 500 на 500

…рисуем графические  объекты

getch(); // ждем нажатия клавиши

closegraph(); // закрываем графический режим

}

Основные графические  объекты,  такие как  точка, линия, окружность, прямоугольник  задаются с помощью системы координат. Система координат  в графическом режиме Си задается следующим образом. Верхний левый угол экрана имеет координату x=0 и  y=0.

Координата X задается слева направо. Т.е. чем больше X, тем правее  точка.

Координата Y задается сверху вниз. Т.е. чем больше Y, тем ниже точка.

Максимальные X это ширина окна. Максимальное Y это высота окна.

Задание цвета изображения  в Си

Чтобы задать цвет изображаемого объекта, используется оператор setcolor(номер цвета);

Таблица цветов в Си.

0  черный

1 синий

2 зеленый

3 морской волны

4 красный

5 фиолетовый

6 коричневый

7 светло-серый

8 темно-серый

9 светло-синий

10 светло-зеленый

11 светлый морской волны

12 светло-красный

13 светло-фиолетовый

13 светло-фиолетовый

14 желтый

15  белый

Например

setcolor(4);// устанавливаем красный цвет

Отображение точки в Си.

Для рисования точки используется оператор

putpixel (x, y, номер цвета );

x, y – координаты точки

номер цвета – цвет,  которым будет отображена точка

Отображение линии в Си

Для рисования отрезка  используется оператор

line (x1,y1,x2,y2)

x1, y1 – координаты одного конца отрезка

x2, y2 – координаты другого конца отрезка

Отображение окружности в Си

Для рисования  окружности используется оператор

circle (x, y,r );

x, y – координаты центра окружности

r- радиус окружности

Пример. Отображение окружности белого цвета с центром 100,  100 и радиусом 20.

setcolor(15);// устанавливаем цвет рисования 15 - белый

circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20

Отображение прямоугольника в Си.

Для рисования прямоугольной рамки используется оператор.

rectangle (x1, y1, x2, y2);

x1, y1 – координаты верхнего левого угла  прямоугольника

x2, y2 – координаты нижнего правого угла  прямоугольника

Чтобы задать цвет рамки необходимо предварительно установить цвет рисования с помощью оператора setcolor(номер цвета);

Для отображения закрашенного прямоугольника в Си используются два оператора.

setfillstyle ( 1, номер цвета );

bar (x1, y1, x2, y2);

x1, y1 – координаты верхнего левого угла  прямоугольника

x2, y2 – координаты нижнего правого угла  прямоугольника

Закрашивание ограниченной области в Си.

Чтобы закрасить определенным цветом целую ограниченную область используются два  оператора.

setfillstyle ( 1, цвет закраски );

floodfill (x, y, цвет границы области);

x, y – координаты внутри области

цвет закраски – цвет , которым будет закрашиваться область

цвет границы области – цвет границы закрашиваемой области

Пример закрашенного круга.

setcolor(15);// устанавливаем цвет рисования 15 - белый

circle(100,100, 20);// рисуем окружность с центром 100, 100 и радиусом 20

setfillstyle ( 1, 15 ); // устанавливаем цвет заполнения круга белый -15

floodfill (100, 100, 15); // заполняем окружность, указывая точку внутри ее – центр

Пример графической программы.

Пример программы 17. Программа рисует автомобиль.

#include <graphics.h>

#include <conio.h>

main()

{

initwindow(500, 500);// инициализируем графическое окно

// рисуем кузов

setfillstyle (1,4 );  //  устанавливаем  вид заливки 1 -полный,  цвет заливки  4 - красный

bar(100, 150, 200, 170);// закрашенный прямоугольник  нижняя часть кузова

bar(120, 150, 170, 130);// закрашенный прямоугольник верхняя часть кузова

// рисуем колеса

setcolor(15); // устанавливаем  цвет  колеса

circle(120, 170, 10); //  левое колесо окружность ниже кузова

circle(170, 170, 10); // правое колесо окружность  ниже кузова

setfillstyle (1,8);  //  устанавливаем  вид заливки полный - 1 цвет серый - 8

floodfill(120,170,15); // закрашиваем круг левого колеса до границы круга  цветом 15

floodfill(170,170,15); // закрашиваем круг левого колеса до границы круга  цветом 15

getch(); // ждем нажатия кнопки

closegraph();  // выход из графического режима

}

   Вернуться к содержанию     Перейти к следующему уроку Случайные числа в Си