내 프로그램에서 GraphicsPath를 그려려고하지만 경로에 임의의 스파이크가 추가되는 문제가있는 것으로 보입니다. 이것은 경로가 더 넓어 질수록 악화 될 것으로 보인다. 이 문제를 재현 할 수있는 몇 가지 테스트 코드를 만들었습니다.C# 그래픽 경로 그리기 문제
이 코드에는 PictureBox가 포함 된 양식 (PictureBox 크기가 최소 630 x 1050 이상)과 하나의 단추가 필요합니다. 나는 문제가 더 큰 폭으로 악화하는 방법을 보여줍니다있는 폭이 다른 여기 3 번 경로를 그린
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의 선 두께로 명확하게 볼 수 있습니다. –
나는 이것을 보지 못합니다. 반드시 GraphicsPath에 모두 추가 될 때 어쨌든 연결해야합니다. 예를 들어, 수 마일 떨어진 두 개의 다른 선을 추가하고 경로를 그린 경우에도 여전히 경로를 연결합니다. – Greg