Язык программирования:
C#
Среда программирования:
Microsoft Visual Studio Express 2012
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 WindowsFormsApplication1 { public partial class Form1 : Form { private Bitmap My; //инициализация битмап private Graphics g; //инициализация графики SolidBrush pol1 = new SolidBrush(Color.Gold); //определяем цвет кругов SolidBrush pol2 = new SolidBrush(Color.FromArgb(0, 33, 55)); //определяем цвет фона float x, y; // координаты кругов int r = 42; // радиусы кругов float sp1, sp2; // переменные изменения скорости float angle1; // углы float angle2; float time; // перемеменные времени public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer1.Start();//вызов таймера } private void Draw() { My = new Bitmap(pictureBox1.Width, pictureBox1.Height); //создание битмапа Graphics g = Graphics.FromImage(My); //создание графики g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; //сглаживание g.FillRectangle(pol2, 0, 0, 800, 800); // заливаем фон g.TranslateTransform((float)pictureBox1.Width / 2, (float)pictureBox1.Height +50); //смещаем центр координат r = (int)pictureBox1.Width / 2; //задаем радиус angle1 = 0; // и задаем углы angle2 = (float)0.939; for (int i = 0; i < 12; i++)// в цикле прорисовываем каждый желтый круг { x = -40 + (float)(r * (float)Math.Cos(angle1+sp1));//иксовая координата y = -40 + (float)(r * (float)Math.Sin(angle1+sp1));//игриковая g.FillEllipse(pol1, x, y, 80, 80);//непосредственно круг angle1 += (float)0.5235;//увеличиваем угол } for (int i = 0; i < 10; i++)// аналогично темные круги { x = -42 + (float)(r * (float)Math.Cos(angle2 + sp2)); y = -42 + (float)(r * (float)Math.Sin(angle2 + sp2)); g.FillEllipse(pol2, x, y, 84, 84); angle2 += (float)0.628;//увеличиваем угол } pictureBox1.BackgroundImage = My;//отображаем битмап на пикчебокс } private void timer1_Tick(object sender, EventArgs e) { sp1 -= (float)0.01;// изменяем скорости вращения темных и светлых кргов sp2 -= (float)0.012; if (sp1 >= 0.392) sp1 = 0;// в нужный момент обнуляем if (sp2 >= 0.392) sp2 = 0; time += (float)1.0051;//увеличиваем переменную времени if (time >= 10) time = 0;//некоторое время наши точки будут статичны Draw();//вызываем функцию прорисовки pictureBox1.BackgroundImage = My;//отображаем битмап } } }
Прикрепленный файл | Размер |
---|---|
Gorev-eclipses.rar | 49.85 кб |