GetAngleBetween

From scripting
Jump to: navigation, search
Function GetAngleBetween(PtAx As Variant, PtAy As Variant, PtAz As Variant, PtBx As Variant, PtBy As Variant, PtBz As Variant, PtCx As Variant, PtCy As Variant, PtCz As Variant) As Double
Dim Vec1()
ReDim Vec1(2)
Dim Vec2()
ReDim Vec2(2)
Vec1(0) = PtAx - PtBx
Vec1(1) = PtAy - PtBy
Vec1(2) = PtAz - PtBz
Vec2(0) = PtCx - PtBx
Vec2(1) = PtCy - PtBy
Vec2(2) = PtCz - PtBz
Length1 = Sqr(Vec1(0) * Vec1(0) + Vec1(1) * Vec1(1) + Vec1(2) * Vec1(2))
Length2 = Sqr(Vec2(0) * Vec2(0) + Vec2(1) * Vec2(1) + Vec2(2) * Vec2(2))
DotP = (Vec1(0) * Vec2(0) + Vec1(1) * Vec2(1) + Vec1(2) * Vec2(2))
Calc = DotP / (Length1 * Length2)
'Arccos (77)
GetAngleBetween = (Atn(-Calc / Sqr(-Calc * Calc + 1)) + 2 * Atn(1)) * (180 / PI)
End Function