Geo Nodes "Even thickness" for curves

Thanks for your thanks.

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.
image

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 :no_mouth:))).

Anyway, hope that’s the last of it.

3 Likes