A Vector Type for C#

Or Check following Code :

**VB.Net Code :**

```
Public Shared Function ON_3dVectorAngle(ByVal v0 As On3dVector, ByVal v1 As On3dVector) _
As Double
' Unitize the input vectors
v0.Unitize()
v1.Unitize()
Dim dot As Double = OnUtil.ON_DotProduct(v0, v1)
' 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
If (dot > 1.0) Then dot = 1.0
Return System.Math.Acos(dot)
End Function
```

**C# Code :**

```
public static double ON_3dVectorAngle(On3dVector v0, On3dVector v1)
{
// Unitize the input vectors
v0.Unitize();
v1.Unitize();
double dot = OnUtil.ON_DotProduct(v0, v1);
// 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.
dot = (dot < -1.0 ? -1.0 : (dot > 1.0 ? 1.0 : dot));
return System.Math.Acos(dot);
}
```