使用.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