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
{
const int POST_PROCESSING_PRECISION = 3;
private List<List<Point>> _drawings;
private List<List<Point>> _drawingsRedo;
private List<Color> _colors;
@@ -88,9 +90,34 @@ namespace Paint_2
Widths = 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)
{
+1
View File
@@ -60,6 +60,7 @@ namespace Paint_2
{
sketch.AddDrawingPoint(MousePositionToCanvasPosition());
drawing = false;
sketch.StopDrawing();
RefreshUi();
}
+1 -1
View File
@@ -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();
+28 -2
View File
@@ -14,6 +14,8 @@ namespace Paint_2
{
public class Pencil : PaintTool
{
const int POST_PROCESSING_PRECISION = 3;
private List<List<Point>> _drawings;
private List<List<Point>> _drawingsRedo;
private List<Color> _colors;
@@ -89,9 +91,33 @@ namespace Paint_2
Widths = 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)
{
+2 -2
View File
@@ -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)
{