Advertisement
benshepherd

Paint Spray Effect

Jan 12th, 2013
1,487
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.66 KB | None | 0 0
  1. public partial class Form1 : Form
  2. {
  3.     private bool isMouseDown;
  4.     Bitmap canvas;
  5.  
  6.     public Form1()
  7.     {
  8.         InitializeComponent();
  9.     }
  10.  
  11.     private void Form1_Load(object sender, EventArgs e)
  12.     {
  13.         this.Size = new Size(500, 500);
  14.         this.MouseDown += new MouseEventHandler(Form1_MouseDown);
  15.         this.MouseUp += new MouseEventHandler(Form1_MouseUp);
  16.         this.MouseMove += new MouseEventHandler(Form1_MouseMove);
  17.  
  18.         canvas = new Bitmap(this.Size.Width, this.Size.Height);
  19.     }
  20.  
  21.     private void Form1_MouseDown(object sender, MouseEventArgs e)
  22.     {
  23.         isMouseDown = true;
  24.     }
  25.  
  26.     private void Form1_MouseUp(object sender, MouseEventArgs e)
  27.     {
  28.         isMouseDown = false;
  29.     }
  30.  
  31.     private void Form1_MouseMove(object sender, MouseEventArgs e)
  32.     {
  33.         if (isMouseDown)
  34.         {
  35.             Color c = Color.Black;
  36.             Random r = new Random();
  37.             int x = e.X, y = e.Y, s = r.Next(10);
  38.  
  39.             for (int i = 0; i < s; i++)
  40.             {
  41.                 try
  42.                 {
  43.                     switch (r.Next(8))
  44.                     {
  45.                         case 0:
  46.                             canvas.SetPixel(x + s, y, c);
  47.                             break;
  48.                         case 1:
  49.                             canvas.SetPixel(x - s, y, c);
  50.                             break;
  51.                         case 2:
  52.                             canvas.SetPixel(x, y + s, c);
  53.                             break;
  54.                         case 3:
  55.                             canvas.SetPixel(x, y + -s, c);
  56.                             break;
  57.                         case 4:
  58.                             canvas.SetPixel(x + s, y + s, c);
  59.                             break;
  60.                         case 5:
  61.                             canvas.SetPixel(x - s, y + s, c);
  62.                             break;
  63.                         case 6:
  64.                             canvas.SetPixel(x - s, y - s, c);
  65.                             break;
  66.                         case 7:
  67.                             canvas.SetPixel(x - s, y - s, c);
  68.                             break;
  69.                     }
  70.                 }
  71.                 catch { }
  72.             }
  73.  
  74.             canvas.SetPixel(e.X, e.Y, Color.Black);
  75.  
  76.             using (Graphics g = this.CreateGraphics())
  77.             {
  78.                 g.DrawImage(canvas, Point.Empty);
  79.             }
  80.         }
  81.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement