Engine发教程 - 图文 下载本文

object o=Type.Missing;

//通过ISegmentCollection接口为Path对象添加Segment对象

pPath.AddSegment(pSegment,ref o,ref o);

//创建一个Polyline对象

IGeometryCollection pPolyline = new PolylineClass();

//通过IGeometryCollection为Polyline对象添加Path对象

pPolyline.AddGeometry(pPath as IGeometry, ref o, ref o);

2.4.4.2Polylgon几何对象

2Polylgon对象是由一个或多个Ring对象的有序集合,它可以是由单个Ring 对象构成,也可以使用多个Ring组成如下图所示。其中Ring可以分为Outer Ring(外环)和Inner Ring(内环)之分。外环和内环都是有方向的,它们的区别是外环的方向是顺时针的,内环的方向是逆时针。Polygon通常用来代表有面积的多边形矢量对象,如行政区,建筑物等。

图7

以下代码片段演示如何构建一个Polygon:

//创建一个Ring对象,通过ISegmentCollection接口向其中添加Segment对象

ISegmentCollection pSegCollection = new RingClass();

object o = Type.Missing;

pSegCollection.AddSegment(pSegment1, ref o, ref o);

pSegCollection.AddSegment(pSegment2, ref o, ref o);

//QI到IRing接口封闭Ring对象,使其有效

IRing pRing = pSegCollection as IRing;

pRing.Close();

//使用Ring对象构建Polygon对象

IGeometryCollection pGeometryColl = new PolygonClass();

pGeometryColl.AddGeometry(pRing, ref o, ref o);

2.4.5Envelope几何对象

Envelope是所有几何对象的外接矩形,用于表示几何对象的最小边框,所有的几何对象都有一个Envelope对象,IEnvelope是Envelope对象的主要接口,通过它可以获取几何对象的XMax,XMin,YMax,YMin,Height,Width属性。通过IEnvelope的Expand方法还可以按比

例缩放Envelope对象的范围,如下图所示:

2.4.6Curve对象几何对象

除去Point,MultiPoint和Envelope外,其他所有的几何体都可以看做是Curve(曲线)。Line,Polyline,Polygon,CircularArc,BezierCurve,EllipticArc和CircularArc都是曲线

的一种,它们都实现了ICurve接口。

ICurve接口的Length属性用于返回一个Curve对象的长度。 ICurve接口的FromPoint和ToPoint属性可以获得Curve对象的起止点。

ICurve接口的Reverseorientation方法可以改变一个Curve对象的节点次序即调动Curve

对象的起始点和终止点互相调换。

ICurve接口的IsClosed属性则可以判断一个Curve对象起始点和终止点是否在一个位置

上。

ICurve接口的GetSubcurve方法可以复制一条Curve对象的特定部分,例如一条10千米公

路的Curve对象,获取2-5千米处的公路的曲线代码片段如下所示:

//QI到ICurve接口

ICurve pCurve = pPolyline as ICurve;

//创建一个Polyline对象

ICurve pNewCurve = new PolylineClass();

bool btrue= true;

//获取-5千米间的曲线对象

pCurve.GetSubcurve(2, 5, btrue, out pNewCurve);

此外ICurve的QueryTangent和QueryNormal方法分别用于获取Curve对象上某一点的曲线

的切线和法线。

2.4.7 Triangle Strip和Trangle Fan, Trangle,Ring几何对象

Triangle Strip和Trangle Fan, Trangle,Ring是构成MultiPatch几何对象的构建对象。

2.4.7.1Triangle Strip几何对象

TriangelStrip对象是由一系列点定义的曲面片组成,而曲面片是有若干个三角形所组成,

所以这个曲面可以定义为:(0,1,2) ,(2, 1, 3), (2, 3, 4), (4, 3, 5)。