From d2dea1b16ff29f6e45fca971290f94d4e0ed2467 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Tue, 20 Apr 2021 13:34:37 -0500 Subject: added Canvas --- src/CS340.Plotter/Plot.cs | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'src/CS340.Plotter/Plot.cs') diff --git a/src/CS340.Plotter/Plot.cs b/src/CS340.Plotter/Plot.cs index 7b274d8..f26978f 100644 --- a/src/CS340.Plotter/Plot.cs +++ b/src/CS340.Plotter/Plot.cs @@ -1,21 +1,45 @@ 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; 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(); + } } } -- cgit v1.2.3-70-g09d2