summaryrefslogtreecommitdiffstats
path: root/src/CS340.Plotter/Plot.cs
blob: 0559ececf2e676223910cdd86b61eaddd35566fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Plotter
{
    public partial class Plot : Form
    {
        Random rand = new Random();
        public Plot()
        {
            InitializeComponent();
            Render();
        }
        void Render()
        {
            using var bmp = new Bitmap(Canvas.Width, Canvas.Height);
            using var gfx = Graphics.FromImage(bmp);
            using var pen = new Pen(Color.White);
            // draw one thousand random white lines on a dark blue background
            gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            gfx.Clear(Color.Navy);
            for (int i = 0; i < 1000; i++)
            {
                var pt1 = new Point(rand.Next(bmp.Width), rand.Next(bmp.Height));
                var pt2 = new Point(rand.Next(bmp.Width), rand.Next(bmp.Height));
                gfx.DrawLine(pen, pt1, pt2);
            }

            // copy the bitmap to the picturebox (double buffered)
            Canvas.Image?.Dispose();
            Canvas.Image = (Bitmap)bmp.Clone();
        }



        private void Canvas_SizeChanged(object sender, EventArgs e)
        {
            Render();
        }

        private void Canvas_MouseDown(object sender, MouseEventArgs e)
        {
            Render();
        }

        private void Plot_Load(object sender, EventArgs e)
        {

        }
    }
}