chenyaqiou 发表于 2007-10-1 19:17:00

求教:多段线点的个数不定,怎么用VBA输入多段线?

<p>用VBA输入多段线一般是先定义输入一个点向量</p><p>dim&nbsp; pts(0 to 11) as double</p><p>pts(0)=...</p><p>pts(1)=...</p><p>...&nbsp; ...&nbsp; ...</p><p>然后再用ADDPOLYLINE方法绘多段线,这种方法点的个数要事先在"dim&nbsp; pts(0 to 11) as double"中定好(此例为四个点)</p><p>现在我的问题是,点的个数不能事先定好,而是要根据前面的输入情况确定,但"dim&nbsp; pts(0 to 11) as double"要求范围为常量</p><p>这样我就不能根据实际情况调节点向量的大小了,也就无法绘多断线线(如果强行定义一个很大的范围,如dim&nbsp; pts(0 to 1000) as double,那么ADDPOLYLINE会认为有很多(0,0,0)的点)</p><p>请问大侠:如何解决当点的个数不定时,用VBA绘多段线的方法</p>

alin 发表于 2007-10-1 21:04:00

ReDim

chenyaqiou 发表于 2007-10-1 22:54:00

<p>还不是很清楚ReDim,</p><p>是不是先DIM PTS(0 TO11) AS DOUBLE (先要画4点的多段线)</p><p>然后需要的时候再REDIM PTS(0 TO 14) AS DOUBLE(又画5点的多段线)</p><p>但问题是多段线的点数在提示输入前是未知的,可能是4个5个,也可能是100个200个</p>

chenyaqiou 发表于 2007-10-1 23:01:00

<p>加一句问</p><p>redim&nbsp; preserve pts(0 to i)</p><p>i可以是变量吗?</p>

woaishuijia 发表于 2007-10-2 07:06:00

<p>定义数组时应定义动态数组:</p><p>dim pts()</p><p>在第一次用到该数组的时候按用到的维数重新定义(比如用到一个点坐标)</p><p>redim pts(2)</p><p>以后每增加一个点就重新定义一次</p><p>redim preserve pts(ubound(pts)+3)</p>

chenyaqiou 发表于 2007-10-2 08:31:00

<p>可我并不是每次增加一个点,而是未知个数</p><p>如果redim&nbsp; pts(i)&nbsp;&nbsp;中i可以是变量就好了</p>

woaishuijia 发表于 2007-10-2 12:48:00

当然可以

e3fox 发表于 2007-10-11 20:04:00

一定要用多段线吗?用直线不行吗?直线就方便多了

chenyaqiou 发表于 2007-10-12 19:12:00

<p>它主要处理的对象是多段线,我们工程绘河道横断面线一般用多段线,如果用直线的话,编辑操作起来很麻烦</p>
页: [1]
查看完整版本: 求教:多段线点的个数不定,怎么用VBA输入多段线?