Пример полного решения графический узор на си
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
// узор из концентрических окружностей центр узора x и y . k количество окружностей. r изменение радиуса
void uzor(int x, int y, int k, int r)
{
int i; // переменная цикла
int color; // переменная для цвета окружности
int radius; // радиус окружности
// пробегаемся по всем окружностям
for (i=1; i<=k; i++)
{
// определяем цвет окружности
color=i%15;
// определяем радиус окружности
radius=i*r;
setcolor(color); // устанавливаем цвет
circle(x, y, radius); // окружность с центром x и y и радиусом 10
}
}
main()
{
initwindow(300, 300);
uzor (100,150,20, 5);
uzor (200,150,20, 5);
getch();
closegraph();
}
На заметку:
Чтобы создать собственную процедуру в СИ используем
1. void имя процедуры (список параметров через запятую)
{
}
Задания для самостоятельной работы:
1. Попробуйте, используя программу нарисовать картину из 4 узоров в виде креста.
2. Поменяйте узор концентрических окружностей, так, чтобы можно было задавать смещение центра окружностей
по осям x и y. Для этого в процедуре uzor необходимо добавить два параметра dx и dy смещение.
При этом координаты каждой последующей окружности будут увеличиваться xc=xc+dx yc=yc+dy
Пример решения графической программы на си для рисования узоров концентрическими окружностями
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
// узор из концентрических окружностей центр узора x и y .
//k -количество окружностей . r - изменение радиуса
//dx - смещение центра окружностей по оси x
|
|
//dy - смещение центра окружностей по оис y
void uzor(int x, int y, int k, int r, int dx, int dy)
{
int i;
int color;// цвет окружности
int radius;// радиус окружности
int xc, yc;// координаты центра окружности
xc=x;
yc=y;
// пробегаем все окружности их k
for (i=1; i<=k; i++)
{
color=i%15;//определяем цвет
radius=i*r;//определяем радиус
setcolor(color);
xc=xc+dx;// смещаем координату xc окружности
yc=yc+dy; // смещаем координату yc окружности
circle(xc, yc, radius);// рисуем окружность
}
}
main()
{
initwindow(400, 400);
uzor (100,200,5, 20, 5, 0);
uzor (200,200,5, 20, -5, 0);
uzor (150,150,5, 20, 0, 5);
uzor (150,250,5, 20, 0, -5);
getch();
closegraph();
}
Справочник
Инициализация и обработка ошибок
detectgraph() — определяет графический драйвер и графический режим при проверке аппаратного обеспечения
initgraph() — установка видеорежима
restorecrtmode() — восстановление текстового режима
graphresult() — возвращает код ошибки выполнения последней графической операции
grapherrormsg() — возвращает указатель на строку сообщения об ошибке
closegraph() — выход из графического режима
getdrivername() — возвращает указатель на строку, содержащую имя текущего графического драйвера
getmaxmode() — возвращает максимальный номер режима для текущего драйвера
getaspectratio() — возвращает текущее характеристическое отношение ширины изображения к его высоте графического режима
|
|
setaspectratio() — установка коэффициента сжатия
getgraphmode() — возвращает текущий графический режим
getmodename() — возвращает указатель на строку, содержащую имя указанного графического режима
getmoderange() — получает диапазон режимов для данного графического драйвера
graphdefaults() — переустанавливает все графические параметры в их начальные значения
installuserdriver() — добавляет дополнительные драйверы устройств в таблицу драйверов устройств BGI
installuserfont() — загружает файл со шрифтом
Фигуры
line() — рисует линию между двумя указанными точками
linerel() — рисует линию на заданное расстояние от текущей позиции CP
lineto() — рисует линию от текущей позиции
circle() — рисует окружность заданного радиуса
ellipse() — эллиптическая дуга
arc() — дуга окружности
getarccoords() — выдает координаты последнего обращения к функции arc
ellipse() — эллиптическая дуга
rectangle() — рисует прямоугольник
drawpoly() — рисует контур многоугольника
getx() — возвращает координату x текущей графической позиции
gety() — возвращает координату y текущей графической позиции
moveto() — изменение значения текущего положения пера (CR)
|
|
Заполненые фигуры
bar() — прямоугольник
bar3d() —
fillpoly() — рисует и закрашивает многоугольник
fillellipse() — рисует и закрашивает эллипс
sector() — рисует заполненный эллиптический сектор
pieslice() — рисует заполненный сектор круга
Цвет и заливка
setcolor() — установка цвета
getcolor() — возвращает текущий цвет рисунка
getmaxcolor() — возвращает максимальное значение цвета, которое может быть передано функции setcolor
setbkcolor() — установка цвета фона
getbkcolor() — возвращает текущий цвет фона
putpixel() — установить цвет пикселя
getpixel() — возвращает цвет заданной точки
Работа с палитрой
setpalette() — изменение цвета в палитре
getpalette() — получает информацию о текущей палитре
setrgbpalette() — изменение цвета в палитре по системе RGB
getdefaultpalette() — возвращает структуру определения палитры
getpalettesize() — возвращает размер справочной таблицы цветов палитры
Стиль и заливка
floodfill() — заполняет ограниченную область
setfillstyle() — устанавливает цвет и шаблон заполнения
getfillsettings() — получает информацию о текущем шаблоне и цвете заполнения
setfillpattern() — задаёт шаблон заполнения, определяемый пользователем
getfillpattern() — возвращает определенный пользователем шаблон заполнения
|
|
setlinestyle() — установка ширины и стиля линии
getlinesettings() — получает текущий цвет линии, шаблон и толщину
Окна и страницы
cleardevice() — очистка активной страницы
setactivepage() — устанавливает номер активной страницы
setvisualpage() — устанавливает номер выводимой страницы
clearviewport() — очищает текущее окно
setviewport() — создаёт графическое окно
getviewsettings() — вызывает информацию об активном окне
getmaxx() — возвращает максимальную координату х экрана
getmaxy() — возвращает максимальную координату y экрана
Графические образы
getimage() — запоминает в битовый образ некоторой области экрана
imagesize() — возвращает количество байтов, требуемых для хранения битового образа
putimage() — помещает на экран, ранее записанный в память образ
Текст
outtext() — выводит строку на экран с текущей позиции
outtextxy() — выводит строку на экран с заданной позицией
settextstyle() — устанавливает шрифт, стиль и коэффициент увеличения шрифта
setusercharsize() — устанавливает пользовательский размер шрифта
settextjustify() — устанавливает режим выравнивания текста
textheight() — возвращает ширину строки в пикселях
textwidth() — возвращает высоту строки в пикселях
Память
_graphfreemem() — освобождает графическую память
_graphgetmem() — захватывает графическую память
Дата добавления: 2021-04-15; просмотров: 65; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!