RhinoScript vectors
From KokkugiaWiki
this set of examples illustrates how to use some basic vector functions in rhinoScript.
vectors in rhinoScript are described as an array (x,y,z) which describes the direction and magnitude of a vector with a start point at the origin.
Contents |
adding vectors
Option Explicit
' roland snooks | www.kokkugia.com
Call vecAdd()
Sub vecAdd()
Dim pt1, pt2, pt3, pt4, vec, vec1, vec2
pt1 = Rhino.GetPoint("select vector 1 start point")
pt2 = Rhino.GetPoint("select vector 1 end point")
pt3 = Rhino.GetPoint("select vector 2 start point")
pt4 = Rhino.GetPoint("select vector 2 end point")
vec1 = Rhino.VectorCreate(pt2, pt1)
vec2 = Rhino.VectorCreate(pt4, pt3)
vec = Rhino.VectorAdd(vec1, vec2)
Rhino.AddLine Array(0,0,0), vec1
Rhino.AddLine vec1, vec
Rhino.AddLine Array(0,0,0), vec
End Sub
subtracting vectors
Option Explicit
' roland snooks | www.kokkugia.com
Call vecSub()
Sub vecSub()
Dim pt1, pt2, pt3, pt4, vec, vec1, vec2
pt1 = Rhino.GetPoint("select vector 1 start point")
pt2 = Rhino.GetPoint("select vector 1 end point")
pt3 = Rhino.GetPoint("select vector 2 start point")
pt4 = Rhino.GetPoint("select vector 2 end point")
vec1 = Rhino.VectorCreate(pt2, pt1)
vec2 = Rhino.VectorCreate(pt4, pt3)
vec = Rhino.VectorSubtract(vec1, vec2)
Rhino.AddLine Array(0,0,0), vec1
Rhino.AddLine vec1, vec
Rhino.AddLine Array(0,0,0), vec
End Sub
unitizing and scaling vectors
Option Explicit
' roland snooks | www.kokkugia.com
Call vecScale()
Sub vecScale()
Dim pt1, pt2, pt3, pt4, vec, vec1, vec2
pt1 = Rhino.GetPoint("select vector start point")
pt2 = Rhino.GetPoint("select vector end point")
vec1 = Rhino.VectorCreate(pt2, pt1)
vec = Rhino.VectorUnitize(vec1)
vec = Rhino.VectorScale(vec, 5)
Rhino.AddLine Array(0,0,0), vec
End Sub
vector rotate
Option Explicit
' roland snooks | www.kokkugia.com
Call vecScale()
Sub vecScale()
Dim pt1, pt2, vec, rot
pt1 = Rhino.GetPoint("select vector 1 start point")
pt2 = Rhino.GetPoint("select vector 1 start point")
rot = Rhino.GetReal("vector rotation angle", 25)
vec = Rhino.VectorCreate(pt2, pt1)
Rhino.AddLine Array(0,0,0), vec
vec = Rhino.VectorRotate(vec, rot, Array(0,0,1))
Rhino.AddLine Array(0,0,0), vec
End Sub




