请问在vba中如何获得多段线的各个点的坐标?
请问在vba中如何获得多段线的各个点的坐标? <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> 烟雨.江南发表于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> <p>我要将Coordinate(0)的值赋给a</p><p>a必须是Variant型变量吗?</p><p>我把a设置成double型的话就会出现错误<br/></p> <p>抱歉!我前面的回帖打漏了一个S,应该是Coordinates。</p><p>如果是Coordinate的话,Coordinate(0)是第一个点的三维坐标,要取得第一个点的XYZ值可以这样:</p><p>dim x#,y#,z#</p><p>x = Coordinate(0)(0)</p><p>y = Coordinate(0)(1)</p><p>z = Coordinate(0)(2)</p><p>或者</p><p>x = Coordinates(0)</p><p>y = Coordinates(1)</p><p>z = Coordinates(2)</p> <p>那下面这段是用Coordinate还是Coordinates呢?</p><p>如果多段线是二维的(LWPolyline),那么</p><p>第一个点 XY值分别是:Coordinate(0),Coordinate(1)</p><p>第二个点 XY值分别是:Coordinate(2),Coordinate(3)</p><p></p> 太好了,正找呢~~~ 我还想问一句,可以用这个办法来取,但结束符是什么呢?循环退出的条件是干什么呢?<br/> While coordinate(i) <> ""<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/> <p>他获得这个坐标点是否由一个方向向另一个方向依次进行的.还是没有规律的.</p>
页:
[1]