From c3728b01fc63200c17f93a642a83548324acaa34 Mon Sep 17 00:00:00 2001 From: maxluli Date: Tue, 31 May 2022 15:46:52 +0200 Subject: [PATCH] Added a postprocessing v1 to both tools --- Paint_2/DotPencil.cs | 26 ++++++++++++++++++++++++-- Paint_2/Form1.cs | 1 + Paint_2/PaintTool.cs | 2 +- Paint_2/Pencil.cs | 25 +++++++++++++++++++++++-- Paint_2/Sketch.cs | 4 ++-- 5 files changed, 51 insertions(+), 7 deletions(-) diff --git a/Paint_2/DotPencil.cs b/Paint_2/DotPencil.cs index 92f6a4b..095e390 100644 --- a/Paint_2/DotPencil.cs +++ b/Paint_2/DotPencil.cs @@ -88,9 +88,31 @@ namespace Paint_2 Widths = new List(); WidthsRedo = new List(); } - public void Stop(Point point) + public void Stop() { - throw new NotImplementedException(); + List Drawing = Drawings[Drawings.Count - 1]; + Drawings[Drawings.Count - 1] = PostProcessing(Drawing); + } + private List PostProcessing(List Drawing) + { + //THIS SHOULD BE REMOVED, IT IS ONLY HERE TO BE EASIER TO DEBUG THE CONCEPT + List NewDrawing = new List(); + Point previous = new Point(-1, -1); + //Implementing a post processing + foreach (Point point in Drawing) + { + if (previous != new Point(-1, -1)) + { + NewDrawing.Add(new Point((previous.X + point.X) / 2, (previous.Y + point.Y) / 2)); + previous = point; + } + else + { + previous = point; + } + NewDrawing.Add(point); + } + return NewDrawing; } public List GetLastColors(int colorNumber) { diff --git a/Paint_2/Form1.cs b/Paint_2/Form1.cs index 0026135..0c7456b 100644 --- a/Paint_2/Form1.cs +++ b/Paint_2/Form1.cs @@ -60,6 +60,7 @@ namespace Paint_2 { sketch.AddDrawingPoint(MousePositionToCanvasPosition()); drawing = false; + sketch.StopDrawing(); RefreshUi(); } diff --git a/Paint_2/PaintTool.cs b/Paint_2/PaintTool.cs index 6ac488a..cfb1170 100644 --- a/Paint_2/PaintTool.cs +++ b/Paint_2/PaintTool.cs @@ -25,7 +25,7 @@ namespace Paint_2 string Name { get; set; } void Start(Color color, int width); - void Stop(Point point); + void Stop(); void Add(Point point); void Undo(); void Redo(); diff --git a/Paint_2/Pencil.cs b/Paint_2/Pencil.cs index cca5f63..eabd073 100644 --- a/Paint_2/Pencil.cs +++ b/Paint_2/Pencil.cs @@ -89,9 +89,30 @@ namespace Paint_2 Widths = new List(); WidthsRedo = new List(); } - public void Stop(Point point) + public void Stop() { - throw new NotImplementedException(); + List Drawing = Drawings[Drawings.Count - 1]; + Drawings[Drawings.Count - 1] = PostProcessing(Drawing); + } + private List PostProcessing(List Drawing) + { + List NewDrawing = new List(); + Point previous = new Point(-1, -1); + //Implementing a post processing + foreach (Point point in Drawing) + { + if (previous != new Point(-1, -1)) + { + NewDrawing.Add(new Point((previous.X + point.X)/2,(previous.Y + point.Y)/2)); + previous = point; + } + else + { + previous = point; + } + NewDrawing.Add(point); + } + return NewDrawing; } public List GetLastColors(int colorNumber) { diff --git a/Paint_2/Sketch.cs b/Paint_2/Sketch.cs index e2b77aa..9de5019 100644 --- a/Paint_2/Sketch.cs +++ b/Paint_2/Sketch.cs @@ -92,9 +92,9 @@ namespace Paint_2 { CurrentTool.Start(CurrentTool.Color, width); } - public void StopDrawing(Point location) + public void StopDrawing() { - CurrentTool.Stop(location); + CurrentTool.Stop(); } public void AddDrawingPoint(Point location) {