liveBook · Manning

Biarc

As explained in Geometry for Programmers

A biarc is a curve segment composed of two circular arcs joined with continuous position and tangent direction.

A biarc joins two points with two circular arcs, following a prescribed tangent vector at each endpoint. The arcs meet with continuous position and tangent direction, producing a smooth transition. section 5.3.1

Constructing a biarc turns the geometric requirements into a solvable system:

  • Represent the two arc centers and radii as six unknowns. section 5.3.1
  • Place each center along the endpoint’s rotated, normalized tangent direction, scaled by its radius. section 5.3.1
  • Require the circle centers’ distance to equal the sum of the radii, so the arcs touch smoothly. section 5.3.1
  • Use symbolic solving to obtain the centers and radii, while avoiding unnecessary quadratic constraints that can multiply solutions. section 5.3.1

Choosing biarcs in a composite curve

Combine biarcs with arc-and-segment pieces: use the arc-and-segment option when endpoint tangents are less than 90 degrees apart, and use the biarc otherwise. The resulting pieces can form complex curves and support equal parameter intervals that correspond to equal travel, making constant-speed motion straightforward. section 5.3.3

How Geometry for Programmers covers it

How deep it goes
Derives center and radius equations, demonstrates symbolic solving, and stops short of treating biarcs as the usual practical spline choice.
Examples
Uses symbolic equations, geometric center diagrams, composite arc-and-segment curves, and equal-parameter subdivisions.
What it assumes
Assumes points, tangent vectors, circles, radii, orthogonality, and 90-degree vector rotation, while deriving the construction equations.
What you can do after
Builds a biarc from scratch by solving for two circle centers and radii from endpoint and tangent constraints.
How it connects
Connects circular arcs, tangent vectors, SymPy, polynomial splines, rational splines, and parametric curve traversal.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Geometry for Programmers. The section links point to the parts of the book it draws on.