GDI+如何填充任意封区域?就像windows画笔中的油漆桶那样的功能?
来源:百度知道 编辑:UC知道 时间:2024/07/05 18:33:22
yatasoft的思路很好,但g.FillRegion(Brushes.Green, re); 是否会填充所有封闭区域呢?我所期望的是只填充某一坐标所在的封闭区域
就是说给出一点坐标,如果该坐标处于一个封闭区域就填充封闭区域,包括“回”字形区域
.net的Region可以实现你的要求,前提是这个封闭的区域点你要提供,比如你提供了100个点的区域通过线连接成封闭的,首先你要做个点集合pf,然后利用这个集合做参数创建一个GraphicsPath实例,在利用GraphicsPath实例做参数创建一个区域Region,接着可以使用Graphics实例的填充区域方法FillRegion,把你刚刚建立的区域做参数即可。方法演示下面来自网络,另外要自己写填充方法,这个只能请教别人了,呵呵。
PointF[] pf = new PointF[100];
byte[] bs = new byte[100];
for (int i = 0; i < 100; i++)
{
pf[i] = new PointF(yourXcoord, yourYcoord);
bs[i]=(byte)PathPointType.Line;
}
GraphicsPath gp = new GraphicsPath(pf,bs);
System.Drawing.Region re = new Region(gp);
g.FillRegion(Brushes.Green, re);
gp.Dispose();
re.Dispose();
能详细描述下“某一坐标所在的封闭区域”的意思吗?
这个方法就是填充整个封闭区域,只要是封闭的区域就可以