Язык программирования:
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; namespace demoscene1 { public partial class Form1 : Form { private Bitmap bitmap; //инициализируем битмэп private Graphics graphix; //инициализируем графику SolidBrush background = new SolidBrush(Color.Blue); //задаем цвет фона SolidBrush circles = new SolidBrush(Color.White); //задаем цвет кружков float parameter1, parameter2, parameter3, parameter4, parameter5; //задает вращение кругов float step; //шаг анимации float angle; //угол вращения float x1, y1, x2, y2, x3, y3, x4, y4, x5, y5; //координаты кружков public Form1() { InitializeComponent(); } private void CirclesLoading() { bitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height); 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); //перемещаем координаты в центр pictureBox1.BackgroundImage = bitmap; //здесь будет отображаться анимация } private void Form1_Load(object sender, EventArgs e) { timer1.Start(); //начало работы анимации } private void timer1_Tick(object sender, EventArgs e) { CirclesLoading(); //загружаем функцию с битмэпом, графикой и отображением анимации step++; //количество шагов анимации будет постепенно увеличиваться на шаг angle += (float)0.02262; //изменяем приращение угла if (step >= 0) { x1 = -30 + (float)(180 * (float)Math.Sin(0.20285 + angle + parameter1)); //описываем положение кругов y1 = -30 + (float)(180 * (float)Math.Cos(0.20285 + angle + parameter1)); x2 = -30 + (float)(180 * (float)Math.Sin(-0.05285 + angle + parameter2)); y2 = -30 + (float)(180 * (float)Math.Cos(-0.05285 + angle + parameter2)); x3 = -30 + (float)(180 * (float)Math.Sin(-0.31295 + angle + parameter3)); y3 = -30 + (float)(180 * (float)Math.Cos(-0.31295 + angle + parameter3)); x4 = -30 + (float)(180 * (float)Math.Sin(-0.55295 + angle + parameter4)); y4 = -30 + (float)(180 * (float)Math.Cos(-0.55295 + angle + parameter4)); x5 = -30 + (float)(180 * (float)Math.Sin(-0.80095 + angle + parameter5)); y5 = -30 + (float)(180 * (float)Math.Cos(-0.80095 + angle + parameter5)); graphix.FillEllipse(circles, x1, y1, 50, 50); //закрашиваем круги graphix.FillEllipse(circles, x2, y2, 50, 50); graphix.FillEllipse(circles, x3, y3, 50, 50); graphix.FillEllipse(circles, x4, y4, 50, 50); graphix.FillEllipse(circles, x5, y5, 50, 50); parameter1 += (float)0.16312; //начало движения первого круга if (step > 31) { parameter1 -= (float)0.16312; //прекращение движения первого круга parameter2 += (float)0.16312; //начало движения второго круга } if (step > 62) { parameter2 -= (float)0.16312; //прекращение движения второго круга parameter3 += (float)0.16312; //начало движения третьего круга } if (step > 93) { parameter3 -= (float)0.16312; //прекращение движения третьего круга parameter4 += (float)0.16312; //начало движения четвертого круга } if (step > 124) { parameter4 -= (float)0.16312; //прекращение движения четвертого круга parameter5 += (float)0.16312; //начало движения пятого круга } if (step > 155) { parameter5 -= (float)0.16312; //прекращение движения пятого круга parameter1 += (float)0.16312; } if (step > 186) { parameter1 -= (float)0.16312; parameter2 += (float)0.16312; } if (step > 217) { parameter2 -= (float)0.16312; parameter3 += (float)0.16312; } if (step > 248) { parameter3 -= (float)0.16312; parameter4 += (float)0.16312; } if (step > 279) { parameter4 -= (float)0.16312; parameter5 += (float)0.16312; } if (step > 310) { parameter5 -= (float)0.16312; parameter1 += (float)0.16312; } if (step > 341) { parameter1 -= (float)0.16312; parameter2 += (float)0.16312; } if (step > 372) { parameter2 -= (float)0.16312; parameter3 += (float)0.16312; } if (step > 403) { parameter3 -= (float)0.16312; } if (step == 420) //когда анимация дойдет до 420-го шага, то... { parameter1 = 0; //обнуляем все счетчики parameter2 = 0; parameter3 = 0; parameter4 = 0; parameter5 = 0; angle = 0; step = 0; } } } } }
Прикрепленный файл | Размер |
---|---|
zakharov_demoscene1.zip | 54.58 кб |