Язык программирования:
C#
Среда программирования:
Visual Studio C#
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 BnWCircles { public partial class Form1 : Form { //объявление переменных //битмап и графика Bitmap B; Graphics G; //заливка фона и круга SolidBrush bl, wh; //координаты белого и черного кругов и их диаметры int xw, xb, yw, yb; int dw, db; //переменная для отслеживания положения круга int time; //функция, которая рисует круг по координатам его центра void DrawCrc(int x, int y, int d) { int rad = d / 2; int xx = x - rad; int yy = y - rad; G.FillEllipse(bl, xx, yy, d, d); } public Form1() { InitializeComponent(); } //функция, которая рисует фон void DrawFon() { //черный фон G.FillRectangle(bl, 0, 0, pictureBox1.Width, pictureBox1.Height); //белый круг G.FillEllipse(wh, xw, yw, dw, dw); } private void Form1_Load(object sender, EventArgs e) { //инициализация битмап B = new Bitmap(pictureBox1.Width, pictureBox1.Height); //и графики по битмапу G = Graphics.FromImage(B); //включение сглаживания G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; //задание цветов заливки bl = new SolidBrush(Color.Black); wh = new SolidBrush(Color.White); // задание координат и диаметры для белого и черного кругов xw = 100; yw = 100; dw = 300; xb = 250; yb = 175; db = 200; //вызов функция прорисовки фона и черного круга DrawFon(); DrawCrc(xb, yb, db); //вывод изображения pictureBox1.Image = B; //обнуление времени time = 0; //включение таймера timer1.Enabled = true; } private void timer1_Tick(object sender, EventArgs e) { //на каждом шаге увеличиваем время time++; //в зависимости от времени определяется действие - увеличение или уменьшение диамтера //и подъем или опускание черного круга if (time < 15){ yb+=5; db -= 2; } else if (time < 30){ yb+=5; db += 2; } else if (time < 45){ yb-=5; db += 9; } else if (time < 60) { yb -= 5; db -= 9; } else time = -1; //прорисовка фона, круга DrawFon(); DrawCrc(xb, yb, db); //вывод изображения pictureBox1.Image = B; } } }
Прикрепленный файл | Размер |
---|---|
BnWCircles.zip | 135.17 кб |