Язык программирования:
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; using System.Threading; //для Thread.Sleep(500); namespace WindowsFormsApplication1 { public partial class Form1 : Form { private Bitmap My;//создаём bitmap и графику private Graphics g; SolidBrush FON = new SolidBrush(Color.Black); //определяем цвет фона SolidBrush square = new SolidBrush(Color.FromArgb(0, 255, 0));//цвет квадрата int i = 0; int angle = 0; //вводим угол на который будем поворачивать public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { timer1.Start(); } private void pictureBox1_Click(object sender, EventArgs e) { } private void Draw() {//функция прорисовки My = new Bitmap(pictureBox1.Width, pictureBox1.Height); //создаём графику из bitmap Graphics g = Graphics.FromImage(My); g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//для сглаживания g.FillRectangle(FON, 0, 0, 800, 800);//затираем рисунок фоном g.TranslateTransform((float)this.Width / 2, (float)this.Height / 2);//перемещаем центр координат в середину pictureBox1 g.RotateTransform(angle);//поворачиваем на заданный угол if (angle < 45) {//переходим от зелёного цвета к красному во время поворота SolidBrush square = new SolidBrush(Color.FromArgb(65 + i, 150 - i, 0));//задаём цвет i += 3;//увеличиваем количество красного и уменьшаем количество зелёного цвета g.FillRectangle(square, -150, -45, 300, 90);// рисуем горизонтальный и вертикальный прямоугольники g.FillRectangle(square, -45, -150, 90, 300); } if (angle >= 45) {//переходим от красного цвета к зелёному во время поворота SolidBrush square = new SolidBrush(Color.FromArgb(200 - i, 15 + i, 0));//задаём цвет i += 3;//увеличиваем количество зелёного и уменьшаем количество красного цвета g.FillRectangle(square, -150, -45, 300, 90);//// рисуем горизонтальный и вертикальный прямоугольники g.FillRectangle(square, -45, -150, 90, 300); } //отображаем bitmap на PictureBox pictureBox1.BackgroundImage = My; } private void timer1_Tick(object sender, EventArgs e) { angle ++;//увеличиваем угол для вращения if (angle == 45) { Thread.Sleep(500);//когда угол 45 градусов, делаем задержку i = 0;//обнуляем что бы "определяющий цвет if" работал корректно } if (angle >= 90){ Thread.Sleep(500);//когда угол 90 градусов, делаем задержку angle = 0;//после полного круга обнуляем, чтоб не выйти за int после долгой работы i = 0;//обнуляем что бы "определяющий цвет if" работал корректно } Draw();//вызываем функцию прорисовки pictureBox1.BackgroundImage = My; } } }
Прикрепленный файл | Размер |
---|---|
Ivanova_good_and_bad.rar | 49.98 кб |