阅读:1583回复:3
获取面或线的节点坐标问题
<P>不明白为什么会产生多余的两个点,特来探讨一下,程序如下,<FONT color=#ff0000>红色</FONT>为获取选中的图块方法.</P>
<P>Dim pPolygon As IPolygon<br>Dim pGeom As IGeometry<br>Dim pFeatureLayer As IFeatureLayer<br>Dim pFeatureCursor As IFeatureCursor<br>Dim pFesyureClass As IFeatureClass<br>Dim pWorkspaceEdit As IWorkspaceEdit<br>Dim pFeature As iFeature<br>Dim pActiveView As IActiveView<br>Dim pPointColn As IPointCollection</P> <P>If m_pCurrentLayer Is Nothing Then Exit Sub<br>Set pFeatureLayer = m_pCurrentLayer<br>Set pFeatureClass = pFeatureLayer.FeatureClass<br>Set pFeatureCursor = GetSelectedFeatures<br>If pFeatureCursor Is Nothing Then Exit Sub<br>Set pWorkspaceEdit = GetWorkspaceEdit<br>pWorkspaceEdit.StartEditOperation<br>Set pFeature = pFeatureCursor.NextFeature<br>Set pPointColn = pFeature.Shape<br>MsgBox pPointColn.PointCount<br>Dim i As Integer<br>For i = 0 To<FONT color=#ff0000> pPointColn.PointCount</FONT> - 1<br><FONT color=#ff0000> MsgBox CStr(pPointColn.Point(i).x) + "," + CStr(pPointColn.Point(i).y)<br></FONT>Next<br><br>pWorkspaceEdit.StopEditOperation<br>Set pActiveView = m_pMap<br>pActiveView.refresh</P> <P>图1:</P> <P>从<FONT color=#ff0000>pPointColn.PointCount</FONT> 得到五个节点</P> <P>1.-140.965,8.682</P> <P>2.-128.801,4.355</P> <P>3.-124.637,11.131</P> <P>4.-124.637,11.131</P> <P>5.-140.965,8.682</P> <P>明明只是个三角形,确得到五个点,看图,我们很显然知道4,5是错的.</P> <P>图2:同样我们画了一个五边形,也得到了七个点,也只有前五个是正确的.</P> <P>1.-145.17,21.70</P> <P>2.-133.38,13.39</P> <P>3.-130.03,17.01</P> <P>4.-129.89,22.51</P> <P>5.-136.73,26.80</P> <P>6.-136.86,26.80</P> <P>7.-145.17,21.7</P><br> [此贴子已经被作者于2005-8-19 16:52:46编辑过]
|
|
1楼#
发布于:2005-08-19 22:23
<P>起点和终点取了两次?</P>
<P>现在没办法测试,周一上班再看了,希望看到你的好消息</P> |
|
|
2楼#
发布于:2005-08-20 19:30
<P>为什么会取两次?</P>
|
|
3楼#
发布于:2005-08-21 20:13
<P>我也是这样想的,可能是取了两次</P>
|
|