在我的 WinForms 程序中,我在感受 carthesian 图中两条曲线之间的空间时遇到了一些困难。
基本上我有两条曲线,我使用这种方法在位图上绘制它们:
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);