Узоры окружности
Графические узоры на си
Рассмотрим программу для рисования узоров на си. Программа будет рисовать узор из концентрических окружностей
Концентрические окружности это набор окружностей, которые имеют общий центр и различный радиус(возможно разный цвет).
Для того чтобы составлять различные узоры из концентрических окружностей необходимо написать процедуру рисования концентрических окружностей с заданным центром. При написании программы полезными будут уроки Графика в Си. и Процедуры и функции в Си.
В процедуре рисования концентрических окружностей будут следующие входные параметры
x – координата x центра окружностей
y- координата y центра окружностей
k – количество окружностей
r- изменение радиуса
Чтобы нарисовать концентрические окружности используется цикл for. Переменная цикла будет задавать текущий номер окружности.Чтобы нарисовать окружность в Си использучется оператор circle(x,y,radius)
#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 и радиусом radius
}
}
В дальнейшем в программе мы можем вызывать данную процедуру несколько раз, меняя ее входные параметры.
Пример полного решения графический узор на си
#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();
}
Полезно почитать по теме графика в Си
Графика в Си
Графическая программа на Си Анимация на Си
Графическая программа на Си Узорный орнамент на Си
Поделиться
Нет комментариев. Ваш будет первым!