




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 幾何形體對(duì)象 在GIS中,矢量數(shù)據(jù)模型是地理數(shù)據(jù)的主要表現(xiàn)形式,Geodatabase中的每一條要素記錄都有一個(gè)shape字段用于保存它的一個(gè)或多個(gè)幾何形體對(duì)象,正是由于存在著這種精確的特征,才使得ArcGIS可以對(duì)這些要素進(jìn)行不同的空間分析和運(yùn)算,得出用戶(hù)需要的結(jié)果。 對(duì)創(chuàng)建一個(gè)要素或圖形元素而言,幾何形體對(duì)象也是它們的主要屬性,由于Geometry屬性的存在,用戶(hù)才能以圖形的方式看到GIS要表示的信息。 本章包含以下具體內(nèi)容: 1.Geometry模型2.Point和Multipoint對(duì)象3.包絡(luò)線對(duì)象4.各種曲線對(duì)象5.Geometry集合對(duì)象6.空間參考4.1 Geometr
2、y模型模型 Geometry是是AE中使用最廣泛的對(duì)象集之一,用中使用最廣泛的對(duì)象集之一,用戶(hù)在新建、刪除、編輯和進(jìn)行地理分析的時(shí)候,就是戶(hù)在新建、刪除、編輯和進(jìn)行地理分析的時(shí)候,就是在處理一個(gè)包含幾何形體的矢量對(duì)象;除顯示要素外,在處理一個(gè)包含幾何形體的矢量對(duì)象;除顯示要素外,在空間選擇、要素著色制作專(zhuān)題圖、標(biāo)注編輯等很多在空間選擇、要素著色制作專(zhuān)題圖、標(biāo)注編輯等很多過(guò)程中,也需要使用過(guò)程中,也需要使用Geometry對(duì)象。對(duì)象。PointMultiPointRingPathSegmentGeometryEnvelopeCurvePolylineLineBezierCurveCircular
3、ArcPolycurve*Polygon*Geometrycollection* 在在Geometry模型中,幾何形體對(duì)象被分為兩個(gè)層次,模型中,幾何形體對(duì)象被分為兩個(gè)層次,其一是構(gòu)成要素的幾何圖形,另一個(gè)是組成這些形狀的構(gòu)其一是構(gòu)成要素的幾何圖形,另一個(gè)是組成這些形狀的構(gòu)件。前者稱(chēng)為高級(jí)幾何對(duì)象,具體包括件。前者稱(chēng)為高級(jí)幾何對(duì)象,具體包括Point、Multipoint、Envelope、Polyline、Polygon。除了。除了“高級(jí)幾何對(duì)象高級(jí)幾何對(duì)象”外,外,Geometry模型中的其他對(duì)象都是模型中的其他對(duì)象都是構(gòu)件幾何對(duì)象,它們組合構(gòu)成了高級(jí)幾何對(duì)象,如構(gòu)件幾何對(duì)象,它們組合構(gòu)成
4、了高級(jí)幾何對(duì)象,如segement對(duì)象構(gòu)成了對(duì)象構(gòu)成了Path,而一個(gè)或是多個(gè),而一個(gè)或是多個(gè)Path對(duì)象對(duì)象組成了組成了Polyline。 在在Geometry模型中,某些幾何對(duì)象可以組合產(chǎn)生新模型中,某些幾何對(duì)象可以組合產(chǎn)生新的幾何形體,如的幾何形體,如Polyline由由Path組成,而組成,而Path則可以由則可以由Segment組成。但并不是用戶(hù)必須有組成。但并不是用戶(hù)必須有“層次層次”建立高級(jí)建立高級(jí)幾何對(duì)象。即可以由幾何對(duì)象。即可以由Point對(duì)象構(gòu)建所有的幾何形體。對(duì)象構(gòu)建所有的幾何形體。AE提供了提供了IGeometryCollection接口,接口,GeometryColl
5、ection是具有相同類(lèi)型幾何對(duì)象的集合,是具有相同類(lèi)型幾何對(duì)象的集合,即可以是描述即可以是描述Polyline路徑的集合,或者是描述路徑的路徑的集合,或者是描述路徑的片段(片段(Segement)集合,甚至是可以直接組成)集合,甚至是可以直接組成Polyline的點(diǎn)的集合。下表列舉了各種組合關(guān)系以及可的點(diǎn)的集合。下表列舉了各種組合關(guān)系以及可使用的集合接口:使用的集合接口:Geometry模型組合關(guān)系和可用接口模型組合關(guān)系和可用接口Geometry類(lèi)類(lèi)Geometry類(lèi)是所有幾何形體對(duì)象的父類(lèi),它是一個(gè)抽象類(lèi)。類(lèi)是所有幾何形體對(duì)象的父類(lèi),它是一個(gè)抽象類(lèi)。IGeometry接口定義了所有幾何對(duì)象
6、都擁有的屬性和方法。接口定義了所有幾何對(duì)象都擁有的屬性和方法。在在Geometry模型中,很多對(duì)象都是組件類(lèi),因此可以接創(chuàng)模型中,很多對(duì)象都是組件類(lèi),因此可以接創(chuàng)建一個(gè)幾何形體對(duì)象。但是使用建一個(gè)幾何形體對(duì)象。但是使用new關(guān)鍵字創(chuàng)建的幾何對(duì)關(guān)鍵字創(chuàng)建的幾何對(duì)象,在使用之前必須添加具體的信息。象,在使用之前必須添加具體的信息。IGeometry常用屬性和方法常用屬性和方法 IGeometry:Dimension 查詢(xún)幾何形體維度查詢(xún)幾何形體維度 IGeometry:Envelope 返回包絡(luò)線返回包絡(luò)線 IGeometry:IsEmpty 查看對(duì)象是否為空查看對(duì)象是否為空 IGeometry:
7、SetEmpty 將一個(gè)幾何對(duì)象設(shè)置為空,僅保將一個(gè)幾何對(duì)象設(shè)置為空,僅保留其空間參考屬性。留其空間參考屬性。 IGeometry:Project 設(shè)置一個(gè)幾何對(duì)象的空間參考屬性設(shè)置一個(gè)幾何對(duì)象的空間參考屬性 IGeometry:GeometryType 返回對(duì)象的幾何類(lèi)型。返回對(duì)象的幾何類(lèi)型。4.2 Point和和Multipoint對(duì)象對(duì)象一、一、Point對(duì)象對(duì)象 點(diǎn)點(diǎn)Point代表了一個(gè)代表了一個(gè)0維的、具有維的、具有X、Y坐標(biāo)的幾何對(duì)象坐標(biāo)的幾何對(duì)象。點(diǎn)沒(méi)有形狀,既可以用于表示描述點(diǎn)類(lèi)型的要素,也可以。點(diǎn)沒(méi)有形狀,既可以用于表示描述點(diǎn)類(lèi)型的要素,也可以用在尋址、符號(hào)化和用于組成一個(gè)網(wǎng)
8、絡(luò),且任何幾何對(duì)象都用在尋址、符號(hào)化和用于組成一個(gè)網(wǎng)絡(luò),且任何幾何對(duì)象都可以使用點(diǎn)來(lái)產(chǎn)生??梢允褂命c(diǎn)來(lái)產(chǎn)生。 構(gòu)成幾何形狀的頂點(diǎn),存在三種可選擇的屬性,即構(gòu)成幾何形狀的頂點(diǎn),存在三種可選擇的屬性,即Z值、值、M值和值和ID值。值。Z值大多數(shù)情況下表示點(diǎn)的高程,也可將值大多數(shù)情況下表示點(diǎn)的高程,也可將Z值值作為一點(diǎn)的輔助值來(lái)還使用,如某點(diǎn)的降雨量、空氣污染指作為一點(diǎn)的輔助值來(lái)還使用,如某點(diǎn)的降雨量、空氣污染指數(shù)等,這些數(shù)等,這些Z值的存在,可以構(gòu)成一個(gè)三維曲面。值的存在,可以構(gòu)成一個(gè)三維曲面。M值是所值是所謂的謂的Mesasure值,即度量值。值,即度量值。ID號(hào)是一個(gè)點(diǎn)的唯一標(biāo)識(shí)值號(hào)是一個(gè)點(diǎn)的
9、唯一標(biāo)識(shí)值,用于唯一確定一個(gè)點(diǎn)對(duì)象。,用于唯一確定一個(gè)點(diǎn)對(duì)象。1、IPoint接口接口定義了定義了Point對(duì)象的屬性和方法:對(duì)象的屬性和方法:ID屬性:返回點(diǎn)對(duì)象的屬性:返回點(diǎn)對(duì)象的ID號(hào);號(hào);M、Z值:返回點(diǎn)的測(cè)量號(hào)和高程值值:返回點(diǎn)的測(cè)量號(hào)和高程值 X和和Y:獲得一個(gè)點(diǎn)的:獲得一個(gè)點(diǎn)的X和和Y坐標(biāo)值坐標(biāo)值 PutCoords:用于設(shè)置一個(gè)點(diǎn)的:用于設(shè)置一個(gè)點(diǎn)的X、Y坐標(biāo)值坐標(biāo)值 ConstrainAngle和和ConstrainDistance方法可方法可以使用參數(shù)改變已經(jīng)存在點(diǎn)的位置。如以使用參數(shù)改變已經(jīng)存在點(diǎn)的位置。如ConstrainAngle只要確定旋轉(zhuǎn)角度和描述點(diǎn)等參只要確定旋
10、轉(zhuǎn)角度和描述點(diǎn)等參數(shù),就可以精確移動(dòng)。數(shù),就可以精確移動(dòng)。2、IConstructPoint接口接口 AE中中Geometry模型的一個(gè)重要特點(diǎn)是它具有模型的一個(gè)重要特點(diǎn)是它具有一套豐富的,利用已經(jīng)存在的幾何對(duì)象的距離、一套豐富的,利用已經(jīng)存在的幾何對(duì)象的距離、角度和空間關(guān)系,生成新的幾何形體對(duì)象的方法。角度和空間關(guān)系,生成新的幾何形體對(duì)象的方法。 使用這些方法常常涉及使用角度和偏轉(zhuǎn)角。在使用這些方法常常涉及使用角度和偏轉(zhuǎn)角。在AE編寫(xiě)程序時(shí),角度使用的是弧度單位,而長(zhǎng)度編寫(xiě)程序時(shí),角度使用的是弧度單位,而長(zhǎng)度單位使用地圖投影單位。單位使用地圖投影單位。 IConstructPoint接口,可
11、以使用多達(dá)接口,可以使用多達(dá)10種方種方法來(lái)創(chuàng)建所需要的點(diǎn),下面介紹幾種點(diǎn)的構(gòu)造方法來(lái)創(chuàng)建所需要的點(diǎn),下面介紹幾種點(diǎn)的構(gòu)造方法:法:(1)ConstructAlong沿線創(chuàng)建方法沿線創(chuàng)建方法 沿線創(chuàng)建法是基于一個(gè)曲線(沿線創(chuàng)建法是基于一個(gè)曲線(Curve)上起始點(diǎn)對(duì)象,通過(guò)給定距)上起始點(diǎn)對(duì)象,通過(guò)給定距離、比例和擴(kuò)展類(lèi)型,沿著曲線創(chuàng)建一個(gè)新點(diǎn)。如果距離比曲線的長(zhǎng)離、比例和擴(kuò)展類(lèi)型,沿著曲線創(chuàng)建一個(gè)新點(diǎn)。如果距離比曲線的長(zhǎng)度要長(zhǎng),那么點(diǎn)將沿著它的切線生成度要長(zhǎng),那么點(diǎn)將沿著它的切線生成。(2)ConstructAngleBisector角平分線創(chuàng)建法角平分線創(chuàng)建法 這種方法使用三個(gè)點(diǎn),即起始點(diǎn)
12、(這種方法使用三個(gè)點(diǎn),即起始點(diǎn)(FromPoint)、通過(guò)點(diǎn)()、通過(guò)點(diǎn)(Through Point)和終止點(diǎn)()和終止點(diǎn)(ToPoint)。該方法通過(guò)平分三點(diǎn)形成的夾)。該方法通過(guò)平分三點(diǎn)形成的夾角,并設(shè)置一個(gè)距離在平分線上尋找到一點(diǎn)。如果長(zhǎng)度為負(fù)值,則沿著反角,并設(shè)置一個(gè)距離在平分線上尋找到一點(diǎn)。如果長(zhǎng)度為負(fù)值,則沿著反方向放置點(diǎn)。方向放置點(diǎn)。(3)ConstructAngleIntersection構(gòu)造角度交點(diǎn)構(gòu)造角度交點(diǎn) 通過(guò)給定的兩個(gè)點(diǎn)和兩個(gè)角度,可以在兩條射線的交點(diǎn)處產(chǎn)生一個(gè)通過(guò)給定的兩個(gè)點(diǎn)和兩個(gè)角度,可以在兩條射線的交點(diǎn)處產(chǎn)生一個(gè)點(diǎn)。兩條射線由點(diǎn)和角度來(lái)確定。點(diǎn)。兩條射線由點(diǎn)和角
13、度來(lái)確定。object.ConstructAngleIntersection (p1, angle1, p2, angle2 )(4)ConstructAngleDistance構(gòu)造角度距離點(diǎn)構(gòu)造角度距離點(diǎn) 通過(guò)一個(gè)給定點(diǎn)和一個(gè)相對(duì)點(diǎn)的絕對(duì)角度和距離,構(gòu)造器可以惟一確定通過(guò)一個(gè)給定點(diǎn)和一個(gè)相對(duì)點(diǎn)的絕對(duì)角度和距離,構(gòu)造器可以惟一確定一個(gè)新點(diǎn)。一個(gè)新點(diǎn)。object.ConstructAngleDistance (p, inAngle, distance )其它構(gòu)造點(diǎn)的方法還包括其它構(gòu)造點(diǎn)的方法還包括(5)ContructDeflection構(gòu)造偏轉(zhuǎn)角度點(diǎn)構(gòu)造偏轉(zhuǎn)角度點(diǎn) 給定一個(gè)基準(zhǔn)線段,一個(gè)偏轉(zhuǎn)
14、角度和一個(gè)距離,該方法將沿著偏給定一個(gè)基準(zhǔn)線段,一個(gè)偏轉(zhuǎn)角度和一個(gè)距離,該方法將沿著偏轉(zhuǎn)角度的射線方向以給定距離設(shè)置一個(gè)新點(diǎn)。轉(zhuǎn)角度的射線方向以給定距離設(shè)置一個(gè)新點(diǎn)。(6)ConstructDeflectionIntersection構(gòu)造偏轉(zhuǎn)角交點(diǎn)構(gòu)造偏轉(zhuǎn)角交點(diǎn) 該方法使用一條線段作為基線,從該基線的起始點(diǎn)和終點(diǎn)分別測(cè)量該方法使用一條線段作為基線,從該基線的起始點(diǎn)和終點(diǎn)分別測(cè)量偏轉(zhuǎn)角度,引出兩條射線,將兩條射線的交點(diǎn)作為新點(diǎn)。與測(cè)量偏轉(zhuǎn)角度,引出兩條射線,將兩條射線的交點(diǎn)作為新點(diǎn)。與測(cè)量中的前方交會(huì)定點(diǎn)法相同。中的前方交會(huì)定點(diǎn)法相同。(7)ConstructOffset構(gòu)造偏移點(diǎn)構(gòu)造偏移點(diǎn)(8
15、) ConstructParallel構(gòu)造平行線上的點(diǎn)構(gòu)造平行線上的點(diǎn)(9)ConstructPerpendicular構(gòu)造垂直線上點(diǎn)構(gòu)造垂直線上點(diǎn)(10)ConstructThreePointResection構(gòu)造后方交會(huì)點(diǎn)構(gòu)造后方交會(huì)點(diǎn)具體方法請(qǐng)參照課本自學(xué)。具體方法請(qǐng)參照課本自學(xué)。二、二、MultiPoint對(duì)象對(duì)象 MultiPoint點(diǎn)集對(duì)象是無(wú)序點(diǎn)的群集,它用于表示具有相同屬性設(shè)點(diǎn)集對(duì)象是無(wú)序點(diǎn)的群集,它用于表示具有相同屬性設(shè)置的同一組點(diǎn)。如一家公司不同的營(yíng)業(yè)場(chǎng)所可以使用點(diǎn)集來(lái)表示。置的同一組點(diǎn)。如一家公司不同的營(yíng)業(yè)場(chǎng)所可以使用點(diǎn)集來(lái)表示。 MultiPoint對(duì)象可以使用對(duì)象可以
16、使用Add方法來(lái)添加一個(gè)點(diǎn)到它的集合中去,方法來(lái)添加一個(gè)點(diǎn)到它的集合中去,這個(gè)過(guò)程需要使用這個(gè)過(guò)程需要使用IPointCollection接口來(lái)完成。接口來(lái)完成。IPointCollection pPointCollection;pPointCollection = New MultipointClass();Object Missing=Type.Missing;Object val=1;pPointCollection.AddPoint(point, ref Missing, ref val); 如同如同Point對(duì)象一樣,對(duì)象一樣,MultiPoint對(duì)象也對(duì)象也有眾多的構(gòu)造方法,這些構(gòu)
17、造方法都在有眾多的構(gòu)造方法,這些構(gòu)造方法都在IConstructMultipoint接口中定義,它們能夠接口中定義,它們能夠基于一個(gè)已經(jīng)存在的幾何對(duì)象來(lái)產(chǎn)生一個(gè)點(diǎn)基于一個(gè)已經(jīng)存在的幾何對(duì)象來(lái)產(chǎn)生一個(gè)點(diǎn)集。集。1.ConstructArcPoints構(gòu)造圓弧點(diǎn)構(gòu)造圓弧點(diǎn) 這個(gè)構(gòu)造器通過(guò)給定的一段圓弧,返回出該圓弧的終止點(diǎn)、起始點(diǎn)、圓這個(gè)構(gòu)造器通過(guò)給定的一段圓弧,返回出該圓弧的終止點(diǎn)、起始點(diǎn)、圓心和切線的交點(diǎn)等四個(gè)點(diǎn)對(duì)象心和切線的交點(diǎn)等四個(gè)點(diǎn)對(duì)象。object.ConstructArcPoints (a )2.ConstructDivideLength構(gòu)造等長(zhǎng)度點(diǎn)構(gòu)造等長(zhǎng)度點(diǎn) 這個(gè)方法通過(guò)給定的一
18、條曲線對(duì)象和已經(jīng)定義的長(zhǎng)度,返回所有這個(gè)方法通過(guò)給定的一條曲線對(duì)象和已經(jīng)定義的長(zhǎng)度,返回所有處于這條曲線上的點(diǎn)對(duì)象,這些點(diǎn)包含在一個(gè)點(diǎn)集對(duì)象中。處于這條曲線上的點(diǎn)對(duì)象,這些點(diǎn)包含在一個(gè)點(diǎn)集對(duì)象中。3.ConstructDivideEqual構(gòu)造等分點(diǎn)構(gòu)造等分點(diǎn) 這個(gè)構(gòu)造器根據(jù)輸入的一條曲線和需要返回的點(diǎn)的數(shù)目來(lái)產(chǎn)生一個(gè)點(diǎn)集對(duì)這個(gè)構(gòu)造器根據(jù)輸入的一條曲線和需要返回的點(diǎn)的數(shù)目來(lái)產(chǎn)生一個(gè)點(diǎn)集對(duì)象。象。object.ConstructDivideEqual (inCurve, numInnerPoints ) 4.ConstructTangent構(gòu)造切線點(diǎn)構(gòu)造切線點(diǎn) 這個(gè)方法用于產(chǎn)生一個(gè)點(diǎn)在圓上面的兩
19、個(gè)切點(diǎn)。這個(gè)方法用于產(chǎn)生一個(gè)點(diǎn)在圓上面的兩個(gè)切點(diǎn)。點(diǎn)與點(diǎn)群點(diǎn)與點(diǎn)群u 點(diǎn)是沒(méi)有尺寸的,只有一對(duì)點(diǎn)是沒(méi)有尺寸的,只有一對(duì)X、Y坐標(biāo)值坐標(biāo)值u 點(diǎn)群是點(diǎn)的集合點(diǎn)群是點(diǎn)的集合PointMultipoint with six points4.3 包絡(luò)線(包絡(luò)線(Envelopes)對(duì)象對(duì)象u 定義一個(gè)要素的空間范圍(最小包圍邊界)定義一個(gè)要素的空間范圍(最小包圍邊界)u 所有幾何體都有封裝邊界所有幾何體都有封裝邊界u 獲得或設(shè)置用獲得或設(shè)置用IGeometry:Envelope屬性屬性 包絡(luò)線對(duì)象是一個(gè)矩形區(qū)域,它是作為任何一個(gè)幾何形體的最小包絡(luò)線對(duì)象是一個(gè)矩形區(qū)域,它是作為任何一個(gè)幾何形體的最小邊框
20、區(qū)域而存在,每一個(gè)邊框區(qū)域而存在,每一個(gè)Geometry對(duì)象都有一個(gè)包絡(luò)線對(duì)象,即使對(duì)象都有一個(gè)包絡(luò)線對(duì)象,即使是包絡(luò)線本身。常作為地圖的視圖或地理數(shù)據(jù)庫(kù)的范圍和用戶(hù)交互操是包絡(luò)線本身。常作為地圖的視圖或地理數(shù)據(jù)庫(kù)的范圍和用戶(hù)交互操作的結(jié)果而被返回。作的結(jié)果而被返回。 Envelope通過(guò)它的最大和最小通過(guò)它的最大和最小X和和Y坐標(biāo)來(lái)定義一個(gè)矩形區(qū)域。包坐標(biāo)來(lái)定義一個(gè)矩形區(qū)域。包絡(luò)線對(duì)象相對(duì)于它的空間參考而言總是直角的。包絡(luò)線對(duì)象也定義了絡(luò)線對(duì)象相對(duì)于它的空間參考而言總是直角的。包絡(luò)線對(duì)象也定義了最大和最小的最大和最小的Z值和值和M值,這兩個(gè)值可分別通過(guò)值,這兩個(gè)值可分別通過(guò)IZAware和和
21、IMAware接口來(lái)定義。接口來(lái)定義。Geometry左下左下左上左上右上右上右下右下EnvelopeXMinXMaxYMinYMax幾何形體的包絡(luò)線定義幾何形體的包絡(luò)線定義 IEnvelope是是包絡(luò)線對(duì)象的主要接口,它定義了包絡(luò)線對(duì)象的主要接口,它定義了XMax、XMin、YMax和和YMin、Height和和Width屬性,用于獲得或設(shè)置一個(gè)已存在包絡(luò)屬性,用于獲得或設(shè)置一個(gè)已存在包絡(luò)線對(duì)象的空間參考。線對(duì)象的空間參考。 IEnvelope:Expand用于按比例縮放包絡(luò)線范圍產(chǎn)生新的包絡(luò)線對(duì)象,用于按比例縮放包絡(luò)線范圍產(chǎn)生新的包絡(luò)線對(duì)象,在縮放地圖的視圖操作中經(jīng)常使用這個(gè)方法,如:在縮
22、放地圖的視圖操作中經(jīng)常使用這個(gè)方法,如: pEnvelope.Expand(5,0,false) 該方法有三個(gè)參數(shù),前兩者是東西該方法有三個(gè)參數(shù),前兩者是東西dx和和dy,第三個(gè)參數(shù)是是否設(shè)置比,第三個(gè)參數(shù)是是否設(shè)置比例,若該值為例,若該值為false,則新的包絡(luò)線對(duì)象的坐標(biāo)變?yōu)椋海瑒t新的包絡(luò)線對(duì)象的坐標(biāo)變?yōu)椋?XMin=XMin-dx,YMin=YMin+dy Xmax=XMax+dx,Ymax=YMax+dy 若為若為true,則新的包絡(luò)線的坐標(biāo)為:,則新的包絡(luò)線的坐標(biāo)為: XMin=XMin-dx*Width/2,YMin=YMin-dy*Height/2 XMax=XMax+dx*Wi
23、dth/2,YMax=YMax+dy*height/2無(wú)論怎么變化,這兩個(gè)包絡(luò)線的中心都在同一位置。無(wú)論怎么變化,這兩個(gè)包絡(luò)線的中心都在同一位置。 IEnvelope:offset是一個(gè)偏移方法,它通過(guò)添加一個(gè)是一個(gè)偏移方法,它通過(guò)添加一個(gè)X和和Y值給值給XMin、XMax、YMin和和YMax,移動(dòng)包絡(luò)線本身。在移動(dòng)過(guò)程中,包絡(luò)線的面,移動(dòng)包絡(luò)線本身。在移動(dòng)過(guò)程中,包絡(luò)線的面積保持不變。積保持不變。 IEnvelope:CenterAt方法則是通過(guò)改變包絡(luò)線的中心點(diǎn)來(lái)移動(dòng)包絡(luò)方法則是通過(guò)改變包絡(luò)線的中心點(diǎn)來(lái)移動(dòng)包絡(luò)線對(duì)象。線對(duì)象。 IEnvelope接口還為包絡(luò)線提供了拓?fù)溥\(yùn)算方法接口還為包
24、絡(luò)線提供了拓?fù)溥\(yùn)算方法Intersect和和Union。IEnvelope:Intersect用于求兩個(gè)包絡(luò)線的相交部分,用于求兩個(gè)包絡(luò)線的相交部分,IEnvelope:Union用于返回兩個(gè)包絡(luò)線的并集,這兩個(gè)方法返回的都是包絡(luò)線對(duì)象。用于返回兩個(gè)包絡(luò)線的并集,這兩個(gè)方法返回的都是包絡(luò)線對(duì)象。 IEnvelope:PutCoords提供了一個(gè)構(gòu)造包絡(luò)線的方法,提供了一個(gè)構(gòu)造包絡(luò)線的方法,通過(guò)傳入通過(guò)傳入Xmin、YMin、XMax和和YMax四個(gè)點(diǎn)對(duì)象,返回四個(gè)點(diǎn)對(duì)象,返回一個(gè)包絡(luò)線。一個(gè)包絡(luò)線。 IEnvelope:QueryCoords則可以返回一個(gè)包絡(luò)線的四個(gè)則可以返回一個(gè)包絡(luò)線的四個(gè)
25、值。值。 Envelope對(duì)象也支持對(duì)象也支持IEnvelope2接口,這個(gè)接口提供了接口,這個(gè)接口提供了設(shè)置設(shè)置Z值和值和M值的屬性。如值的屬性。如PutMCoords和和PutZCoords用用于設(shè)置于設(shè)置M和和Z值。而值。而QueryMCoords和和QueryZCoords則可則可以查詢(xún)包絡(luò)線對(duì)象的以查詢(xún)包絡(luò)線對(duì)象的M和和Z值。值。4.4 曲線曲線Curve對(duì)象對(duì)象 除去點(diǎn)、點(diǎn)集和包絡(luò)線對(duì)象外,幾乎其它所有的幾何除去點(diǎn)、點(diǎn)集和包絡(luò)線對(duì)象外,幾乎其它所有的幾何形體都可以看做是曲線(形體都可以看做是曲線(Curve),),Curve是具有一維視是具有一維視圖或者二維邊界形狀的幾何對(duì)象,如圖
26、或者二維邊界形狀的幾何對(duì)象,如Line、Polyline、Polygon、CircularArc、BezierCurve、EllipticArc和和CircularArc等都是曲線的一種,這些對(duì)象都實(shí)現(xiàn)了等都是曲線的一種,這些對(duì)象都實(shí)現(xiàn)了ICurve接口。接口。 ArcMap幾何形體幾何形體SegmentsBezier curveLineCircular arc3 Rings (closed paths)2 Paths1 Poly1 LinePointsMultipointsPolygonsPolylinesu線段:在曲線的起點(diǎn)和終點(diǎn)之間線段:在曲線的起點(diǎn)和終點(diǎn)之間u線段集合成線段集合成 pa
27、ths/ringsuPaths/rings集合成集合成polylines/polygonsRing繼承至path兩點(diǎn)所確定的弧段ICurve接口接口 ICurve接口提供了操作任何一種一維形狀或二維邊界接口提供了操作任何一種一維形狀或二維邊界形狀的屬性和方法,但是它并不能用于產(chǎn)生一個(gè)新的曲線形狀的屬性和方法,但是它并不能用于產(chǎn)生一個(gè)新的曲線對(duì)象。對(duì)象。uLength屬性:返回一個(gè)曲線對(duì)象的長(zhǎng)度。屬性:返回一個(gè)曲線對(duì)象的長(zhǎng)度。u FromPoint和和ToPoint:獲得和設(shè)置一個(gè)曲線的起始點(diǎn):獲得和設(shè)置一個(gè)曲線的起始點(diǎn)和終止點(diǎn)。和終止點(diǎn)。uReverseOrientation方法:改變一個(gè)曲線
28、的節(jié)點(diǎn)次序,方法:改變一個(gè)曲線的節(jié)點(diǎn)次序,即改變一個(gè)曲線對(duì)象的起始點(diǎn)和終止點(diǎn)的順序。即改變一個(gè)曲線對(duì)象的起始點(diǎn)和終止點(diǎn)的順序。u IsClosed屬性:說(shuō)明一個(gè)曲線的起始點(diǎn)和終止點(diǎn)是否在同一個(gè)位屬性:說(shuō)明一個(gè)曲線的起始點(diǎn)和終止點(diǎn)是否在同一個(gè)位置。置。Polygon可能在它們的組成對(duì)象中存在非連接情況,如組成一個(gè)可能在它們的組成對(duì)象中存在非連接情況,如組成一個(gè)Ring對(duì)象的兩個(gè)對(duì)象的兩個(gè)Segment,并沒(méi)有首尾相連,而是分離的,并沒(méi)有首尾相連,而是分離的,IsClosed屬性不能檢查這種情況。為保證屬性不能檢查這種情況。為保證Polygon和和Ring中不出現(xiàn)中不出現(xiàn)這種情況,需要保證它們是簡(jiǎn)
29、單幾何對(duì)象。這種情況,需要保證它們是簡(jiǎn)單幾何對(duì)象。u QueryPoint方法:依據(jù)特定的長(zhǎng)度或比例來(lái)獲得一個(gè)曲線對(duì)象上方法:依據(jù)特定的長(zhǎng)度或比例來(lái)獲得一個(gè)曲線對(duì)象上的某一點(diǎn)的位置。的某一點(diǎn)的位置。如果查詢(xún)長(zhǎng)度超過(guò)了曲線本身的長(zhǎng)度,就需要設(shè)置如果查詢(xún)長(zhǎng)度超過(guò)了曲線本身的長(zhǎng)度,就需要設(shè)置片段擴(kuò)展。片段擴(kuò)展。u GetSubcurve方法:復(fù)制一個(gè)曲線對(duì)象的某個(gè)特定部分方法:復(fù)制一個(gè)曲線對(duì)象的某個(gè)特定部分。u QueryTangent和和QueryNormal方法:得到基于曲線對(duì)象方法:得到基于曲線對(duì)象上某一點(diǎn)的曲線的切線和法線。上某一點(diǎn)的曲線的切線和法線。一、片段對(duì)象一、片段對(duì)象 片段(片段(S
30、egment)是由一個(gè)起始點(diǎn)、一個(gè)終止點(diǎn)以及定義兩點(diǎn)之)是由一個(gè)起始點(diǎn)、一個(gè)終止點(diǎn)以及定義兩點(diǎn)之間的曲線函數(shù)組成的一維幾何形體對(duì)象,它是一條單一的曲線對(duì)象。間的曲線函數(shù)組成的一維幾何形體對(duì)象,它是一條單一的曲線對(duì)象。 片段對(duì)象是一個(gè)抽象類(lèi)。它可能是線性的,如線段(片段對(duì)象是一個(gè)抽象類(lèi)。它可能是線性的,如線段(Line),也),也可能是非線性的,如圓?。赡苁欠蔷€性的,如圓?。–ircularArc)、橢圓?。ǎ?、橢圓?。‥llipticArc)和)和貝塞爾曲線(貝塞爾曲線(BezierCurve)等都是一種片段對(duì)象。)等都是一種片段對(duì)象。 這些片段對(duì)象可以獨(dú)立存在,也可以用于構(gòu)成其它幾何形體對(duì)
31、象這些片段對(duì)象可以獨(dú)立存在,也可以用于構(gòu)成其它幾何形體對(duì)象,如,如Path、Ring或或Polycurve等。一個(gè)片段對(duì)象可以有等。一個(gè)片段對(duì)象可以有Z、M和和ID值。值。 Segment也是也是Curve的一個(gè)子類(lèi),它從的一個(gè)子類(lèi),它從Curve類(lèi)繼承了最基本的屬類(lèi)繼承了最基本的屬性和方法,如性和方法,如FromPoint和和ToPoint確定了所有曲線的起點(diǎn)和終點(diǎn)。確定了所有曲線的起點(diǎn)和終點(diǎn)。 ISegment是是Segment對(duì)象的主要接口,它提供了兩個(gè)方法,用于對(duì)象的主要接口,它提供了兩個(gè)方法,用于將一個(gè)將一個(gè)Segment分割為兩個(gè)或多個(gè)分割為兩個(gè)或多個(gè)Segment,但原始的,但原
32、始的Segment并沒(méi)并沒(méi)有被破壞。有被破壞。 ISegment:SplitAtDistance方法需要傳入一個(gè)給定長(zhǎng)度或比率值方法需要傳入一個(gè)給定長(zhǎng)度或比率值,這個(gè)長(zhǎng)度值用于在,這個(gè)長(zhǎng)度值用于在Segment對(duì)象的起點(diǎn)和終點(diǎn)之間的路徑上確定對(duì)象的起點(diǎn)和終點(diǎn)之間的路徑上確定一個(gè)分割點(diǎn),將一個(gè)分割點(diǎn),將Segment對(duì)象分割為兩個(gè)對(duì)象分割為兩個(gè)Segment,可以通過(guò)該方,可以通過(guò)該方法的第三個(gè)和第四個(gè)參數(shù),得到兩個(gè)新的法的第三個(gè)和第四個(gè)參數(shù),得到兩個(gè)新的Segment對(duì)象。對(duì)象。 ISegment:SplitDivideLength可以將一個(gè)可以將一個(gè)Segment對(duì)象分割為不對(duì)象分割為不限數(shù)
33、目的新限數(shù)目的新Segment,這些新產(chǎn)生的,這些新產(chǎn)生的Segment是一個(gè)是一個(gè)Segment數(shù)組數(shù)組,而這個(gè)方法將返回一個(gè)指向數(shù)組中第一個(gè)元素的指針。下面的示例,而這個(gè)方法將返回一個(gè)指向數(shù)組中第一個(gè)元素的指針。下面的示例代碼將一個(gè)代碼將一個(gè)Segment對(duì)象分割為對(duì)象分割為5等份新的等份新的Segment。請(qǐng)同學(xué)們參閱。請(qǐng)同學(xué)們參閱參考資料參考資料P169頁(yè)上的代碼。頁(yè)上的代碼。 更復(fù)雜的幾何形體對(duì)象,如更復(fù)雜的幾何形體對(duì)象,如Ring 、Path、Polyline和和Polygon等等,都可由,都可由Segment對(duì)象集合來(lái)創(chuàng)建。其中,對(duì)象集合來(lái)創(chuàng)建。其中,Ring和和Path類(lèi)支持類(lèi)
34、支持ISegmentCollection接口,而接口,而Polyline和和Polygon則支持則支持IgeometryCollection接口。利用接口。利用ISegmentCollection接口定義的接口定義的AddSegment、RemoveSegment等方法,可以將一個(gè)等方法,可以將一個(gè)Segment集集合變成復(fù)雜度更高的集合形體對(duì)象。合變成復(fù)雜度更高的集合形體對(duì)象。1、CircularArc對(duì)象對(duì)象 該對(duì)象是一個(gè)圓弧,它是圓的一部分,如果使用該對(duì)象是一個(gè)圓弧,它是圓的一部分,如果使用CircularArc來(lái)表示一個(gè)整圓,則它的來(lái)表示一個(gè)整圓,則它的CentralAngle為為2,
35、且其起始點(diǎn)和終止點(diǎn)的位置是一個(gè)點(diǎn)。且其起始點(diǎn)和終止點(diǎn)的位置是一個(gè)點(diǎn)。 在幾何對(duì)象中,在幾何對(duì)象中,CircularArc是是EllipticArc的特殊情況的特殊情況。其主要屬性如圖:。其主要屬性如圖:IConstructCircularArc接口的五種構(gòu)造器接口的五種構(gòu)造器(總數(shù)為(總數(shù)為35種)種)(1)ConstructCircle構(gòu)造器構(gòu)造器 是產(chǎn)生一個(gè)圓對(duì)象的最簡(jiǎn)單的方法,通過(guò)傳入是產(chǎn)生一個(gè)圓對(duì)象的最簡(jiǎn)單的方法,通過(guò)傳入CenterPoint(圓心)和(圓心)和Radius(半徑)兩個(gè)屬性,可以確(半徑)兩個(gè)屬性,可以確定一個(gè)惟一的圓對(duì)象。定一個(gè)惟一的圓對(duì)象。(2)Construct
36、ArcDistance 通過(guò)傳入一個(gè)起始點(diǎn)、中點(diǎn)和圓弧長(zhǎng)度來(lái)產(chǎn)生一個(gè)新的通過(guò)傳入一個(gè)起始點(diǎn)、中點(diǎn)和圓弧長(zhǎng)度來(lái)產(chǎn)生一個(gè)新的圓弧對(duì)象,當(dāng)然這個(gè)長(zhǎng)度不能超過(guò)整個(gè)圓弧對(duì)象,當(dāng)然這個(gè)長(zhǎng)度不能超過(guò)整個(gè)2*radius。 (3)ConstructChordDistance 基于一個(gè)起始點(diǎn)、圓弧的弦長(zhǎng)度、圓弧的方向和中心點(diǎn)基于一個(gè)起始點(diǎn)、圓弧的弦長(zhǎng)度、圓弧的方向和中心點(diǎn)來(lái)產(chǎn)生一個(gè)新的圓弧對(duì)象。來(lái)產(chǎn)生一個(gè)新的圓弧對(duì)象。(4)ConstructEndPointsChordHeight 是使用一個(gè)起始點(diǎn)、一個(gè)終止點(diǎn)和一個(gè)弦的中點(diǎn)高度,是使用一個(gè)起始點(diǎn)、一個(gè)終止點(diǎn)和一個(gè)弦的中點(diǎn)高度,按照順時(shí)針或逆時(shí)針的方向產(chǎn)生一個(gè)圓
37、弧對(duì)象。按照順時(shí)針或逆時(shí)針的方向產(chǎn)生一個(gè)圓弧對(duì)象。(5)ConstructFilletPoint 可以產(chǎn)生兩條線段或圓弧的內(nèi)切線,這個(gè)方法要求傳入可以產(chǎn)生兩條線段或圓弧的內(nèi)切線,這個(gè)方法要求傳入兩個(gè)兩個(gè)Segment對(duì)象以及內(nèi)切弧在兩個(gè)對(duì)象以及內(nèi)切弧在兩個(gè)Segment上的點(diǎn)。上的點(diǎn)。2、Line對(duì)象對(duì)象 Line對(duì)象是最簡(jiǎn)單的片段,它是由起始點(diǎn)和終止對(duì)象是最簡(jiǎn)單的片段,它是由起始點(diǎn)和終止點(diǎn)決定的一條直線,它是一維幾何對(duì)象點(diǎn)決定的一條直線,它是一維幾何對(duì)象 Line是最簡(jiǎn)單和最常使用的片段對(duì)象,通常用是最簡(jiǎn)單和最常使用的片段對(duì)象,通常用于構(gòu)造于構(gòu)造Polyline、Polygon、Ring和和
38、Path對(duì)象等。對(duì)象等。 ILine是是Line對(duì)象主要支持的接口,它定義了一對(duì)象主要支持的接口,它定義了一系列用于構(gòu)造和設(shè)置線段對(duì)象的屬性和方法。系列用于構(gòu)造和設(shè)置線段對(duì)象的屬性和方法。u QueryCoords屬性:返回通過(guò)一個(gè)直線上的起始點(diǎn)和終屬性:返回通過(guò)一個(gè)直線上的起始點(diǎn)和終止點(diǎn)的坐標(biāo)值;止點(diǎn)的坐標(biāo)值;uPutCoords:設(shè)置線段兩點(diǎn)的坐標(biāo):設(shè)置線段兩點(diǎn)的坐標(biāo)u Angle屬性:返回線段對(duì)象與屬性:返回線段對(duì)象與X軸的夾角。軸的夾角。 此外,此外,IConstructLine接口還提供了更兩個(gè)更復(fù)雜的接口還提供了更兩個(gè)更復(fù)雜的方法來(lái)產(chǎn)生一個(gè)線段。方法來(lái)產(chǎn)生一個(gè)線段。u Constr
39、uctAngleBisector方法:通過(guò)傳入三個(gè)點(diǎn)對(duì)象,方法:通過(guò)傳入三個(gè)點(diǎn)對(duì)象,構(gòu)造一個(gè)夾角,然后通過(guò)這個(gè)夾角的頂點(diǎn)產(chǎn)生一個(gè)角平分構(gòu)造一個(gè)夾角,然后通過(guò)這個(gè)夾角的頂點(diǎn)產(chǎn)生一個(gè)角平分線以及一個(gè)線段的長(zhǎng)度。線以及一個(gè)線段的長(zhǎng)度。uConstructExtended:可以用于擴(kuò)展一個(gè)已:可以用于擴(kuò)展一個(gè)已經(jīng)存在的線段對(duì)象來(lái)產(chǎn)生一個(gè)新的線段。經(jīng)存在的線段對(duì)象來(lái)產(chǎn)生一個(gè)新的線段。3、EllipticArc對(duì)象對(duì)象 EllipticArc(橢圓弧)是一個(gè)橢圓的一部分,橢圓是通(橢圓?。┦且粋€(gè)橢圓的一部分,橢圓是通過(guò)一個(gè)長(zhǎng)軸、一個(gè)短軸、中心點(diǎn)和旋轉(zhuǎn)角度值來(lái)確定的幾何過(guò)一個(gè)長(zhǎng)軸、一個(gè)短軸、中心點(diǎn)和旋轉(zhuǎn)角度
40、值來(lái)確定的幾何對(duì)象,如果旋轉(zhuǎn)角度為對(duì)象,如果旋轉(zhuǎn)角度為0,則橢圓對(duì)象的兩個(gè)軸分別與,則橢圓對(duì)象的兩個(gè)軸分別與X、Y軸重合。軸重合。 EllipticArc對(duì)象則還使用諸如對(duì)象則還使用諸如FromAngle、ToAngle兩兩個(gè)參數(shù)來(lái)確定。個(gè)參數(shù)來(lái)確定。IEllipticArc構(gòu)造器方法構(gòu)造器方法(1)ConstructEnvelope 方法:通過(guò)給定的包絡(luò)線對(duì)象方法:通過(guò)給定的包絡(luò)線對(duì)象來(lái)產(chǎn)生一個(gè)內(nèi)置的橢圓對(duì)象。來(lái)產(chǎn)生一個(gè)內(nèi)置的橢圓對(duì)象。(2)ConstructTwoPointsEnvelope方法方法 :利用起始點(diǎn)、:利用起始點(diǎn)、終止點(diǎn)、包絡(luò)線和一個(gè)方向參數(shù)來(lái)產(chǎn)生一個(gè)橢圓弧。終止點(diǎn)、包絡(luò)線和
41、一個(gè)方向參數(shù)來(lái)產(chǎn)生一個(gè)橢圓弧。4.BezierCurve對(duì)象對(duì)象 貝塞爾曲線是由四個(gè)控制點(diǎn)定義的,由一組三貝塞爾曲線是由四個(gè)控制點(diǎn)定義的,由一組三次多項(xiàng)式描述的參數(shù)曲線,用于描述等高線或河流次多項(xiàng)式描述的參數(shù)曲線,用于描述等高線或河流等平滑變化的線對(duì)象。等平滑變化的線對(duì)象。 控制點(diǎn)控制點(diǎn)0和控制點(diǎn)和控制點(diǎn)1構(gòu)成的構(gòu)成的線段和控制點(diǎn)線段和控制點(diǎn)2和控制點(diǎn)和控制點(diǎn)3構(gòu)成構(gòu)成的線段相切。的線段相切。 這四個(gè)控制點(diǎn)產(chǎn)生了一條這四個(gè)控制點(diǎn)產(chǎn)生了一條平滑的曲線。平滑的曲線。IBezierCurve接口定義了用于設(shè)置和查詢(xún)曲線屬性的方接口定義了用于設(shè)置和查詢(xún)曲線屬性的方法,法,IBezierCurve:Pu
42、tCoord方法用于改變一個(gè)已經(jīng)方法用于改變一個(gè)已經(jīng)存在的貝塞爾曲線。存在的貝塞爾曲線。 還可以利用還可以利用IConstructBezierCurve接口定義的方接口定義的方法產(chǎn)生貝塞爾曲線。法產(chǎn)生貝塞爾曲線。5.路徑(路徑(Path)對(duì)象)對(duì)象 路徑是連續(xù)片段對(duì)象的集合,除了路徑的第一個(gè)和最后路徑是連續(xù)片段對(duì)象的集合,除了路徑的第一個(gè)和最后一個(gè)組成片段外,每一個(gè)片段的起始點(diǎn)都是前一個(gè)片段的終一個(gè)組成片段外,每一個(gè)片段的起始點(diǎn)都是前一個(gè)片段的終止點(diǎn),即路徑對(duì)象中的片段不能出現(xiàn)分離的情況。止點(diǎn),即路徑對(duì)象中的片段不能出現(xiàn)分離的情況。 路徑可以是任意數(shù)目的路徑可以是任意數(shù)目的Line、Circu
43、larArc、EllipticArc和和BezierCurve的組合。一個(gè)或多個(gè)路徑對(duì)象組的組合。一個(gè)或多個(gè)路徑對(duì)象組成一個(gè)成一個(gè)Polyline。 IPath是是Path對(duì)象的主要接口,它定義了設(shè)置路徑對(duì)象對(duì)象的主要接口,它定義了設(shè)置路徑對(duì)象的多個(gè)方法。的多個(gè)方法。uGeneralizes方法:可以抽象化一個(gè)平滑的路徑對(duì)象,即方法:可以抽象化一個(gè)平滑的路徑對(duì)象,即可以將一個(gè)平滑的曲線變成為幾條相連的線段。可以將一個(gè)平滑的曲線變成為幾條相連的線段。u Smooth方法:將一個(gè)非平滑的路徑對(duì)象平滑化。方法:將一個(gè)非平滑的路徑對(duì)象平滑化。u SmoothLocal方法:可以只將某個(gè)連接點(diǎn)處平滑化,
44、而方法:可以只將某個(gè)連接點(diǎn)處平滑化,而非后者一樣平滑整條路徑對(duì)象。非后者一樣平滑整條路徑對(duì)象。6.環(huán)環(huán)(Ring)對(duì)象對(duì)象 環(huán)是一種封閉的路徑對(duì)象,它的起始點(diǎn)和終止點(diǎn)坐標(biāo)值環(huán)是一種封閉的路徑對(duì)象,它的起始點(diǎn)和終止點(diǎn)坐標(biāo)值是一樣的,這種對(duì)象具有是一樣的,這種對(duì)象具有“內(nèi)部?jī)?nèi)部”和和“外部外部”屬性。環(huán)是屬性。環(huán)是產(chǎn)生產(chǎn)生Polygon(多邊形)的元素。(多邊形)的元素。 組成環(huán)的片段對(duì)象是有序的,環(huán)對(duì)象也實(shí)現(xiàn)了組成環(huán)的片段對(duì)象是有序的,環(huán)對(duì)象也實(shí)現(xiàn)了IPath接接口。環(huán)必須是封閉的路徑,因此它具有以下幾個(gè)關(guān)鍵特征:口。環(huán)必須是封閉的路徑,因此它具有以下幾個(gè)關(guān)鍵特征:u 它包含一系列首尾相連的同方
45、向的片段對(duì)象它包含一系列首尾相連的同方向的片段對(duì)象u 它是封閉的,即起始點(diǎn)與終止點(diǎn)是同一點(diǎn)它是封閉的,即起始點(diǎn)與終止點(diǎn)是同一點(diǎn)u 它不能自相交它不能自相交 IRing接口為接口為Ring所實(shí)現(xiàn),它定義了多個(gè)處理環(huán)對(duì)象的所實(shí)現(xiàn),它定義了多個(gè)處理環(huán)對(duì)象的方法:方法: IRing的的Close方法可以添加一條線段到一個(gè)開(kāi)放的環(huán)對(duì)方法可以添加一條線段到一個(gè)開(kāi)放的環(huán)對(duì)象上,以連接這個(gè)環(huán)的起始點(diǎn)和終止點(diǎn)。象上,以連接這個(gè)環(huán)的起始點(diǎn)和終止點(diǎn)。 一個(gè)環(huán)的片段(一個(gè)環(huán)的片段(segment)至少應(yīng)該有)至少應(yīng)該有3個(gè)(三角形環(huán)是個(gè)(三角形環(huán)是最簡(jiǎn)單的環(huán)對(duì)象),而這個(gè)方法可以在只有兩個(gè)片段被設(shè)最簡(jiǎn)單的環(huán)對(duì)象),而
46、這個(gè)方法可以在只有兩個(gè)片段被設(shè)置的情況下自動(dòng)產(chǎn)生第三個(gè)片段以封閉環(huán)對(duì)象。置的情況下自動(dòng)產(chǎn)生第三個(gè)片段以封閉環(huán)對(duì)象。 在在Geometry中,封閉的幾何形體有三種,即中,封閉的幾何形體有三種,即Envelope、Ring和和Polygon,因此它們擁有一個(gè)別的幾何對(duì)象沒(méi)有的,因此它們擁有一個(gè)別的幾何對(duì)象沒(méi)有的特征,即面積,因此都實(shí)現(xiàn)了特征,即面積,因此都實(shí)現(xiàn)了IArea接口來(lái)獲取與面積有關(guān)接口來(lái)獲取與面積有關(guān)的信息。的信息。uArea:返回一個(gè)具有封閉特性幾何形體對(duì)象的面積:返回一個(gè)具有封閉特性幾何形體對(duì)象的面積uCentralPoid:返回這些幾何形體的重心。:返回這些幾何形體的重心。uLab
47、elPoint:返回這些幾何形體的標(biāo)注點(diǎn)。:返回這些幾何形體的標(biāo)注點(diǎn)。6.PolyCurve對(duì)象對(duì)象 PolyCurve是一個(gè)抽象類(lèi),它代表了一個(gè)是一個(gè)抽象類(lèi),它代表了一個(gè)Polyline或或Polygon對(duì)象的邊框線,它是由多個(gè)曲線構(gòu)成的對(duì)象,對(duì)象的邊框線,它是由多個(gè)曲線構(gòu)成的對(duì)象,Polyline的每一個(gè)組成部分都是一個(gè)有效的路徑對(duì)象;的每一個(gè)組成部分都是一個(gè)有效的路徑對(duì)象;Polygon的每個(gè)組成部分則是環(huán)對(duì)象。的每個(gè)組成部分則是環(huán)對(duì)象。IPolycurve接口提供了處理這兩種對(duì)象的一般方法:接口提供了處理這兩種對(duì)象的一般方法:u SplitAtDistance和和SplitAtPoin
48、t:通過(guò)指定一個(gè)距離:通過(guò)指定一個(gè)距離或點(diǎn)的方式添加一個(gè)新的頂點(diǎn)到或點(diǎn)的方式添加一個(gè)新的頂點(diǎn)到Polycurve上。上。u Generalize:用于給一個(gè):用于給一個(gè)Polycurve對(duì)象進(jìn)行抽象化整對(duì)象進(jìn)行抽象化整形。形。7.Polyline對(duì)象對(duì)象 Polyline(多義線多義線)是相連或不相連的路徑對(duì)象的有序集是相連或不相連的路徑對(duì)象的有序集合,它可以分別是單個(gè)路徑、多個(gè)不相連的路徑和多個(gè)相合,它可以分別是單個(gè)路徑、多個(gè)不相連的路徑和多個(gè)相連路徑的集合。連路徑的集合。 這個(gè)對(duì)象可以用于表示具有線狀特征的對(duì)象,如河流、這個(gè)對(duì)象可以用于表示具有線狀特征的對(duì)象,如河流、公路和等高線等。公路和
49、等高線等。 用戶(hù)可以使用單路徑構(gòu)成的多義線(用戶(hù)可以使用單路徑構(gòu)成的多義線(Polyline)來(lái)表示簡(jiǎn))來(lái)表示簡(jiǎn)單線,如簡(jiǎn)單公路;單線,如簡(jiǎn)單公路;使用具有多個(gè)路徑的多義線來(lái)表示復(fù)雜線類(lèi)型,如具有多使用具有多個(gè)路徑的多義線來(lái)表示復(fù)雜線類(lèi)型,如具有多個(gè)支流的河流等。個(gè)支流的河流等。 一個(gè)有效的一個(gè)有效的Polyline對(duì)象需要滿(mǎn)足以下的準(zhǔn)則:對(duì)象需要滿(mǎn)足以下的準(zhǔn)則:u 組成組成Polyline的的Path對(duì)象都是有效的對(duì)象都是有效的u Path不會(huì)重合、相交或自相交不會(huì)重合、相交或自相交u 多個(gè)多個(gè)Path對(duì)象可以連接于某一個(gè)節(jié)點(diǎn),也可以是分離的對(duì)象可以連接于某一個(gè)節(jié)點(diǎn),也可以是分離的u 長(zhǎng)度為
50、長(zhǎng)度為0的的Path對(duì)象是不被允許的。對(duì)象是不被允許的。 IPolyline是是Polyline類(lèi)的主要接口,它定義了兩個(gè)主類(lèi)的主要接口,它定義了兩個(gè)主要方法。要方法。 其中其中Reshape方法可以使用一個(gè)路徑對(duì)象給一個(gè)存在的方法可以使用一個(gè)路徑對(duì)象給一個(gè)存在的Polyline整形。另一個(gè)方法是整形。另一個(gè)方法是SimplifyNetwork用于簡(jiǎn)化網(wǎng)用于簡(jiǎn)化網(wǎng)絡(luò)。絡(luò)。 Polyline可以使用可以使用IGeometryCollection接口添加路徑接口添加路徑對(duì)象來(lái)產(chǎn)生,當(dāng)使用這個(gè)接口的時(shí)候,需要注意以下的情對(duì)象來(lái)產(chǎn)生,當(dāng)使用這個(gè)接口的時(shí)候,需要注意以下的情況:況:u 每一個(gè)路徑對(duì)象都必
51、須是有效的,或者這個(gè)路徑對(duì)象在每一個(gè)路徑對(duì)象都必須是有效的,或者這個(gè)路徑對(duì)象在使用使用IPath:Simplify方法后有效。方法后有效。u 由于由于Polyline是路徑對(duì)象的有序集合,因此在添加路徑是路徑對(duì)象的有序集合,因此在添加路徑時(shí),必須注意順序和方向。時(shí),必須注意順序和方向。u 為了保證為了保證Polyline是有效的,可以在產(chǎn)生這個(gè)形狀后使是有效的,可以在產(chǎn)生這個(gè)形狀后使用用Simplify方法。方法。8.Polygon對(duì)象對(duì)象Polygon多邊形是環(huán)(多邊形是環(huán)(Ring)的集合,)的集合,Polygon可以由一個(gè)可以由一個(gè)或者多個(gè)環(huán)組成,甚至環(huán)內(nèi)套環(huán),形成島環(huán)的情況,但是內(nèi)或者
52、多個(gè)環(huán)組成,甚至環(huán)內(nèi)套環(huán),形成島環(huán)的情況,但是內(nèi)外環(huán)之間不能重疊。外環(huán)之間不能重疊。 對(duì)于一個(gè)給定的點(diǎn)而言,它總是在多邊形對(duì)于一個(gè)給定的點(diǎn)而言,它總是在多邊形“內(nèi)部?jī)?nèi)部”、“外部外部”或者或者“邊界上邊界上”。 Polygon通常用于描述具有面狀通常用于描述具有面狀特性的要素。特性的要素。一個(gè)有效的多邊形符合下面的標(biāo)注:一個(gè)有效的多邊形符合下面的標(biāo)注:u 每一個(gè)構(gòu)成的環(huán)都是有效的每一個(gè)構(gòu)成的環(huán)都是有效的u環(huán)之間的邊界不能重合環(huán)之間的邊界不能重合u外部環(huán)是有方向的,它是順時(shí)針?lè)较蛲獠凯h(huán)是有方向的,它是順時(shí)針?lè)较騯內(nèi)部環(huán)在一個(gè)多邊形中定義了一個(gè)洞,它是逆時(shí)針?lè)较虻膬?nèi)部環(huán)在一個(gè)多邊形中定義了一個(gè)洞,
53、它是逆時(shí)針?lè)较虻膗面積為面積為0的環(huán)是不允許的的環(huán)是不允許的u 多邊形上存在一個(gè)片段對(duì)象或路徑對(duì)象是無(wú)效的多邊形上存在一個(gè)片段對(duì)象或路徑對(duì)象是無(wú)效的Paths and polygonsPolylinesn由一組閉合或不閉合的由一組閉合或不閉合的Paths組成組成Polygonsn由一個(gè)或多個(gè)由一個(gè)或多個(gè)rings組成組成Path with three segmentsPolygon with seven rings幾何形體對(duì)象模型圖幾何形體對(duì)象模型圖PointMultiPointRingPathSegmentGeometryEnvelopeCurvePolylineLineBezierCurv
54、eCircularArcPolycurve*Polygon*Geometrycollection*4.5 Geometry集合接口集合接口 除了除了Point對(duì)象外,其它的幾何形體對(duì)象都可以通過(guò)集對(duì)象外,其它的幾何形體對(duì)象都可以通過(guò)集合的方式構(gòu)成。如點(diǎn)集對(duì)象是點(diǎn)的集合,路徑是片段對(duì)象合的方式構(gòu)成。如點(diǎn)集對(duì)象是點(diǎn)的集合,路徑是片段對(duì)象的集合,多義線是路徑的集合。的集合,多義線是路徑的集合。 在在AE中的這些中的這些Geometry類(lèi)型的集合接口主要有類(lèi)型的集合接口主要有IGeometryCollection、ISegmentCollection和和IPointCollection三個(gè),這些接口揭
55、示出三個(gè),這些接口揭示出AE幾何對(duì)象模型的幾何對(duì)象模型的實(shí)質(zhì)它們是一種組合構(gòu)成的形式,但這種組合并不一定實(shí)質(zhì)它們是一種組合構(gòu)成的形式,但這種組合并不一定按照嚴(yán)格的次序完成。按照嚴(yán)格的次序完成。(一)(一)IGeometryCollection接口接口 該接口是被多種結(jié)合對(duì)象實(shí)現(xiàn)的接口,它們包括該接口是被多種結(jié)合對(duì)象實(shí)現(xiàn)的接口,它們包括Polygons、Polylines、Multipoints、MultiPatches、TriangleStrips、TriangleFans和和GeometryBags等。等。 它的方法可以讓程序員添加、改變和移除一個(gè)幾何對(duì)象它的方法可以讓程序員添加、改變和移除
56、一個(gè)幾何對(duì)象的組成元素,即它們的子對(duì)象。這些元素包括:的組成元素,即它們的子對(duì)象。這些元素包括:u 對(duì)于對(duì)于Polygon而言,每個(gè)組成的而言,每個(gè)組成的Geometry,即子對(duì)象是,即子對(duì)象是Ring對(duì)象對(duì)象u 對(duì)于對(duì)于Polyline而言,其子對(duì)象是而言,其子對(duì)象是Pathu 對(duì)于對(duì)于MultiPoint而言,其子對(duì)象是而言,其子對(duì)象是Pointu 對(duì)于對(duì)于MultiPath而言,其組成的而言,其組成的Geometry是是TriangleFan、TriangleStrip或或Ring(MultiPath是是3維幾何對(duì)象)維幾何對(duì)象)u 對(duì)于對(duì)于GeometryBag對(duì)象而言,組成它的對(duì)象而
57、言,組成它的Geometry可以是可以是任何類(lèi)型的幾何形體對(duì)象。任何類(lèi)型的幾何形體對(duì)象。u Geometry屬性:通過(guò)一個(gè)索引值來(lái)返回一個(gè)組成這個(gè)幾屬性:通過(guò)一個(gè)索引值來(lái)返回一個(gè)組成這個(gè)幾何對(duì)象的某個(gè)子對(duì)象何對(duì)象的某個(gè)子對(duì)象u GeometryCount:返回這些子對(duì)象的數(shù)目:返回這些子對(duì)象的數(shù)目u AddGeometry和和AddGeometries方法:向一個(gè)幾何對(duì)象方法:向一個(gè)幾何對(duì)象添加子對(duì)象,前者一次只能添加一個(gè)幾何對(duì)象,后者是一次添加子對(duì)象,前者一次只能添加一個(gè)幾何對(duì)象,后者是一次添加一個(gè)幾何數(shù)組添加一個(gè)幾何數(shù)組u AddGeometryCollection:將一個(gè)多邊形中所有的子
58、對(duì):將一個(gè)多邊形中所有的子對(duì)象的引用添加到某個(gè)多邊形中,即可以合并兩個(gè)多邊形象的引用添加到某個(gè)多邊形中,即可以合并兩個(gè)多邊形(二)(二)ISegmentCollection接口接口 它被它被Path、Ring、Polyline和和Polygon四個(gè)類(lèi)所實(shí)現(xiàn)四個(gè)類(lèi)所實(shí)現(xiàn),因此,它們都可以被稱(chēng)作是片段幾何對(duì)象,使用這個(gè)接,因此,它們都可以被稱(chēng)作是片段幾何對(duì)象,使用這個(gè)接口可以處理片段幾何對(duì)象中的每一個(gè)組成元素口可以處理片段幾何對(duì)象中的每一個(gè)組成元素Segment對(duì)象。對(duì)象。u Segment屬性:需要輸入一個(gè)子對(duì)象的索引值屬性:需要輸入一個(gè)子對(duì)象的索引值u EnumSegments返回一個(gè)返回一個(gè)
59、SegmentCollection對(duì)象中的對(duì)象中的片段對(duì)象,它作為一個(gè)枚舉值返回片段對(duì)象,它作為一個(gè)枚舉值返回u AddSegment方法:用于向一個(gè)方法:用于向一個(gè)SegmentCollection對(duì)對(duì)象中添加單個(gè)的片段象中添加單個(gè)的片段u AddSegments:添加一個(gè)片段數(shù)組對(duì)象:添加一個(gè)片段數(shù)組對(duì)象u InsertSegments、InsertSegmentCollection、RemoveSegments、ReplaceSegments、ReplaceSegmentCollection、SetSegmentCollection和和SetSegments都是用于改變和重新排列這個(gè)片段
60、集合對(duì)象都是用于改變和重新排列這個(gè)片段集合對(duì)象中的片段。中的片段。(三)(三)IPointCollection接口接口 被多個(gè)幾何對(duì)象類(lèi)所實(shí)現(xiàn),這些對(duì)象包括都可以由多個(gè)被多個(gè)幾何對(duì)象類(lèi)所實(shí)現(xiàn),這些對(duì)象包括都可以由多個(gè)點(diǎn)構(gòu)成,如點(diǎn)構(gòu)成,如Multipoints、Paths、Rings、Polylines、Polygons、TriangleFans、TriangleStripes和和MutiPatches等,它們都可以稱(chēng)為等,它們都可以稱(chēng)為PointCollection對(duì)象。對(duì)象。 PointCollection對(duì)象可以對(duì)象可以IPointCollection接口定義的接口定義的方法獲取、添加、插
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年養(yǎng)老保險(xiǎn)考試試題及答案
- 2025年電網(wǎng)會(huì)計(jì)面試題及答案
- 2025年你的理解測(cè)試題及答案
- 修身語(yǔ)100則:原文+譯文
- 2025年建材銷(xiāo)售面試試題及答案
- 2025年空間站面試題及答案
- 2025年股權(quán)銷(xiāo)售面試試題及答案
- 2025年測(cè)繪副總理論試題及答案
- 2025年高中資料測(cè)試題及答案
- 2025年骨生物力學(xué)試題及答案
- 伊利亞特英文介紹ppt
- 污水處理廠改造拆除工程施工方案
- 小米公司招聘測(cè)試題目
- 心肌梗死的臨床護(hù)理
- 中國(guó)居民膳食指南(全)
- 多發(fā)性肌炎的基本知識(shí)
- 血細(xì)胞分析報(bào)告規(guī)范化指南解讀
- 橋梁與地下工程上崗資格考試題庫(kù)(濃縮500題)
- 《大學(xué)物理學(xué)》精美課件(全)
- 政府投資項(xiàng)目立項(xiàng)申請(qǐng)表-正面
- me實(shí)驗(yàn)2 電位、電壓的測(cè)定及電路電位圖的繪制
評(píng)論
0/150
提交評(píng)論