У меня есть проблема в приложении для рисования, что я разрабатывал, в каких кривых Безье не работают должным образом.
У меня есть эта строка кода:
g.DrawBezier(pen, points[i - 1], points[i], points[i], points[i + 1]);
Это делаетего работа хорошая, но по какой-то причине он также рисует дополнительную строку, что очень бесполезно ...
Как вы можете видеть, по какой-то причине появляется ужасная строкавершина сплайна.
Может кто-нибудь помочь мне?
for (int i = 0; i < points.Count - 1; i++) {
pen.Color = colors[i];
pen.Width = widths[i];
if (visible[i] == true) {
g.DrawBezier(pen, points[i - 1], points[i], points[i], points[i + 1]);
if (spoints == true) {
g.DrawEllipse(new Pen(Color.LimeGreen, 5), points[i].X - 1, points[i].Y - 1, 2, 2);
if (spositions == true) {
g.DrawString(points[i].X.ToString() + ", " + points[i].Y.ToString(), new Font("Courier", 8), pen.Brush, points[i]);
}
}
}
if (sskeleton == true)
{
g.DrawLine(new Pen(Color.Magenta, 1), points[i].X, points[i].Y, points[i + 1].X, points[i + 1].Y);
}
}