将Region转换为GraphicsPath

时间:2012-11-21 03:51:47

标签: c# intersection region polygons graphicspath

我使用Region来查找两条路径的交集(从两个多边形创建)。

GraphicsPath gp1 = new GraphicsPath();
gp1.AddPolygon(P);//P - array of points [first polygon]

Region d = new Region(gp1);

GraphicsPath gp2 = new GraphicsPath();
gp2.AddPolygon(P_);//P_ - array of points [second polygon]
d.Intersect(gp2);//founded intersection

如何获得Region d的交叉点?

2 个答案:

答案 0 :(得分:1)

我建议使用适合此任务的多边形交叉库。

这是一个可以从C#中使用的最优秀的

http://www.angusj.com/delphi/clipper.php

我也确定如果需要,还有许多其他用C#编写的。这是关于主题的SO Q& A:

How to intersect two polygons?

答案 1 :(得分:1)

使用

检查图形路径是否相交
if(!d.IsEmpty(this.CreateGraphics())

{

RectangleF rectBound=d.GetBound(this.CreateGraphics());

Pointf intersectionPoint=new Pointf(rectBound.X+rectBound.Width/2,rectBound.Y+rectBound.Height/2);

}