Wrong angle in Evaluate & Angle component?

Could somebody explain why this angle doesn’t match with what I’m measuring in Rhino?


181217 Angle wrong.gh (10.9 KB)

I’m not certain but I suspect your evaluation tool is dependent on the direction of the curve so for two parallel lines drawn in opposite directions it will measure 180 degrees.
Does this make sense?


Use [Vector Display] component to “see” what and how are your vectors (green in the pic ^ )
To get 27° just [Reverse] one of the 2 vectors.
As said by @Dancergraham , [Angle] component, if no plane “P” is provided, will find the smallest angle between 2 vectors; the angle will always be smaller than 180° (or pi).
To get 332°, in addition to reversing one of the vector, you have to use the [XY plane] on the “P” input of the [Angle] component and use the correct order of “A” and “B” vectors (angle is measured counter-clockwise).

A last note
Reparametrizing your curve means 0=start 1=end … you evaluated the exact same point, but there are different tangents… just a lucky situation, but you cannot measure other angles in your polyline in that same way.

1 Like

Good spot. This is really quite worrying as i thought the angles out of the Evaluate component were the junction angles and have even used this logic in codes though thankfully not as an output.

Hmm Ok, so it seems on a closed curve with all the interior angles can be calculated if you -180 from all the numbers but in your case this is still not exactly true as it does not give angles larger than 180 so how you know if it should be the larger number is still only visual.

Even so this additional step of adding 180-x feels like it should be part of the evaluate angle component, but at the same time may break some peoples codes unless the old one is noted as old and the new one explained so people don’t just replace it when they get a script with old component labels.

1 Like

Aha, that makes sense, thanks! So basically I’d just have to reverse the vector from the endpoint.

Yes, that’s actually the purpose I’m trying to achieve. I’m trying to check if the startpoint and endpoint are from colinear lines. And if not I need to check which angle there is between them.