Cleaned Bezier code to prepare the following
This commit is contained in:
@@ -95,36 +95,6 @@ namespace Paint_2
|
||||
int yDiff = end.Y - start.Y;
|
||||
int resultX = start.X + (int)(t * xDiff);
|
||||
int resultY = start.Y + (int)(t * yDiff);
|
||||
/*
|
||||
if (xDiff > 0)
|
||||
{
|
||||
//Ex start 100 end 200
|
||||
resultX = start.X + (int)(t * xDiff);
|
||||
//resultX = (int)(t * xDiff);
|
||||
}
|
||||
else if(xDiff < 0){
|
||||
//Ex start 200 end 100
|
||||
resultX = start.X + (int)(t * xDiff);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultX = 0;
|
||||
}
|
||||
if (yDiff > 0)
|
||||
{
|
||||
//Ex start 100 end 200
|
||||
resultY =
|
||||
}
|
||||
else if (yDiff < 0)
|
||||
{
|
||||
//Ex start 200 end 100
|
||||
resultY = start.Y + (int)(t * yDiff);
|
||||
}
|
||||
else
|
||||
{
|
||||
resultY = 0;
|
||||
}
|
||||
*/
|
||||
Point result = new Point(resultX,resultY);
|
||||
return result;
|
||||
}
|
||||
@@ -149,15 +119,20 @@ namespace Paint_2
|
||||
{
|
||||
pointSize = new Size(Widths[i - 1], Widths[i - 1]);
|
||||
gr.FillEllipse(new SolidBrush(Colors[i - 1]), new Rectangle(new Point(points[i - 1].X - pointSize.Width / 2, points[i - 1].Y - pointSize.Height / 2), pointSize));
|
||||
|
||||
if (i % 4 == 0)
|
||||
if(i >= 4)
|
||||
{
|
||||
//Drawing the given sharp outline
|
||||
Point p1 = points[i - 4];
|
||||
Point p2 = points[i - 3];
|
||||
Point p3 = points[i - 2];
|
||||
Point p4 = points[i - 1];
|
||||
|
||||
BezierGenerator(gr,p1,p2,p3,p4,i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private void BezierGenerator(Graphics gr,Point p1,Point p2,Point p3,Point p4,int i)
|
||||
{
|
||||
gr.DrawLine(new Pen(Colors[i - 4], Widths[i - 4]), p1, p2);
|
||||
gr.DrawLine(new Pen(Colors[i - 3], Widths[i - 3]), p2, p3);
|
||||
gr.DrawLine(new Pen(Colors[i - 2], Widths[i - 2]), p3, p4);
|
||||
@@ -167,7 +142,7 @@ namespace Paint_2
|
||||
|
||||
for (float t = 0; t <= 1; t += precision)
|
||||
{
|
||||
//float t = 0.2f;
|
||||
//Quadratic Bezier Curve creator
|
||||
//Drawing the first step of the curve
|
||||
Point p1_2 = Lerp(p1, p2, t);
|
||||
Point p2_2 = Lerp(p2, p3, t);
|
||||
@@ -185,10 +160,7 @@ namespace Paint_2
|
||||
//Drawing the Bezier Point
|
||||
Point p1_4 = Lerp(p1_3, p2_3, t);
|
||||
|
||||
gr.FillEllipse(new SolidBrush(GetRandomColor()), new Rectangle(p1_4.X, p1_4.Y, Widths[0], Widths[0]));
|
||||
}
|
||||
}
|
||||
}
|
||||
gr.FillEllipse(new SolidBrush(GetRandomColor()), new Rectangle(p1_4.X - Widths[0] / 2, p1_4.Y - Widths[0] / 2, Widths[0], Widths[0]));
|
||||
}
|
||||
}
|
||||
private Color GetRandomColor()
|
||||
|
||||
Reference in New Issue
Block a user