Mega Code Archive

 
Categories / C# / 2D Graphics
 

Timer based animation

using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form{     private System.ComponentModel.IContainer components;   public Form1(){     InitializeComponent();   }   #region Windows Form Designer generated code   private void InitializeComponent(){       this.components = new System.ComponentModel.Container();       this.timer1 = new System.Windows.Forms.Timer(this.components);       this.timer1.Enabled = true;       this.timer1.Tick += new System.EventHandler(this.timer1_Tick);       this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);       this.ClientSize = new System.Drawing.Size(292, 260);       this.Name = "Form1";       this.Text = "LinearGradientBrush Demo";       this.Load += new System.EventHandler(this.Form1_Load);       this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);     }   #endregion   static void Main(){     Application.Run(new Form1());   }     private void Form1_Load(object sender, System.EventArgs e) {       this.BackColor = Color.FromArgb(255, 0, 0, 255);       }     private System.Windows.Forms.Timer timer1;     private float angle = 0;     private LinearGradientBrush GetBrush()     {       return new LinearGradientBrush(         new Rectangle( 20, 20, 200, 100),         Color.Orange,         Color.Yellow,         0.0F,         true);     }     private void Rotate( Graphics graphics, LinearGradientBrush brush )     {       brush.RotateTransform(angle);       brush.SetBlendTriangularShape(.5F);       graphics.FillRectangle(brush, brush.Rectangle);     }     private void Rotate(Graphics graphics)     {       angle += 5 % 360;       Rotate(graphics, GetBrush());     }     private void timer1_Tick(object sender, System.EventArgs e)     {       Rotate(CreateGraphics());     }     private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)     {       Rotate(e.Graphics);     } }