Circle
A circle in the plane, oriented by which side counts as its interior — the 2D circle.
The grade-3 blade cx·e423 + cy·e431 + cz·e412 + cw·e321, the wedge of three round points. The constructor unitizes by the round weight |cw|, preserving its sign — the orientation: cw = −1 is the classic circle whose interior is the bounded disk, cw = +1 the inside-out circle whose interior is everything outside. Center and radius are first-class views (center, radius); a negative radius2 makes the circle imaginary — no real points, first-class data, never an error (see isImaginary). Orientation is data: negating all four components keeps the point set and swaps the interior, and equals distinguishes the two (canonical for unoriented equivalence). A round weight that rounds to zero is not a circle but the line (cx, cy, cz) — the constructor throws rather than build one. Components are stored raw at full Double precision; equals/hashCode compare rounded at the SCALE quantum.
Constructors
Properties
The center of the circle, carrying its size — a RoundPoint.
Whether this circle is imaginary — a negative squared radius, no real points.
Whether this circle is inside-out — its interior is everything outside the bounded disk.
Functions
Circle antiproject Dipole => Circle
Returns the circle through the dipole's endpoints incident with this circle's pairing point on their perpendicular bisector.
Circle antiproject FlatPoint => Line
Returns the line through the point running the circle's way at the point's bearing — perpendicular to the radial through it.
Circle antiproject RoundPoint => Line
Returns the line through the point running the circle's way at the point's bearing — perpendicular to the radial through it.
Circle contains Circle => Boolean
Returns whether the other circle's region lies within the region this circle bounds, boundaries included — internal tangency and identical circles count.
Circle contains FlatPoint => Boolean
Returns whether the point lies in the circle's interior or on the circle.
Circle contains RoundPoint => Boolean
Returns whether the point lies in the circle's interior or on the circle.
Circle contract Dipole => RoundPoint
Returns the round point pairing the circle against the dipole, on the endpoints' perpendicular bisector.
Circle contract FlatPoint => RoundPoint
Returns the circle's tangent direction at the point's bearing, as a point at infinity.
Circle contract RoundPoint => Dipole
Returns the dipole where the circle crosses the radical axis between it and the point.
Circle meet Circle => Dipole
Returns the dipole of the two points where the circles cross — imaginary when they don't touch.
Circle meet Line => Dipole
Returns the dipole of the two points where the circle crosses the line — imaginary when they miss.
Returns the components rounded at the SCALE quantum — the debug-output convention of every primitive.