Язык программирования:
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 KGRa { public partial class Form1 : Form { Bitmap myBitmap;//объявляем bitmap Graphics g;//и графику SolidBrush fon = new SolidBrush(Color.Gray);//цвет фона будет серым SolidBrush fil1 = new SolidBrush(Color.White);//цвет заливки одних квадратов будет белым int k = 58; int K = 1; int m = 0; int p = 0; public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { triangle();//в таймере будем вызывать нашу функцию } private void triangle() { myBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);//создаем битмап Graphics g = Graphics.FromImage(myBitmap);//и графику g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//избавляемся от пиксельности по краям if (K == 0) { g.FillRectangle(fon, 0, 0, 700,700);//заливаем фон Pen grayPen = new Pen(Color.Gray, 0);//цвет линий будет серым. Это нужно для того, чтобы была видимость разбиения треугольника Pen whitePen = new Pen(Color.White, 0);//цвет линий будет белым grayPen.Alignment = System.Drawing.Drawing2D.PenAlignment.Center;//линии будут увеличиваться относительно центра grayPen.Width = 1.0F + 9 * k;//увеличиваем толщину серой линии( создаём видимость разбиения треугольника) whitePen.Width = 1.0F + 2.41f * k;//увеличиваем толщину белой линии( увеличиваем наш центральный треугольник) Point[] crs = new Point[]{ new Point(-300,200), new Point(300,200),//набор точек начального треугольника new Point(0, -300) }; g.TranslateTransform(400, 300);//перемещаем центр координат в середину pictureBox1 g.RotateTransform(k);//поворачиваем на заданный угол g.FillPolygon(fil1, crs); Point[] crs1 = new Point[]{ new Point(-145,-60),new Point(145,-60),new Point(0,198)};//набор точек треугольника, который и будет нашим разбиением g.DrawPolygon(grayPen, crs1);//рисуем серый треугольник g.DrawPolygon(whitePen, crs1);//и белый g.FillPolygon(fil1, crs1); k++; } if (k == 58)//это нужно для того, чтобы изображение повторялось { K = 0; k = 0; } pictureBox1.BackgroundImage = myBitmap;//и отображаем Bitmap на pictureBox } private void Form1_Load(object sender, EventArgs e) { timer1.Start();//в данной функции вызвается таймер } } }
Прикрепленный файл | Размер |
---|---|
Pivovar_A_Triangle.rar | 26.68 кб |