[Bf-committers] Curve normal calculation

Ben Batt benbatt at gmail.com
Thu May 24 19:29:12 CEST 2007

Hi all,
I'm currently working on fixing curve normal calculation in Blender
(to eliminate the curve twisting problem) using the torsion minimizing
method outlined in:
(basically you choose a starting normal and then iterate along the
curve in small steps, rotating the normal by the rotation from the old
tangent to the new tangent at each step). I'm fairly happy with the
results so far:

This works reasonably well, but the issue of choosing a starting
normal remains. The current method I'm using is just to choose a
normal that is perpendicular to the tangent at the start of the curve,
and as close to the positive Z axis ("up") as possible. If the
starting tangent is vertical, the normal is set to be the positive X
axis. This is not really an optimal solution, so I'd like to find a
better one.

One possibility I thought of was to give each curve a preferred normal
specified as a vector, and allow the user to rotate this vector
arbitrarily. The starting normal would then be the vector closest to
the preferred normal while still being perpendicular to the starting

Does anybody have any suggestions? Comments? Links to papers that
discuss this problem?



More information about the Bf-committers mailing list