pPoint.PutCoords100,100
IPoint½Ó¿ÚµÄµÚ¶þ¸ö·½·¨QueryCoords(X,Y)£¨·½·¨£¬µÃµ½¸ÃµãµÄ×ø±ê£©
Àý×Ó´úÂ룺 Dim pPoint asIPoint Dim dX asDouble,dYasDouble pPoint.QueryCoordsdX,dY
IPoint½Ó¿ÚµÄµÚÈý¸ö·½·¨ConstrainAngle (constraintAngle, anchor, allowOpposite ) £¨·½·¨£¬Èç¹ûµÚÈý¸ö²ÎÊýallowOppositeΪTrue£¬Ôò½«µÚ¶þ¸ö²ÎÊýanchorÕâ¸öµã×÷Ϊһ¸öԵ㣬ȻºóÒÔµÚÒ»¸ö²ÎÊý constraintAngleΪÓëxÖáµÄ½Ç¶È£¬×öÒ»ÌõÖ±Ïߣ¬ÔÙ½«µ÷Óô˲ÎÊýµÄµãÏò¸ÃÖ±Ïß×ö´¹Ïß²¢½»ÓÚÒ»¸öе㣬²¢½«µ÷Óô˷½·¨µÄµãÒÆ¶¯µ½¸Ãµã£©
Àý×Ó´úÂ룺
'Finds the closespointtolinefrom(0,0)withangles 'defined by stepsofpi/4(Noteallanglesinradians) Dim pApointAsIPoint Dim pNpointAsIPoint Dim piAsDouble Dim dAngleAsDouble Dim iAsLong Set pApoint =NewPoint pi = 4 *Atn(1) dAngle = 0 pApoint.PutCoords 0,0 Set pNpoint =NewPoint For i =0To7
pNpoint.PutCoords 1,0 dAngle = i *pi/4
pNpoint.ConstrainAngle dAngle,pApoint,True
MsgBox\ \ i & \ vbCrLf & pNpoint.X & \ pNpoint.Y Next i
IPoint½Ó¿ÚµÄµÚËĸö·½·¨ConstrainDistance(constraintRadius, anchor ) £¨·½·¨£¬ÒÔµÚ¶þ¸ö²ÎÊýanchorÕâ¸öµãΪԲÐÄ£¬È»ºóÒÔµÚÒ»¸ö²ÎÊýconstraintRadiusΪ°ë¾¶×öÒ»¸öÔ²£¬½«µ÷Óô˲ÎÊýµÄµãÒÆ¶¯µ½¸ÃµãÓëÔ²ÐÄ×öÏ߶ν»ÓÚ¸ÃÔ²µÄ½»µãÉÏ£©
Àý×Ó´úÂ룺
Public Sub t_constraindistance() Dim pPointAsIPoint Dim pNPointAsIPoint Dim dRadiusAsDouble
Set pPoint =NewPoint
pPoint.PutCoords 0,0
Set pNPoint =NewPoint pNPoint.PutCoords 2,2 dRadius = 1.4142135623731
pNPoint.ConstrainDistance dRadius,pPoint
MsgBox \ \ x,y = \ \ pNPoint.Y EndSub
5. ¹ØÓÚIPointArray½Ó¿Ú£¨esriGeometry£©
IPointArray½Ó¿ÚµÄµÚÒ»¸ö·½·¨Add(p) £¨·½·¨£¬Ïò¸ÃÀàÐ͵ÄÊý×é±äÁ¿Ìí¼ÓPoint£©
IPointArray½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔCount £¨Ö»¶Á£¬»ñµÃ¸ÃÊý×é±äÁ¿ÖÐPointµÄ¸öÊý£¬·µ»ØLongÀàÐͱäÁ¿£© IPointArray½Ó¿ÚµÄµÚÈý¸öÊôÐÔElement(Index)£¨Ö»¶Á£¬»ñµÃ¸ÃÊý×é±äÁ¿ÖÐλÓÚ²ÎÊýIndexË÷ÒýλÖõĵãPoint£¬·µ»ØÒ»¸öPointÀàÐ͵ıäÁ¿£©
IPointArray½Ó¿ÚµÄµÚËĸö·½·¨Insert (Index, p ) £¨·½·¨£¬ÏòË÷ÒýλÖÃIndex²åÈëÒ»¸öµãPoint£© IPointArray½Ó¿ÚµÄµÚÎå¸ö·½·¨Remove (Index ) £¨·½·¨£¬ÒƳýË÷ÒýλÖÃIndexµÄµãPoint£© IPointArray½Ó¿ÚµÄµÚÁù¸ö·½·¨RemoveAll £¨·½·¨£¬ÒƳýËùÓÐÔÚ´ËÊý×éÖеĵ㣩
6. ¹ØÓÚIPointCollection½Ó¿Ú£¨esriGeometry£©
IPointCollection½Ó¿ÚµÄµÚÒ»¸ö·½·¨AddPoint(inPoint [,before] [,after]) £¨·½·¨£¬Ïò¸ÃÀàÐ͵ĵ㼯±äÁ¿Ìí¼ÓPoint£¬µÚÒ»¸ö²ÎÊýΪÌí¼ÓµÄPoint£¬µÚ¶þ¸öµÚÈý¸ö²ÎÊýΪ¿ÉÑ¡ÔñµÄ²ÎÊý£¬Ä¬ÈÏÌí¼Ó½øµã¼¯µÄĩ⣩
IPointCollection½Ó¿ÚµÄµÚ¶þ¸öÊôÐÔPoint£¨i£© £¨Ö»¶Á£¬»ñµÃ¸Ãµã¼¯±äÁ¿ÖеÚi¸öλÖõÄPoint£¬·µ»ØIPointÀàÐͱäÁ¿£¬i´Ó0¼ÆË㿪ʼ£©
IPointCollection½Ó¿ÚµÄµÚÈý¸öÊôÐÔPointCount £¨Ö»¶Á£¬»ñµÃ¸Ãµã¼¯±äÁ¿ÖеãµÄ¸öÊý£¬·µ»ØLongÀàÐͱäÁ¿£¬Çмǣ¬Èç¹ûÒ»¸öPointCollection±äÁ¿ÊÇÓɱպϵÄGeometryת»»¶øÀ´µÄ»°£¬ÄÇôµãµÄ¸öÊý±È½ÚµãÊý¶àÒ»¸ö£¬ÒòΪÊDZպϵģ¬ËùÒÔÊ×λ½ÚµãÊÇͬһ¸öµã£©
7. ¹ØÓÚIPolyline½Ó¿Ú£¨esriGeometry£©
IPolyline½Ó¿ÚµÄµÚÒ»¸öÊôÐÔFromPointÓëToPoint£¨¶Áд£¬ÉèÖûòÕß¶ÁÈ¡¸ÃµãµÄÆðʼµãºÍÖÕÖ¹µã£¬·µ»Ø¶¼ÊÇIPointÀàÐ͵ıäÁ¿£©
IPolyline½Ó¿ÚµÄµÚ¶þ¸ö·½·¨QueryFromPoint (from )£¨·½·¨£¬·µ»ØIPointÀàÐ͵ıäÁ¿µ½²ÎÊýfrom£© IPolyline½Ó¿ÚµÄµÚÈý¸ö·½·¨QueryToPoint (to ) £¨·½·¨£¬·µ»ØIPointÀàÐ͵ıäÁ¿µ½²ÎÊýto£©
Public Sub t_ICurve_QueryPoints() Dim pIDAsNewUID pID = \ Dim pEditorAsIEditor
Dim pAppAsIApplication Set pApp =MxApplication
Set pEditor =pApp.FindExtensionByCLSID(pID)
If pEditor.SelectionCount<> 1 Then MsgBox\ ExitSub End If
Dim pEnumFeatAsIEnumFeature Dim pFeatureAsIFeature
Set pEnumFeat =pEditor.EditSelection
Dim pCurveAsICurve Dim pPointFromAsIPoint Dim pPointToAsIPoint
Set pPointFrom =NewPoint Set pPointTo =NewPoint
Set pFeature =pEnumFeat.Next
While NotpFeatureIsNothing
IfpFeature.Shape.GeometryType= esriGeometryPolyline Or_ esriGeometryPolyline OresriGeometryLineThen SetpCurve =pFeature.Shape pCurve.QueryFromPoint pPointFrom pCurve.QueryToPoint pPointTo
MsgBox\ vbCrLf _
& \ \ pPointFrom.Y &vbCrLf_ & \ \ pPointTo.Y &vbCrLf EndIf
SetpFeature =pEnumFeat.Next Wend
End Sub
IPolyline½Ó¿ÚµÄµÚËĸö·½·¨Generalize (maxAllowableOffset ) £¨·½·¨£¬ÓõÀ¸ñÀ˹ÆÕ¿Ë·¢À´¼ò»¯polyline£© IPolyline½Ó¿ÚµÄµÚÎå¸ö·½·¨Weed (maxAllowableOffsetFactor ) £¨·½·¨£¬ºÍ·½·¨GeneralizeÀàËÆ£¬¾ùΪ¼ò»¯polylineµÄ·½·¨£¬²»Í¬µÄÊDzÎÊý¡££©
8. ¹ØÓÚIGeometry½Ó¿Ú£¨esriGeometry£©
Public Sub t_IGeometry_polygon() Dim pIDAsNewUID pID = \ Dim pEditorAsIEditor Dim pAppAsIApplication Set pApp =Application
Set pEditor =pApp.FindExtensionByCLSID(pID)
If pEditor.SelectionCount<> 1Then MsgBox\ ExitSub End If
Dim pEnumFeatAsIEnumFeature Dim pFeatureAsIFeature
Set pEnumFeat =pEditor.EditSelection Dim pGeometryAsIGeometry Set pFeature =pEnumFeat.Next While NotpFeatureIsNothing
IfpFeature.Shape.GeometryType= esriGeometryPolygon Then
£¨Í¨¹ýpFeature.Shape»ñµÃGeometry£© SetpGeometry =pFeature.Shape
MsgBox\ properties...\ & \ vbCrLf _ & \ type =\ vbCrLf _
& \ \ \ pGeometry.Envelope.YMin& \ _ & pGeometry.Envelope.XMax &\ pGeometry.Envelope.YMin & vbCrLf_ & \ \ vbCrLf _ & \ EndIf
SetpFeature =pEnumFeat.Next Wend