Compare commits

...

2 Commits

Author SHA1 Message Date
Maxluli f25d3c1bcf Added a post processing precision ratio 2022-05-31 15:50:06 +02:00
Maxluli c3728b01fc Added a postprocessing v1 to both tools 2022-05-31 15:46:52 +02:00
5 changed files with 61 additions and 7 deletions
+29 -2
View File
@@ -14,6 +14,8 @@ namespace Paint_2
{ {
public class DotPencil : PaintTool public class DotPencil : PaintTool
{ {
const int POST_PROCESSING_PRECISION = 3;
private List<List<Point>> _drawings; private List<List<Point>> _drawings;
private List<List<Point>> _drawingsRedo; private List<List<Point>> _drawingsRedo;
private List<Color> _colors; private List<Color> _colors;
@@ -88,9 +90,34 @@ namespace Paint_2
Widths = new List<int>(); Widths = new List<int>();
WidthsRedo = new List<int>(); WidthsRedo = new List<int>();
} }
public void Stop(Point point) public void Stop()
{ {
throw new NotImplementedException(); for (int i = 0;i<POST_PROCESSING_PRECISION;i++)
{
List<Point> Drawing = Drawings[Drawings.Count - 1];
Drawings[Drawings.Count - 1] = PostProcessing(Drawing);
}
}
private List<Point> PostProcessing(List<Point> Drawing)
{
//THIS SHOULD BE REMOVED, IT IS ONLY HERE TO BE EASIER TO DEBUG THE CONCEPT
List<Point> NewDrawing = new List<Point>();
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<Color> GetLastColors(int colorNumber) public List<Color> GetLastColors(int colorNumber)
{ {
+1
View File
@@ -60,6 +60,7 @@ namespace Paint_2
{ {
sketch.AddDrawingPoint(MousePositionToCanvasPosition()); sketch.AddDrawingPoint(MousePositionToCanvasPosition());
drawing = false; drawing = false;
sketch.StopDrawing();
RefreshUi(); RefreshUi();
} }
+1 -1
View File
@@ -25,7 +25,7 @@ namespace Paint_2
string Name { get; set; } string Name { get; set; }
void Start(Color color, int width); void Start(Color color, int width);
void Stop(Point point); void Stop();
void Add(Point point); void Add(Point point);
void Undo(); void Undo();
void Redo(); void Redo();
+28 -2
View File
@@ -14,6 +14,8 @@ namespace Paint_2
{ {
public class Pencil : PaintTool public class Pencil : PaintTool
{ {
const int POST_PROCESSING_PRECISION = 3;
private List<List<Point>> _drawings; private List<List<Point>> _drawings;
private List<List<Point>> _drawingsRedo; private List<List<Point>> _drawingsRedo;
private List<Color> _colors; private List<Color> _colors;
@@ -89,9 +91,33 @@ namespace Paint_2
Widths = new List<int>(); Widths = new List<int>();
WidthsRedo = new List<int>(); WidthsRedo = new List<int>();
} }
public void Stop(Point point) public void Stop()
{ {
throw new NotImplementedException(); for (int i = 0; i < POST_PROCESSING_PRECISION; i++)
{
List<Point> Drawing = Drawings[Drawings.Count - 1];
Drawings[Drawings.Count - 1] = PostProcessing(Drawing);
}
}
private List<Point> PostProcessing(List<Point> Drawing)
{
List<Point> NewDrawing = new List<Point>();
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<Color> GetLastColors(int colorNumber) public List<Color> GetLastColors(int colorNumber)
{ {
+2 -2
View File
@@ -92,9 +92,9 @@ namespace Paint_2
{ {
CurrentTool.Start(CurrentTool.Color, width); CurrentTool.Start(CurrentTool.Color, width);
} }
public void StopDrawing(Point location) public void StopDrawing()
{ {
CurrentTool.Stop(location); CurrentTool.Stop();
} }
public void AddDrawingPoint(Point location) public void AddDrawingPoint(Point location)
{ {