Curve perpendicular frame orientation

Attached image shows perpendicular frames along the non-planar curve with aligned options set to false. I have two questions regarding curve perpendicular frames.

  1. I understand curve perpendicular frame have its Z-Axis vector aligned with tangent vector of curve but I was wondering how its X and Y axis are being determined.

  2. When the ‘aligned’ option is off, its continuity is not total random but instead they keep their continuity within the segmented domains of curve that seems to be random in both size and count. Exactly what is going on?

Hi,

Yes, the plane normal vector corresponds to the tangent at the current parameter of the curve. To understand the rest, you should know that perpendicular curve frames are also referred to by zero-twist frames.

Two algorithms are usually implemented to make this work.
The first one calculates an indefinite integral of the curve’s torsion to get the total rotation of its Frenet frame around the tangent while moving from the curve start point to any other point. However, it is not possible to correctly calculate the Frenet frame of the curve at a point where it has zero curvature, and that’s where the second algorithm comes into play.
It takes the normal direction at the start point and “tracks” it along the curve, by projecting the previous normal direction on the plane that is perpendicular to curve tangent at the next curve point/parameter. The frame is then calculated by quaternion linear interpolation or something, and is supposed to work with whatever curve, especially straight sections.

I guess this should answer both your questions. Nothing is probably random! :wink:

1 Like

Perhaps a more practical question is what can I do about it?

What has worked for me in most cases is the Align Plane component (‘Vector | Plane | Align Plane’) using the unit Z vector on the ‘D’ (Direction) input.

The white lines (Y axis of each pFrame) are all horizontal.

2 Likes

Is there any way to ‘align’ the perp frames of the curve itself?

By that I mean, can we remove the twist of an existing curve or even modify it?