Язык программирования:
C#
Среда программирования:
Microsoft Visual Studio 2015
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication8 { public partial class Form1 : Form { private Bitmap bitmap; //инициализируем битмэп private Graphics graphix; //инициализируем графику SolidBrush background = new SolidBrush(Color.FromArgb(255 ,231 ,186)); //задаем цвет фона SolidBrush ellipse1 = new SolidBrush(Color.FromArgb(139 ,0 ,139)); //задаем цвета кружков SolidBrush ellipse2 = new SolidBrush(Color.FromArgb(0 ,0 ,139)); int k = 50; //расстояние между кружками int i, j; //переменные циклов отрисовки int cnt; //счетчик int s1 = 50, s2 = 0; //площадь кружков float x1, y1, x2, y2; //координаты кружков float angle; //отвечает за угол поворота private void FillEllipse() { bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height); //создаём графику из bitmap graphix = Graphics.FromImage(bitmap); graphix.FillRectangle(background, 0, 0, pictureBox1.Width, pictureBox1.Height); //закрашиваем фон graphix.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; //сглаживание graphix.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height / 2); //перемещаем координаты в центр graphix.RotateTransform(angle); //поворачиваем на нужный угол for (i = 0; i <= 14; i++) // рисуем кружки { for (j = 0; j <= 14; j++) { graphix.FillEllipse(ellipse1, -380 + j * k - x1, -380 + i * k - y1, s1, s1); } j = 0; } for (i = 0; i <= 14; i++) { for (j = 0; j <= 14; j++) { graphix.FillEllipse(ellipse2,-333 + j * k - x2,-333 + i * k - y2, s2, s2); } j = 0; } pictureBox1.BackgroundImage = bitmap; //отображаем битмап на pictureBox } public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { cnt++; FillEllipse(); //рисуем кружки angle += (float)0.3; //увеличиваем угол if (cnt < 50) //пока счетчик меньше 50-ти уменьшаем фиолетовые кружки и увеличиваем синие { s1--; x1 += (float)0.1; y1 += (float)0.1; s2++; x2 -= (float)0.1; y2 -= (float)0.1; } if(cnt > 50) //как только счетчик становится больше 50-ти начинаем увеличивать фиолетовые кружки и уменьшать синие { s1++; x1 -= (float)0.1; y1 -= (float)0.1; s2--; x2 += (float)0.1; y2 += (float)0.1; } if( cnt == 100) //как только счетчик становится равным 100 обнуляем переменные и начинаем заново { s1 = 50; s2 = 0; cnt = 0; } } } }
Прикрепленный файл | Размер |
---|---|
Volkov_Circles.rar | 49.79 кб |