Circular approximation of polygon (or its part)

  1. You can obtain curvature radius center for any 2 line segments

    curve radius

    1. find the lines midpoints
    2. cast perpendicular lines from each (red lines)
    3. find the intersection (it is the center of the curvature)

    In 3D use plane of the object (3 lines not 2). The radius is just distance between center and the lines joint point (blue line). If radius is too big then handle both lines as single line (no intersection or too far intersection)

  2. compute all segments like in #1

  3. join arcs with the same radius and center to single arc if joined

  4. handle the changing curvature

    if the arc is changing the center or radius do it like in this picture

    elliptic arc

    first segment does not have previous line so use the next instead that cause the irregularity at start arc …

That should cover all cases hope my hand-paint-drawings are making sense …

Leave a Comment