# Geo Nodes "Even thickness" for curves

Sorry to dig this up again but had a relevant realization that adds to the geometric intuition and has significant optimization potential:

The angle was a red-herring… I could have saved myself a lot of effort by just outputting the dot-product and not doing the acrcosine at the end of my poly-curve sampler. acrcosine->cosine is a redundant step.

So, the revised scaling factor for the profile, along the bisect `B`, at some point `P` on the underlying “sweeping” curve is then just `1/sqrt((1-D)/2)` where `D` is the poly-tangent dot-product (if you don’t invert the “prior” poly-tangent (`Tp`)).

Or, `1/sqrt((1+D)/2)` if you do invert the “prior” poly-tangent.

Geometrically it makes more intuitive sense as you’re scaling by the inverse how much the current tangent (`T`) “lines-up” with the prior poly-tangent(`Tp`). Square root is expected because you’ve got 2D Pythagorean stuff going on since a 3D dot-product actually happens on a 2D plane (Imagine the 2 vectors at the origin to visualize this plane. (Technically this plane is described by the cross product, but that topic is tangential to this (ha-ha, pun ))).

Anyway, hope that’s the last of it.

3 Likes