0
我在我的WinForms程序中感覺到笛卡兒圖形中兩條曲線之間的空間時遇到一些困難。以笛卡爾圖形填充兩條曲線之間的空間
Basicly我有兩條曲線,我畫他們在使用這種方法的位圖:
public Bitmap DrawEnvelope(PointF[] u, PointF[] d)
{
g = Graphics.FromImage(box);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
Pen pengraph = new Pen(Color.FromArgb(50, 0 ,0 ,200), 1F);
pengraph.Alignment = PenAlignment.Center;
g.DrawCurve(pengraph, u, 0); //uperline
g.DrawCurve(pengraph, d, 0); //downline
g.Dispose();
return box;
}
現在我想使用一種顏色填充這兩條曲線之間的空間。如何才能做到這一點?
我在MSDN看了一下,發現了一個像FillClosedCurve的方法。但在這種情況下它並不能幫助我。
謝謝。
由圓弧Akh的評論解決
joinedCurves.AddRange(u);
joinedCurves.AddRange(d.Reverse());
PointF[] fillPoints = joinedCurves.ToArray();
SolidBrush fillBrush = new SolidBrush(Color.FromArgb(50, 0, 0, 200));
FillMode newFillMode = FillMode.Alternate;
g.FillClosedCurve(fillBrush, fillPoints, newFillMode, 0);
爲什麼你不FillClosedCurve工作?我認爲,如果你調用FillClosedCurve整個上面的曲線點集合,然後按照相反的順序跟着下面的曲線點,所以(對於上面的曲線,x = 1 ... 10,對於下面的曲線x = 10 ... 1) FillClosedCurve會給你你想要的結果。然後,您將會像以前一樣分別繪製曲線。 – Akh 2011-04-29 23:59:47
@Akh Yeah它的一部分工作,但它連接上線的結束,以下線開始,它看起來很糟糕!我怎樣才能讓上線和下線成爲閉合曲線?他們目前沒有關閉,並且是兩條單獨的曲線。 – 2011-04-30 11:32:16
@Akh ok ok我有想法,我不得不扭轉下來的曲線!謝謝! – 2011-04-30 11:34:44