使用.NET的System.Drawing.Graphics
GDI的东西,我有一个形状const的两个点的数组。它们是下图中的红色和绿色像素。如何用重叠曲线填充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)所示。
任何想法如何解决这个问题?
你可以添加points1和points2初始化? – 2009-11-23 20:18:42