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 WindowsFormsApp10 { public partial class Form1 : Form { public static List pool; public static Point first; public static Point second; public Form1() { InitializeComponent(); pool = new List(); } private void Canvas_MouseDown(object sender, MouseEventArgs e) { listBox1.Items.Add("Point: (" + e.X + ", " + e.Y + ")"); first = new Point(e.X, e.Y); pool.Add(e.Location); /* using (Pen slacker = new Pen(Color.BurlyWood)) { g.DrawLine(slacker, 0, 0, Canvas.Width, Canvas.Height); } */ } private void Canvas_MouseUp(object sender, MouseEventArgs e) { second = e.Location; pool.Add(e.Location); listBox1.Items.Add("Line: "); listBox1.Items.Add("(" + first.X + ", " + first.Y + ") to (" + e.X + ", " + e.Y + ")"); Canvas.Refresh(); } private void Canvas_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; using (Pen myPen = new Pen(Color.BurlyWood)) { using (Brush myBrush = new SolidBrush(Color.BurlyWood)) { for (int i = 0; i < pool.Count; i += 2) { g.FillCircle(myBrush, pool[i].X, pool[i].Y, 20); g.DrawLine(myPen, pool[i], pool[i + 1]); } } } } } public static class GraphicsExtensions { public static void DrawCircle(this Graphics g, Pen pen, float centerX, float centerY, float radius) { g.DrawEllipse(pen, centerX - radius, centerY - radius, radius + radius, radius + radius); } public static void FillCircle(this Graphics g, Brush brush, float centerX, float centerY, float radius) { g.FillEllipse(brush, centerX - radius, centerY - radius, radius + radius, radius + radius); } } }