ciao sono sara
ho questo script:
Function VoronoiPolygon(index, datSet, BBox)
' this function creates a voronoi cell for agiven point in a set of points
' should probably be optimized so that it only tests points near the samplepoint
VoronoiPolygon = Null
Dim midPt, arrPt, vecDir(1)
Dim ptS(2), ptE(2)
Dim ChordLength, Border
Dim brdLines(), i, N
ReDim brdLines(UBound(datSet)-1)
ChordLength = Rhino.Distance(BBox(0), BBox(2))
arrPt = datSet(index)
N = 0
For i = 0 To UBound(datSet)
If i <> index Then
midPt = Array((datSet(i)(0) + datSet(index)(0))/2, _
(datSet(i)(1) + datSet(index)(1))/2, _
0)
vecDir(0) = -(datSet(i)(1)-datSet(index)(1))
vecDir(1) = datSet(i)(0)-datSet(index)(0)
vecDir(0) = vecDir(0)/Rhino.Distance(datSet(i), datSet(index))*ChordLength
vecDir(1) = vecDir(1)/Rhino.Distance(datSet(i), datSet(index))*ChordLength
ptS(0) = midPt(0)+vecDir(0)
ptS(1) = midPt(1)+vecDir(1)
ptS(2) = 0
ptE(0) = midPt(0)-vecDir(0)
ptE(1) = midPt(1)-vecDir(1)
ptE(2) = 0
brdLines(N) = Rhino.AddLine(ptS, ptE)
N = N+1
End If
Next
Border = Rhino.AddPolyline(Array(Array(BBox(0)(0)-10, BBox(0)(1)-10, 0), _
Array(BBox(1)(0)+10, BBox(1)(1)-10, 0), _
Array(BBox(2)(0)+10, BBox(2)(1)+10, 0), _
Array(BBox(3)(0)-10, BBox(3)(1)+10, 0), _
Array(BBox(0)(0)-10, BBox(0)(1)-10, 0)))
Rhino.UnselectAllObjects
Rhino.SelectObjects brdLines
Rhino.SelectObject Border
Rhino.Command "-_CurveBoolean _DeleteInput=No _CombineRegions=No " & _
Rhino.Pt2Str(Array(datSet(index)(0),datSet(index)( 1),datSet(index)(2))) & _
" _Enter", vbFalse
' delete lines
Rhino.UnselectAllObjects
Rhino.SelectObjects brdLines
Rhino.Command "-_Delete"
VoronoiPolygon = vbTrue
End Function
index = 30
datSet = 20
BBox = 12
resultado = VoronoiPolygon (index, datSet, BBox)
quando faccio Invio mi esce la seguente scritta :
Errore di Run time
Tipo non-corrispondente 'U-Bound'
errore al carattere 0 (cioè sarebbe teoricamente la 'R' di ReDim)
chi mi aiuta?
grazie