Язык программирования:
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 WindowsFormsApplication2 { public partial class Form1 : Form { private Bitmap bitmap; //инициализируем битмэп private Graphics graphix; //инициализируем графику SolidBrush BG = new SolidBrush(Color.FromArgb(65 ,105 ,225)); //задаем цвет фона SolidBrush rect1 = new SolidBrush(Color.FromArgb(240 ,255 ,240)); //задаем цвет квадратов SolidBrush rect2 = new SolidBrush(Color.Black); Pen PenRect = new Pen(Color.Black, 3); //цвет контура кругов и центрального //центрального квадрата float i; //переменная для цикла float angle; //угол int sr, se, cnt; //радиусы кругов и квадрата, счетчик float k = 0; //отвечает за перемещение черных прямоугольников public Form1() { InitializeComponent(); } private void DRAW() { bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height); //создаем битмап graphix = Graphics.FromImage(bitmap); //создаем графику graphix.FillRectangle(BG, 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); //поворачиваем на заданный угол graphix.DrawRectangle(PenRect, -50 - sr, -50 - sr, 100 + sr * 2, 100 + sr * 2); //рисуем квадрат graphix.DrawEllipse(PenRect, -se, -se, se * 2, se * 2); //рисуем круги graphix.DrawEllipse(PenRect, se * 2, se * 2, se * 2, se * 2); graphix.DrawEllipse(PenRect, -se * 4, -se * 4, se * 2, se * 2); graphix.DrawEllipse(PenRect, se * 2, -se * 4, se * 2, se * 2); graphix.DrawEllipse(PenRect, -se * 4, se * 2, se * 2, se * 2); for (i = 0; i < 17; i++) { graphix.FillRectangle(rect1, 60 + 15 * i, -50 + i * (float)2.5, 10, 100 - i * 5); //прямоугольники справа } for (i = 0; i < 17; i++) { graphix.FillRectangle(rect1, -50 + i * (float)2.5, -70 - 15 * i, 100 - i * 5, 10); //верхние прямоугольники } for (i = 0; i < 17; i++) { graphix.FillRectangle(rect1, -50 + i * (float)2.5, 60 + 15 * i, 100 - i * 5, 10); //нижние прямоугольники } for (i = 0; i < 17; i++) { graphix.FillRectangle(rect1, -70 - 15 * i, -50 + i * (float)2.5, 10, 100 - i * 5); //прямоугольники слева } graphix.FillRectangle(rect2, 60 + 15 * k, - 50 + k * (float)2.5, 10, 100 - k * 5); //черные двигающиеся graphix.FillRectangle(rect2, -50 + k * (float)2.5, -70 - 15 * k, 100 - k * 5, 10); //прямоугольники graphix.FillRectangle(rect2, -50 + k * (float)2.5, 60 + 15 * k, 100 - k * 5, 10); graphix.FillRectangle(rect2, -70 - 15 * k, -50 + k * (float)2.5, 10, 100 - k * 5); pictureBox1.BackgroundImage = bitmap;// отображаем Bitmap на pictureBox } private void timer1_Tick(object sender, EventArgs e) { DRAW(); angle += (float)1; //увеличиваем угол cnt++; //увеличиваем счетчик if(cnt < 150) //пока счетчик меньше 150 { sr--; //уменьшаем радиус центрального квадрата k += (float)0.1; //перемещаем черные прямоугольники } if(cnt > 50 && cnt < 100) //счетчик больше 50 и меньше 100 { se++; //перемещаем черные круги от центра } if(cnt > 100 && cnt < 150) //счетчик больше 100 и меньше 150 { se--; //перемещаем круги в центр } if (cnt > 150) //счетчик больше 150 { sr++; //увеличиваем квадрат k -= (float)0.1; //перемещаем черные прямоугольники обратно } if(cnt > 150 && cnt < 200) //счетчик больше 150 и меньше 200 { se++; //перемещаем круги от центра } if(cnt > 200 && cnt < 250) //счетчик больше 200 меньше 250 { se--; //перемещаем круги в центр } if(cnt == 300) //счетчик равен 300 обнуляем переменные { sr = 0; se = 0; cnt = 0; k = 0; } } } }
Прикрепленный файл | Размер |
---|---|
Volkov_Ellipses.rar | 49.74 кб |