HomeOperatorsLine/Tanto,C,C

Line/Tanto,C,C

Common Tangent to Two Circles

Creates a line tangent to two circles simultaneously. Up to four tangent lines exist between two circles — external and internal. A direction selector specifies which tangent line to create.

What It Does

Between two non-overlapping circles, up to four common tangent lines exist:

  • 2 external tangents — run alongside both circles without crossing between them
  • 2 internal tangents — cross between the circles

The Line/Tanto,C,C operator computes all valid tangent lines analytically and creates the one specified by the direction selector.

Product Tier: The created line is a persistent product entity. It is tracked by the dependency system and can be used as input to subsequent operators.

Syntax

Line/XLarge|XSmall|YLarge|YSmall, Tanto, C1, Tanto, C2
ParameterDescriptionRequired
SelectorXLarge, XSmall, YLarge, or YSmall✓ Yes
C1First circle reference✓ Yes
C2Second circle reference✓ Yes

Quick Input Panel

C: [first circle reference] C2: [second circle reference] Dir: ○ XL ○ XS ● YL ○ YS

Direction Selector

For two horizontally arranged circles (same Y centre):

SelectorResultTangent Type
YLargeUpper external tangentExternal
YSmallLower external tangentExternal
XLargeRight-crossing internal tangentInternal
XSmallLeft-crossing internal tangentInternal
Important: The selector axis depends on the arrangement of the circles. For vertically arranged circles, use XLarge/XSmall for external tangents and YLarge/YSmall for internal tangents. Always use the selector on the axis where the solutions differ.

Worked Examples

Example 1 — External Tangents (Equal Circles)

Setup: C0 = Centre (0, 0), Radius 15 C1 = Centre (80, 0), Radius 15 Line/YLarge, Tanto, C0, Tanto, C1 → L0: upper external tangent (Y = +15) Tangent to C0 at (0, 15) Tangent to C1 at (80, 15) Line/YSmall, Tanto, C0, Tanto, C1 → L1: lower external tangent (Y = -15) Tangent to C0 at (0, -15) Tangent to C1 at (80, -15)

Example 2 — Internal Tangents (Equal Circles)

Setup: C0 = Centre (0, 0), Radius 15 C1 = Centre (80, 0), Radius 15 Line/XLarge, Tanto, C0, Tanto, C1 → L2: right-crossing internal tangent Crosses between circles at X=40 Line/XSmall, Tanto, C0, Tanto, C1 → L3: left-crossing internal tangent Crosses between circles at X=40

Example 3 — External Tangents (Different Radii)

Setup: C0 = Centre (0, 0), Radius 20 C1 = Centre (100, 0), Radius 10 Line/YLarge, Tanto, C0, Tanto, C1 → L0: upper external tangent Tangent point on C0: computed analytically Tangent point on C1: computed analytically Line is not horizontal (different radii)

Analytic Rule

External tangents: Offset both circles outward by R on the same side. The intersection of the two offset circles' centres gives the external centre of similitude. Tangent lines pass through this point. Internal tangents: Offset circles outward on opposite sides. The intersection gives the internal centre of similitude. Tangent lines pass through this point. Tangency condition: dist(circle centre, tangent line) = circle radius exactly. Result: All tangent points and line equations are exact analytic values. No iteration.

FAQ

What if the circles overlap?

Overlapping circles have no internal tangents (the circles intersect). External tangents still exist if the circles are not concentric. XyzPilot returns an error for internal tangents when circles overlap.

What if one circle is inside the other?

If one circle is entirely inside the other, no common tangents exist. XyzPilot returns an error.

How do I create a tangent line from a point to a circle?

Use Line/P,Tanto,C — the tangent from point to circle operator.

How do I create a line tangent to one circle at a given angle?

Use Line/C,Atangl — the tangent to circle at angle operator.