Angle between two 3-D vectors


#1

Do not run this
Sorry to interrupt you. But I was in need of something like this but not running
Someone help me anyway
Thanks Mcneel

’ Description:
’ Calculates the angle between two 3-D vectors.
’ Parameters:
’ v0 - [in] - the first vector.
’ v1 - [in] - the second vector.
’ Returns:
’ the angle in degrees.

Function VectorAngle(v0, v1)

Dim u0 : u0 = Rhino.VectorUnitize(v0)
Dim u1 : u1 = Rhino.VectorUnitize(v1)
Dim dot : dot = Rhino.VectorDotProduct(u0, u1)

’ Force the dot product of the two input vectors to
’ fall within the domain for inverse cosine, which
’ is -1 <= x <= 1. This will prevent runtime
’ “domain error” math exceptions.
If (dot < -1.0) Then
dot = -1.0
ElseIf (dot > 1.0) Then
dot = 1.0
End If

VectorAngle = Rhino.ToDegrees(Rhino.ACos(dot))

End Function

vikthor


#2

You could also simply use the Rhino.Geometry.Vector3d.VectorAngle method.


#3

Thanks for your quick response

sorry, I do not know much english

I need a 3D angle dimension, I thought this was for that


#4

Perhaps [Rhino.Geometry.AngularDimension] (http://developer.rhino3d.com/api/RhinoCommon/html/T_Rhino_Geometry_AngularDimension.htm) is what you’re looking for. I believe you just add it to the Rhino document after instantiating it…