gotop 发表于 2007-5-28 16:52:00

请问在vba中如何获得多段线的各个点的坐标?

请问在vba中如何获得多段线的各个点的坐标?

烟雨.江南 发表于 2007-5-29 10:02:00

<p>假设你已经取得多段线的实体objL</p><p>objL.Coordinate 就可以取得各个顶点的坐标。</p><p>如果多段线是三维的,那么</p><p>第一个点 XYZ值分别是:Coordinate(0),Coordinate(1),Coordinate(2)</p><p>第二个点 XYZ值分别是:Coordinate(3),Coordinate(4),Coordinate(5)</p><p>其余点依此类推。</p><p>如果多段线是二维的(LWPolyline),那么</p><p>第一个点 XY值分别是:Coordinate(0),Coordinate(1)</p><p>第二个点 XY值分别是:Coordinate(2),Coordinate(3)</p><p>其余点依此类推。</p>

gotop 发表于 2007-5-29 10:13:00

烟雨.江南发表于2007-5-29 10:02:00static/image/common/back.gif假设你已经取得多段线的实体objLobjL.Coordinate 就可以取得各个顶点的坐标。如果多段线是三维的,那么第一个点 XYZ值分别是:Coordinate(0),Coordinate(1),Coordinate(2)第二个点 XYZ值分别

<p>哦,明白了~~~</p><p>原来要用Coordinate这个数组啊</p><p>谢谢了~~<strong><em>烟雨.江南兄~~~</em></strong></p>

gotop 发表于 2007-5-31 00:41:00

<p>我要将Coordinate(0)的值赋给a</p><p>a必须是Variant型变量吗?</p><p>我把a设置成double型的话就会出现错误<br/></p>

烟雨.江南 发表于 2007-5-31 09:25:00

<p>抱歉!我前面的回帖打漏了一个S,应该是Coordinates。</p><p>如果是Coordinate的话,Coordinate(0)是第一个点的三维坐标,要取得第一个点的XYZ值可以这样:</p><p>dim x#,y#,z#</p><p>x = Coordinate(0)(0)</p><p>y&nbsp;= Coordinate(0)(1)</p><p>z&nbsp;= Coordinate(0)(2)</p><p>或者</p><p>x = Coordinates(0)</p><p>y&nbsp;= Coordinates(1)</p><p>z&nbsp;= Coordinates(2)</p>

gotop 发表于 2007-5-31 10:11:00

<p>那下面这段是用Coordinate还是Coordinates呢?</p><p>如果多段线是二维的(LWPolyline),那么</p><p>第一个点 XY值分别是:Coordinate(0),Coordinate(1)</p><p>第二个点 XY值分别是:Coordinate(2),Coordinate(3)</p><p></p>

七敏 发表于 2007-10-28 20:25:00

太好了,正找呢~~~

shyshy0916 发表于 2007-10-29 00:33:00

我还想问一句,可以用这个办法来取,但结束符是什么呢?循环退出的条件是干什么呢?<br/>  While coordinate(i) &lt;&gt; ""<br/>   x(0) = coordinate(i): x(1) = coordinate(i + 1): x(2) = coordinate(i + 2)<br/>  Set point = ThisDrawing.ModelSpace.AddPoint(x)<br/>   i = i + 3<br/>   Wend<br/>以上循环取出各点坐标,但最后的结束符是什么呢,最终出现下标越界了,一直十分郁闷啊!<br/>恳请各位老兄给予指点!!!!<br/>

hacklby 发表于 2008-3-1 10:07:00

<p>他获得这个坐标点是否由一个方向向另一个方向依次进行的.还是没有规律的.</p>
页: [1]
查看完整版本: 请问在vba中如何获得多段线的各个点的坐标?