Язык программирования:
C#
Среда программирования:
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; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { Bitmap buf; //Буфер для прорисовки промежуточных кадров Graphics _graphic; //Граффика SolidBrush background = new SolidBrush (Color.White); //Кисть для заливки фона SolidBrush figure = new SolidBrush(Color.Black); //Кисть для заливки фигур bool rotate = false; // Параметры скорости движения фигур int rotspeed = 3; int movespeed = 4; //Точки квадрата Point[] sq = { new Point(100, 100), new Point(100, 250), new Point(100, 400), new Point(250, 400), new Point (400, 400), new Point (400, 250), new Point (400,100), new Point (250, 100)}; public Form1() { InitializeComponent(); buf = new Bitmap(MainBox.Width, MainBox.Height);//Определение буфера _graphic = Graphics.FromImage(buf);//Определение графики из буфера _graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//Режим размытия граффики MainBox.BackColor = background.Color;//Цвет фона timer1.Enabled = true;//Включение таймера } //Кнопка выхода private void button1_Click_1(object sender, EventArgs e) { Application.Exit(); } //Функция таймера выполняется каждые 5 мс private void timer1_Tick(object sender, EventArgs e) { if (!rotate) { sq[0].Y += rotspeed * 2; sq[2].X += rotspeed * 2; sq[4].Y -= rotspeed * 2; sq[6].X -= rotspeed * 2; sq[1].X += rotspeed; sq[1].Y += rotspeed; sq[3].X += rotspeed; sq[3].Y -= rotspeed; sq[5].X -= rotspeed; sq[5].Y -= rotspeed; sq[7].X -= rotspeed; sq[7].Y += rotspeed; if (sq[0].Y >= 250) { rotate = true; } } else //Вращение квадрата { sq[1].X -= movespeed; sq[1].Y += movespeed; sq[3].X += movespeed; sq[3].Y += movespeed; sq[5].X += movespeed; sq[5].Y -= movespeed; sq[7].X -= movespeed; sq[7].Y -= movespeed; if (sq[1].X <= 100) { rotate = false; sq[0].X = 100; sq[0].Y = 100; sq[1].X = 100; sq[1].Y = 250; sq[2].X = 100; sq[2].Y = 400; sq[3].X = 250; sq[3].Y = 400; sq[4].X = 400; sq[4].Y = 400; sq[5].X = 400; sq[5].Y = 250; sq[6].X = 400; sq[6].Y = 100; sq[7].X = 250; sq[7].Y = 100; } } //Заливка фона и прорисовка фигуры _graphic.Clear(background.Color); _graphic.FillPolygon(figure, sq); MainBox.Image = buf; } } }
Прикрепленный файл | Размер |
---|---|
Scherbak_Squer_2.rar | 93.25 кб |