Среда программирования:
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 New { public partial class Form1 : Form { private Bitmap My;//создаём bitmap и графику private Graphics g; SolidBrush FON = new SolidBrush(Color.Black); //определяем цвет фона SolidBrush square = new SolidBrush(Color.FromArgb(255,236,139));//этот цвет будет меняться для прорисовки нижних под квадратов SolidBrush square1 = new SolidBrush(Color.White);//цвет для верхнего квадрата int angle = 0; //вводим угол на который будем поворачивать public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) {//вызываем таймер timer1.Start(); } 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);//поворачиваем на заданный угол for (int i = 0; i < 40; i += 2)//меняем цвет, меняем угол, рисуем квадрат в новом цвете, повёрнутым на новый угол { SolidBrush square = new SolidBrush(Color.FromArgb(29+i*5,5+i*5,0+i*3)); //(255,255,255) - белый, а (0,0,0)-чёрный, мы рисуем от самого тёмного до более светлого, не совсем с нулей начиная, что бы был золотистый оттенок g.RotateTransform(1); g.FillRectangle(square, -110, -110, 220, 220); } g.RotateTransform(1);//снова меняем угол для последнего квадрата, который будем прорисовывать (то есть передний самый) g.FillRectangle(square1, -110, -110, 220, 220);// рисуем передний квадрат //отображаем bitmap на PictureBox pictureBox1.BackgroundImage = My; } private void timer1_Tick(object sender, EventArgs e) {//функция таймера angle++;//увеличиваем угол для вращения if (angle >= 360) angle = 0;//после полного круга обнуляем, чтоб не выйти за int после долгой работы Draw();//вызываем функцию прорисовки pictureBox1.BackgroundImage = My; } } }
Прикрепленный файл | Размер |
---|---|
Ivanova_Turning _quare.zip | 49.16 кб |