C# 4.0 有没有办法用C#GDI+;来填充图形;,图形中涉及多重圆弧、直线的位置?
我的应用程序涉及自定义形状的绘制,其中形状的详细信息从数据库中检索。形状将是直线、圆弧 我将调用DrawArc和DrawLine函数来绘制自定义形状 我的问题是我需要用背景色填充这个自定义形状 我正在使用以下名称空间C# 4.0 有没有办法用C#GDI+;来填充图形;,图形中涉及多重圆弧、直线的位置?,c#-4.0,c#-3.0,gdi+,gdi,C# 4.0,C# 3.0,Gdi+,Gdi,我的应用程序涉及自定义形状的绘制,其中形状的详细信息从数据库中检索。形状将是直线、圆弧 我将调用DrawArc和DrawLine函数来绘制自定义形状 我的问题是我需要用背景色填充这个自定义形状 我正在使用以下名称空间 using System.Drawing.Drawing2D; using System.Drawing; 我尝试过的东西: 图形填充区域法 private void OnPaint(object sender, PaintEventArgs e) {
using System.Drawing.Drawing2D;
using System.Drawing;
我尝试过的东西:
图形填充区域法
private void OnPaint(object sender, PaintEventArgs e)
{
Pen redPen = new Pen(Color.Red, 2);
// Create a graphics path
GraphicsPath path = new GraphicsPath();
// Add two lines, a rectangle and an ellipse
Graphics g = e.Graphics;
path.StartFigure();
path.AddLine(20, 400, 20, 20); // left
path.AddLine(20, 20, 400, 20); //top
path.AddLine(400, 20, 400, 400); // right
path.AddLine(400, 400, 20, 400); // bottom
path.CloseFigure();
g.DrawPath(redPen, path);
Region reg = new Region(path);
g.FillRegion(Brushes.Green, reg);
reg.Dispose();
g.Dispose();
}
使用这种方法很容易填充一个简单的形状,其中起点和终点都有明确的定义
但我的应用程序涉及复杂的形状,很难跟踪这些点。如果我使用这种方法,填充背景色是不合适的
请建议我一些填充自定义形状的方法
谢谢您的帮助。您是否考虑过使用
FillPath
而不是FillRegion
?嗨,达米恩,是的,我也尝试过FillPath。。它不起作用。嗯,你能至少尝试添加一个你当前的方法不正确的形状的例子吗?如果没有一个例子来检验,“不恰当”是什么意思,这有点困难。嗨,达米恩,下面的链接是你回答的。问题是对于线形图,从数据库中检索到的坐标顺序不正确,我指的是起点和终点。例如,如果图表包含两条弧和线,由于顺序不正确,绘制图表很容易,但填充图表很困难,因为跟踪路径很困难。我知道我以前回答过你的一个问题,你在哪里以错误的顺序指定了线。你难道看不到,在填充一个形状时,更重要的是你要把线段按正确的顺序排列,这样任何一台计算机都能决定“内部”和“外部”之间的区别吗?