Я пытаюсь нарисовать GraphicsPath в моей программе, но, похоже, у него проблемы, когда он добавляет случайные всплески к пути. Это, кажется, все хуже, чем шире. Я сделал несколько тестовых кодов, которые могут реплицировать эту проблему.C# GraphicsPath вопросы рисования
Этот код требует формы с PictureBox в ней (размеры PictureBox не менее 630 x 1050) и одной кнопкой. Код затем следующим образом:
private void button1_Click(object sender, EventArgs e)
{
drawSomeLines();
pictureBox1.Refresh();
}
private void drawSomeLines()
{
//initialise the plot area:
Bitmap image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.BackgroundImage = image;
Graphics g = Graphics.FromImage(image);
//create a graphics path:
GraphicsPath gPath = new GraphicsPath();
//add sections to the path:
gPath.AddLine(587.310059F, 29.2261658F, 229.974731F, 668.2402F);
gPath.AddArc(new RectangleF(203.177338F,560.3876F,421.357F,421.357F), -(90 - 299.21382700000413F), -1.532426F);
gPath.AddArc(new RectangleF(203.177368F,560.3876F,421.357F,421.357F), -(90 - 297.72672132554612F), -1.53240252F);
gPath.AddLine(224.740067F,678.2186F, 76.6899643F,979.773865F);
//draw the path 3 times, at different widths:
g.DrawPath(new Pen(new SolidBrush(Color.FromArgb(100, Color.Blue)), 80), gPath);
g.DrawPath(new Pen(new SolidBrush(Color.Blue), 40), gPath);
g.DrawPath(new Pen(new SolidBrush(Color.Red), 2), gPath);
}
Я нарисовал путь здесь 3 раза в разных ширинах, которая показывает, как проблема становится хуже при большей ширине.
Кто-нибудь знает, почему это происходит, и как я могу это предотвратить? Любые идеи будут высоко оценены.
Cheers,
Грегло
Точки не соединяются. Разрыв четко виден с толщиной линии 3. –
Я этого не вижу. Конечно, они должны подключиться в любом случае, поскольку все они добавлены в GraphicsPath. Например, даже если бы я добавил две разные линии, которые были милями друг от друга, а затем нарисовал путь, он все равно соединит их. – Greg