Engine发教程 - 图文 下载本文

IPolygon pPolygon=pGCollection as IPolygon; //返回Polygon对象

return pPolygon;

} catch (Exception Err) { MessageBox.Show(Err.Message,\提示\MessageBoxButtons.OK,,MessageBoxIcon.Information);

return null;

}

}

同样可以通过IGeometryCollection的AddGeometryCollection方法可以将一个Polygon中的所有子对象Ring添加到另外一个多边形中,这样就实现了合并两个多边形对象为一个多边形对象的功能,这非常有用。 以下代码片段演示如何合并两个Polygon对象为一个Polgyone对象:

///

/// 合并两个Polygon ///

/// /// /// 返回合并后的Polygon private IPolygon MergePolygons(IPolygon firstPolygon, IPolygon SecondPolygon) { try { //创建一个Polygon对象

IGeometryCollection pGCollection1=new PolygonClass();

IGeometryCollection pGCollection2 = firstPolygon as IGeometryCollection; IGeometryCollection pGCollection3 = SecondPolygon as IGeometryCollection;

//添加firstPolygon

pGCollection1.AddGeometryCollection(pGCollection2); //添加SecondPolygon pGCollection1.AddGeometryCollection(pGCollection3); //QI至ITopologicalOperator ITopologicalOperator pTopological = pGCollection1 as ITopologicalOperator; //执行Simplify操作 pTopological.Simplify();

IPolygon pPolygon=pGCollection1 as IPolygon;

//返回Polygon对象 return pPolygon;

} catch (Exception Err)

{

MessageBox.Show(Err.Message,\提示\MessageBoxButtons.OK,,MessageBoxIcon.Information); return null; }

}

2.4.9.2ISegmentCollection接口 ISegmentCollection接口被Path,Ring,Polyline和Polygon四个类所实现,它们被称作是Segment集合对象,使用这个接口可以处理组成Segment集合对象中的每一个子Segment对象。使用ISegmentCollection接口可以为一个Segment集合对象添加,插入,删除Segment子对象。ISegmentCollection接口SetCircle和SetRectangle方法提供了一种简单不需要添加Segment的情况下构建一个完成的Path,Ring,Polyline和Polygon的方法。 2.4.9.3IPointCollection接口 IPointCollection可以被多个几何对象类所实现,这些对象都是由多个点构成如:Mullipoint,Path,Ring,Polyline,Polygon,TriangleFan,TrangleStrip,Trangle,Multipatch等,它们都可以称作PointCollection对象,通过IPointCollection接口定义的方法可以获取,添加,插入,查询,移除几何对象中的某个顶点。同以上两个接口一样它也定义了操作一个点集合对象的方法,例如通过AddPoint方法可以向PointCollection对象中的特定索引位添加一个点对象,如果不指定位置,则添加到最后。通过IPointCollection的Point属性通过顶点索引可以得到某一顶点。 在本章节最后的Demo 实例将为大家演示IPointCollection提供的功能。