GDI+ Circle Animation: Central Circle |
|
Introduction
This a simple circular animatoin where an empty circle is drawn from the center of a form and starts enlarging by the seconds. When its diameter becomes equal to the width (and/or height) of the form, its starts shrinking back.
using System; using System.Drawing; using System.Windows.Forms; public class Exercise : Form { PictureBox pbxCanvas; private Timer tmrDrawObjects; bool isMax; int mainRadius; public Exercise() { InitializeComponent(); } private void InitializeComponent() { pbxCanvas = new PictureBox(); pbxCanvas.Dock = DockStyle.Fill; pbxCanvas.Paint += new PaintEventHandler(pbxCanvasPaint); Controls.Add(pbxCanvas); tmrDrawObjects = new Timer(); tmrDrawObjects.Interval = 20; tmrDrawObjects.Enabled = true; tmrDrawObjects.Tick += new EventHandler(tmrDrawObjectsTick); Text = "Circle Animation"; Load += new EventHandler(FormLoad); MaximizeBox = false; StartPosition = FormStartPosition.CenterScreen; ClientSize = new System.Drawing.Size(1024, 1024); } private void FormLoad(object sender, EventArgs e) { mainRadius = 10; } private void DrawCentralCircle(Graphics graph, int Radius) { int start = (pbxCanvas.ClientRectangle.Width / 2) - Radius; int end = (pbxCanvas.ClientRectangle.Height / 2) - Radius; int diam = Radius * 2; graph.DrawEllipse(new Pen(Color.Orange), start, end, diam, diam); } private void pbxCanvasPaint(object sender, PaintEventArgs e) { e.Graphics.FillRectangle(new SolidBrush(Color.Black), 0, 0, Width, Height); // Central Circle DrawCentralCircle(e.Graphics, mainRadius); } private void tmrDrawObjectsTick(object sender, EventArgs e) { if (isMax == true) mainRadius--; else mainRadius++; if (mainRadius > (pbxCanvas.ClientRectangle.Height / 2)) isMax = true; if (mainRadius < 10) isMax = false; pbxCanvas.Invalidate(); } [STAThread] public static int Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Exercise()); return 0; } }
|
||
Home | Copyright © 2016-2021, FunctionX | Home |
|