Язык программирования:
C#
Среда программирования:
Visual Studio 2013
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; using System.Threading; namespace Lab1 { public partial class Form1 : Form { //параметры изменения координат кругов, и его радиуса double cnt1 = 1.0, cnt2 = 1.0, cnt5 = 2.5, cnt6 = 2.5, cnt31 = 1, cnt32 = 1.5, cnt41 = 1, cnt42 = 1.5, cnt71 = 1.6, cnt72 = 2.56, cntr = 1, ctra = 0.1; //начальные координаты всех кругов double x1 = 100.0, y1 = 100.0, x2 = 100.0, y2 = 100.0, x3 = 100.0, y3 = 100.0, x4 = 100.0, y4 = 100.0, x5 = 100.0, y5 = 100.0, x6 = 100.0, y6 = 100.0, x7 = 100.0, y7 = 100.0, x8 = 100.0, y8 = 100.0; //Инициализация bitmap и графики private Bitmap My; private Graphics g; //началный радиус double r = 300; // толщина круга double a = 9; public Form1() { InitializeComponent(); } private void pictureBox1_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { timer1.Start(); } private void Draw1(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double x5, double y5, double x6, double y6, double x7, double y7, double x8, double y8, double r, double a) { //Создаем bitmap My = new Bitmap(pictureBox1.Width, pictureBox1.Height); //Создаем графику из bitmap Graphics g = Graphics.FromImage(My); Pen Gl2 = new Pen(Color.White, (int)a); //прорисовка каждого круга g.DrawEllipse(Gl2, (int)x1,(int) y1, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x2, (int)y2, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x3, (int)y3, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x4, (int)y4, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x5, (int)y5, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x6, (int)y6, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x7, (int)y7, (int)r, (int)r); g.DrawEllipse(Gl2, (int)x8, (int)y8, (int)r, (int)r); } private void timer1_Tick(object sender, EventArgs e) { //Создаем bitmap My = new Bitmap(pictureBox1.Width, pictureBox1.Height); //Создаем графику из bitmap Graphics g = Graphics.FromImage(My); //cnt определяет цфет фона и шара если "0" то шар синий фон белый //вызов функции прорисовки кругов Draw1(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6, x7, y7, x8, y8, r, a); //изменение толщины a = a - ctra; if (a <= 5) { ctra = -ctra; } if (a >= 9) { ctra = -ctra; } //измененние радиуса r = r - cntr; if (r <= 260) { cntr = -cntr; } if (r >= 300) { cntr = -cntr; } //изменение положения y1 = y1 - cnt1; x2 = x2 - cnt2; y5 = y5 + cnt5; x6 = x6 + cnt6; x3 = x3 - cnt31; y3 = y3 + cnt32; x4 = x4 + cnt42; y4 = y4 - cnt41; x7 = x7 + cnt72; y7 = y7 + cnt71; x8 = x8 + cnt71; y8 = y8 + cnt72; //изменение стороны движения на противоположную if (y1 <= 60) { cnt1 = -cnt1; } if (y1 >= 100) { cnt1 = -cnt1; } if (x2 <= 60) { cnt2 = -cnt2; } if (x2 >= 100) { cnt2 = -cnt2; } if (x3 <= 60) { cnt31 = -cnt31; cnt32 = -cnt32; } if (x3 >= 100) { cnt31 = -cnt31; cnt32 = -cnt32; } if (x4 >= 160) { cnt41 = -cnt41; cnt42 = -cnt42; } if (x4 <= 100) { cnt41 = -cnt41; cnt42 = -cnt42; } if (y5 >= 200) { cnt5 = -cnt5; } if (y5 <= 100) { cnt5 = -cnt5; } if (x6 <= 100) { cnt6 = -cnt6; } if (x6 >= 200) { cnt6 = -cnt6; } if (x7 >= 200) { cnt71 = -cnt71; cnt72 = -cnt72; } if (x7 <= 100) { cnt71 = -cnt71; cnt72 = -cnt72; } //Выводим содержимое на picturebox pictureBox1.BackgroundImage = My; //задержка в положениях максимального раскрытия и сжатия if (y1 <=60) { Thread.Sleep(500);} if (y1 >= 100) { Thread.Sleep(500); } } } }
Прикрепленный файл | Размер |
---|---|
Muzychuk_rings.zip | 56.35 кб |