.NET의 System.Drawing.Graphics
GDI 항목을 사용하면 두 개의 점 배열이있는 모양을 갖게됩니다. 아래 이미지의 빨간색과 녹색 픽셀입니다.겹치는 커브로 어떻게 GraphicsPath를 채울 수 있습니까?
이제이 도형의 내부를 색상으로 채우려고합니다. 간단한 선으로 그려도 괜찮습니다. 이와 같이 :
g.DrawCurve(Pens.Red, points1);
g.DrawCurve(Pens.Green, points2);
이렇게하면 왼쪽 이미지 (1)가됩니다.
alt text http://lisa.xms.se/wic/filled.png
내가 이런GraphicsPath
를 사용하여 시도,이 일을 채우려면 :
GraphicsPath gp = new GraphicsPath();
gp.AddCurve(points1);
gp.AddCurve(points2);
g.FillPath(Brushes.Blue, gp);
의미가 있습니다 ... 그렇다고. 문제는 중간 이미지 (2)에서 볼 수있는 것처럼 모양이 겹쳐져 겹치는 부분을 채우지 않을 때입니다.
나는 윤곽을 얻고 그 후에 채우기 위해 gp.widen()
를 사용하여 시도 :
gp.Widen(new Pen(Color.Blue, 3));
g.FillPath(Brushes.Blue, gp);
작동한다고
하지만 단지 3 픽셀 조각 외부 모양이 아닌 전체를 채울 것으로 보인다 , 이미지 (3)에서 볼 수 있듯이.
어떻게 해결할 수 있습니까?
당신은 점 1과 points2 초기화를 추가 할 수 있습니까? –