Engine发教程 - 图文 下载本文

2.4.3Path和Ring几何对象 2.4.3.1Path几何对象

Path是连续的Segment的集合,除了路径的第一个Segment和最后一个Segment外其余的Segment的起始点都是前一个Segment的终止点,即Path对象的中的Segment不能出现分

离,Path可以是任意数的Line,CircularArc,EllipticArc和BezierCurve的组合。

图4

一个或多个Path组成一个Polyline对象。

2.4.3.2Ring几何对象

Ring是一个封闭的Path即起始和终止点有相同的坐标值。它有内部和外部属性。

图5

一个或多个Ring对象组成一个Polygon对象。

2.4.4Polyline和Polygon几何对象

2.4.4.1Polyline几何对象

Polyline对象是由一个或多个相连或者不相连的path对象的有序集合,它可以是单个Path对象组成,也可以是多个相连的Path对象组成,或者是多个分离的Path组成,如下

图所示。Polyline通常用来代表线状地物如道路,河流,管线等等。

图6

一个Polyline对象必须满足以下准则:

1.组成Polyline对象的所有Path对象必须是有效的。 2.组成Polyline对象的所有Path对象不能重合,相交或自相交。 3.组成Polyline对象的多个Path对象可以连接与某一点,也可以分离。

4.Path对象的长度不能为0.

IPolyline是Polyline类的主要接口,IPolyline的Reshape方法可以使用一个Path对象

为一个Polyline对象整形,IPolyline的SimplifyNetwork方法用于简化网络。 Polyline对象可以使用IGeometryCollection接口添加Path对象的方法来创建,使用该接

口需注意以下情况:

1.每一个Path对象必须是有效的,或使用IPath::Simplify方法后有效。

2.由于Polyline是Path对象的有序集合,所以添加Path对象时必须注意顺序和方向。 3.为了保证Polyline是有效的,可以创建完Polyline对象后使用ITopologicalOperator

接口的Simplify方法。

以下代码片段为使用IGeometryCollection接口创建一个Polyline对象:

//定义第一个点

IPoint pPoint1 = new PointClass(); pPoint1.X = 100; pPoint1.Y = 100;

//定义第二个点

IPoint pPoint2 = new PointClass(); pPoint2.X = 200;

pPoint2.Y = 200;

//创建一个Line对象

ILine pLine= new LineClass();

//设置Line对象的起始终止点

pLine.PutCoords(pPoint1,pPoint2);

//QI到ISegment

ISegment pSegment= pLine as ISegment;

//创建一个Path对象

SegmentCollection pPath= new PathClass();