|
小弟最近在看rhinoscript101,看到数组的时候有一些问题,希望高人能给些帮助。
Call main()
Sub main()
Dim i,j
i=array(10,10,20)
Call addvector(i,j)
End Sub
Function addvector(ByVal vecdir,ByVal ptbase)
On Error Resume Next
addvector=Null
If isnull(ptbase) Or Not isarray(ptbase) Then
ptbase=array(0,0,0)
End If
Dim pttip
pttip=rhino.pointadd(ptbase,vecdir)
If Not(err.number=0) Then Exit Function
addvector=rhino.AddLine(ptbase,pttip)
If Not(err.number=0) Then Exit Function
If isnull(addvector) Then Exit Function
Call rhino.CurveArrows(addvector,2)
End Function
我用上面的代码执行出来的就是从原点画出来的一个箭头,没什么问题。由于没有给ptbase这个点,所以箭头从原点画出来。但是我改了一下,变成下面的之后
Dim i,j
i=array(10,10,20)
Call addvector(i,j)
Function addvector(ByVal vecdir,ByVal ptbase)
On Error Resume Next
addvector=Null
If isnull(ptbase) Or Not isarray(ptbase) Then
ptbase=array(0,0,0)
End If
Dim pttip
pttip=rhino.pointadd(ptbase,vecdir)
If Not(err.number=0) Then Exit Function
addvector=rhino.AddLine(ptbase,pttip)
If Not(err.number=0) Then Exit Function
If isnull(addvector) Then Exit Function
Call rhino.CurveArrows(addvector,2)
End Function
就是去掉了前面的call main()的过程,为什么箭头就不从原点画出来了呢。而且,在这种情况下,我给了j=array(-10,-10,-10),运行脚本,向量从(-10,-10,-10)画出,然后我删去j=array(-10,-10,-10)之后在运行脚本,向量还是从(-10,-10,-10)画出,不知道这是为什么。我想可能是数据存储的原因吧。希望有高手能解答一下。谢谢了。 |
|