RhinoScript vector growth

From KokkugiaWiki

growing simple trajectories through vector operations
This is a simple example of how a path may be generated through simple local vector calculations.

Option Explicit
'simple vector growth algorithm
'diego perez and robert stuart-smith


Call vectorgrowth()
Sub vectorgrowth()
	'declare variables

	Dim vect1, vect2
	Dim arrPt1,arrPt2,arrPtNew	
	Dim i
	
	'define an origin point
	arrPt1 = Array(0,0,0) 
	'define a target point
	arrPt2 = Array(0,1,0)
	'create a vector
	vect1 = Rhino.VectorCreate (arrPt2, arrPt1)
	
	'create point at vector position
	Rhino.Addpoint vect1
	
	'loop for so many generations
	For i = 0 To 10
		'create a new vector that is a length of 1 on origin
		vect2 =	Rhino.VectorUnitize (vect1)
		'scale new vector
		vect2 =	Rhino.VectorScale (vect2, 1*i+1)
		'rotate new vector
		vect2 = Rhino.VectorRotate (vect2, 17, Array(0,0,1))
		
		'rotate new vector in another axis
		'vect2 = Rhino.VectorRotate (vect2, 17, vect1)		
		
		'add new vector to last vector position
		arrPtNew = Rhino.PointAdd (arrPt2, vect2)
		'create geometry at the updated position
		Rhino.Addpoint arrPtNew
		Rhino.AddLine arrPtNew, arrPt2
		'use new locations as inputs for next iteration
		arrPt2 = arrPtNew
		vect1 = vect2
	Next
End Sub
Views