Язык программирования:
C#
Среда программирования:
Visual Studio 2013
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; namespace Lab1 { public partial class Form1 : Form { //начальные координаты всех колец double[] x = { 75, 75, 200, 325, 325, 200, }; double[] y = { 250, 115, 50, 115, 250, 325, }; double x1 = 210.0, y1 = 200.0; //Инициализация bitmap и графики private Bitmap My; private const double pi = 3.14; // радиус центрального кольца double r = 80; // толщина кольца double a = 10; public Form1() { // выравнивание координат колец for (int i = 0; i < N; i++) { x[i] += 50; y[i] += 50; } InitializeComponent(); } private void pictureBox1_Click(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { timer1.Start(); } double t = 0;//время const int N = 6; //кол-во колец const double r1 = 50, r2 = 100, TICK = 0.010; //радиусы по которым будет увеличиваться кольцо private void timer1_Tick(object sender, EventArgs e) { //Создаем bitmap My = new Bitmap(pictureBox1.Width, pictureBox1.Height); //Создаем графику из bitmap Graphics g = Graphics.FromImage(My); //cnt определяет цвет фона и шара если "0" то шар синий фон белый Pen Gl2 = new Pen(Color.White, (int)a); double[] rads = new double[N]; // Изменения радиуса колец for (int i = 0; i < N; i++) { rads[i] = r1 + (r2 - r1) / 2 * (Math.Sin(2 * pi * t + 2 * pi * i / N) + 1); } for (int i = 0; i < N; i++) { //прорисовка колец Rectangle curr = new Rectangle((int)(x[i] - rads[i] / 2), (int)(y[i] - rads[i] / 2), (int)rads[i], (int)rads[i]); g.DrawEllipse(Gl2, curr); g.DrawEllipse(Gl2, (int)x1, (int)y1, (int)r, (int)r); } //Выводим содержимое на picturebox pictureBox1.BackgroundImage = My; t += TICK; } } }
Прикрепленный файл | Размер |
---|---|
Nabiev pulse rings.zip | 57.68 кб |