Пример полного решения графический узор на си



#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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!