Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f25d3c1bcf | |||
| c3728b01fc |
+29
-2
@@ -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)
|
||||
{
|
||||
|
||||
@@ -60,6 +60,7 @@ namespace Paint_2
|
||||
{
|
||||
sketch.AddDrawingPoint(MousePositionToCanvasPosition());
|
||||
drawing = false;
|
||||
sketch.StopDrawing();
|
||||
RefreshUi();
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user