Язык программирования:
C#
Среда программирования:
Microsoft Visual Studio 2010 Express
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { Bitmap myBitmap;//объявляем bitmap Graphics g;//объявляем графику SolidBrush col1 = new SolidBrush(Color.White);//изначально каждому кругу устанавливаем белый цвет SolidBrush col2 = new SolidBrush(Color.Black); float cir1, cir2, el11, el12, el21, el22, el3;//переменные для изменения координат эллипсов float w, h;//ширина и высота эллипсов float x1, y1;//координаты эллипсов int cnt;//понадобится для таймера public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer1.Start();//вызвается таймер } private void Ellipse()//функция изменения фигуры { myBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);//создаем битмап Graphics g = Graphics.FromImage(myBitmap);//и графику g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//избавляемся от пиксельности по краям g.FillRectangle(col1, 0, 0, 500, 500);//заливаем фон g.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height / 2);//смещаем начало координат в центр g.FillEllipse(col2, -50 - cir1, -50 - cir1, 100 + cir1 * 2, 100 + cir1 * 2);//прорисовываем первый круг(больший) //далее нужно прорисовать первый эллипс if (cnt >= 20 && cnt <= 60)//сначала он будет изменять ширину и высоту по-разному в каждый момент времени { x1 = -20 - el11; y1 = -3 - el12; w = 40 + (el11 * 2); h = 6 + (el12 * 2); } if (cnt > 60 && cnt < 110)// { x1 = -102 - el21; y1= -44 -el22; w = 204 + (el21 * 2); h = 88 + (el22 * 2); } if (cnt >= 110) { x1 = -200 - el3; y1 = -200 - el3; w = 400 + (el3 * 2); h = 400 + (el3 * 2); } g.FillEllipse(col1, x1, y1, w, h); if (cnt >= 20) { g.FillEllipse(col2, -5 - cir2, -5 - cir2, 10 + cir2 * 2, 10 + cir2 * 2);//потом вместе с эллипсом будем рисовать и меньший круг } pictureBox1.BackgroundImage = myBitmap;//и отображаем Bitmap на pictureBox } private void timer1_Tick(object sender, EventArgs e) { cnt++;//увеличиваем переменную количества cir1 += 3;//размер большего круга увеличиваем на 3 if (cnt >= 20) { cir2 += (float)0.37;//с определенного момента изменяем меньший круг } if (cnt >= 20 && cnt <= 60)//потом будем изменять эллипс { el11 += 2; el12++; } if (cnt > 60 && cnt < 110)//опять эллипс, но теперь уже так, чтоб он стал кругом { el21+=2; el22 += (float)3.14; } if (cnt >= 110)//и когда он стал кругом равномерно увеличиваем его { el3 += 4; } if (cnt >= 150)//когда программа заверит один цикл, все обнуляем и заново делаем все заново { cnt = 0; el11 = 0; el12 = 0; el21 = 0; el22 = 0; el3 = 0; cir1 = 0; cir2 = 0; w = 0; h = 0; x1 = 0; y1 = 0; } Ellipse();//вызываем функцию прорисовки } } }
Прикрепленный файл | Размер |
---|---|
WakeUpTravin.zip | 47.73 кб |