|
下面是一段代买,当我运行到arrsubd(i*2+1)=array((arrv(i)(0)+array(i+1)(0))/2.0,_
(arrv(i)(1)+array(i+1)(1))/2.0,_
(arrv(i)(2)+arrv(i+1)(2))/2.0)
的时候告诉我下标越界,谁能解释下为什么。
下面附上代码
Call Main()
Sub Main()
Dim a
a=rhino.GetObject("select a polyline")
Dim b
b=rhino.PolylineVertices(a)
Call subdividepolyline(b)
End Sub
Function subdividepolyline(ByRef arrv)
Dim arrsubd()
ReDim arrsubd(2*ubound(arrv))
Dim i
For i=0 To ubound(arrv)-1
arrsubd(i*2)=arrv(i)
arrsubd(i*2+1)=array((arrv(i)(0)+array(i+1)(0))/2.0,_
(arrv(i)(1)+array(i+1)(1))/2.0,_
(arrv(i)(2)+arrv(i+1)(2))/2.0)
Next
arrsubd(ubound(arrsubd))=arrv(ubound(arrv))
subdividepolyline=arrsubd()
End Function |
|