| 
 | 
 
小弟最近在看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)画出,不知道这是为什么。我想可能是数据存储的原因吧。希望有高手能解答一下。谢谢了。 |   
 
 
 
 |