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.

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.