# Nakafa Framework: LLM URL: /en/subject/high-school/11/mathematics/circle/external-tangent-line-and-internal-tangent-line Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/high-school/11/mathematics/circle/external-tangent-line-and-internal-tangent-line/en.mdx Output docs content for large language models. --- import { getColor } from "@repo/design-system/lib/color"; import { LineEquation } from "@repo/design-system/components/contents/line-equation"; export const metadata = { title: "External Tangent Line and Internal Tangent Line", description: "Master external and internal tangent lines between circles. Learn formulas, calculations, and solve complex problems with comprehensive examples.", authors: [{ name: "Nabil Akbarazzima Fatih" }], date: "05/18/2025", subject: "Circle", }; ## Definition of Common Tangent Lines A common tangent line is a line that touches two circles simultaneously. There are two types of common tangent lines: 1. **External Common Tangent Line**: A line that touches both circles from the same side 2. **Internal Common Tangent Line**: A line that touches both circles from opposite sides ## Concept of External Common Tangent Line An external common tangent line is a line that touches both circles and does not intersect the line connecting the two circle centers. { const angle = (i * Math.PI) / 180; return { x: -4 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 4 + 3 * Math.cos(angle), y: 3 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: [ { x: -4, y: 0, z: 0 }, { x: 4, y: 0, z: 0 }, ], color: getColor("ORANGE"), showPoints: true, labels: [ { text: "A", at: 0, offset: [-0.5, -0.5, 0] }, { text: "B", at: 1, offset: [0.5, -0.5, 0] }, ], }, { points: (() => { const O1 = { x: -4, y: 0 }; const O2 = { x: 4, y: 0 }; const r1 = 2; const r2 = 3; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); // Calculate the angle for external tangent const sin_alpha = (r2 - r1) / d; const cos_alpha = Math.sqrt(1 - sin_alpha * sin_alpha); // Direction from O1 to O2 const dx = O2.x - O1.x; const dy = O2.y - O1.y; // Normalize direction const ux = dx / d; const uy = dy / d; // Perpendicular direction (rotated 90 degrees) const vx = -uy; const vy = ux; // First tangent line (upper) // Tangent point on first circle const T1x = O1.x + r1 * (sin_alpha * ux + cos_alpha * vx); const T1y = O1.y + r1 * (sin_alpha * uy + cos_alpha * vy); // Tangent point on second circle const T2x = O2.x + r2 * (sin_alpha * ux + cos_alpha * vx); const T2y = O2.y + r2 * (sin_alpha * uy + cos_alpha * vy); // Extend the line const tdx = T2x - T1x; const tdy = T2y - T1y; const tlen = Math.sqrt(tdx * tdx + tdy * tdy); const tux = tdx / tlen; const tuy = tdy / tlen; return [ { x: T1x - 4 * tux, y: T1y - 4 * tuy, z: 0 }, { x: T2x + 4 * tux, y: T2y + 4 * tuy, z: 0 }, ]; })(), color: getColor("CYAN"), showPoints: false, labels: [{ text: "g₁", at: 1, offset: [0, 0.5, 0] }], }, { points: (() => { const O1 = { x: -4, y: 0 }; const O2 = { x: 4, y: 0 }; const r1 = 2; const r2 = 3; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); // Calculate the angle for external tangent const sin_alpha = (r2 - r1) / d; const cos_alpha = Math.sqrt(1 - sin_alpha * sin_alpha); // Direction from O1 to O2 const dx = O2.x - O1.x; const dy = O2.y - O1.y; // Normalize direction const ux = dx / d; const uy = dy / d; // Perpendicular direction (rotated 90 degrees) const vx = -uy; const vy = ux; // Second tangent line (lower) // Tangent point on first circle const T1x = O1.x + r1 * (sin_alpha * ux - cos_alpha * vx); const T1y = O1.y + r1 * (sin_alpha * uy - cos_alpha * vy); // Tangent point on second circle const T2x = O2.x + r2 * (sin_alpha * ux - cos_alpha * vx); const T2y = O2.y + r2 * (sin_alpha * uy - cos_alpha * vy); // Extend the line const tdx = T2x - T1x; const tdy = T2y - T1y; const tlen = Math.sqrt(tdx * tdx + tdy * tdy); const tux = tdx / tlen; const tuy = tdy / tlen; return [ { x: T1x - 4 * tux, y: T1y - 4 * tuy, z: 0 }, { x: T2x + 4 * tux, y: T2y + 4 * tuy, z: 0 }, ]; })(), color: getColor("TEAL"), showPoints: false, labels: [{ text: "g₂", at: 1, offset: [0, -0.5, 0] }], }, ]} cameraPosition={[0, 0, 15]} showZAxis={false} /> ### Formula for External Common Tangent Line Length For two circles with: - First circle center: - Second circle center: - First circle radius: - Second circle radius: - Distance between centers: Length of external common tangent line: ### Finding the Length of External Common Tangent Line Two circles are centered at with radius 1.5 and with radius 2.5. Find the length of the external common tangent line! Circles with and{" "} } description="Visualization of external common tangent line." data={[ { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: -3 + 1.5 * Math.cos(angle), y: 1.5 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 3 + 2.5 * Math.cos(angle), y: 2.5 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: [ { x: -3, y: 0, z: 0 }, { x: 3, y: 0, z: 0 }, ], color: getColor("ORANGE"), showPoints: true, labels: [ { text: "A", at: 0, offset: [-0.5, -0.5, 0] }, { text: "B", at: 1, offset: [0.5, -0.5, 0] }, ], }, { points: (() => { const O1 = { x: -3, y: 0 }; const O2 = { x: 3, y: 0 }; const r1 = 1.5; const r2 = 2.5; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); // Calculate the angle for external tangent const sin_alpha = (r2 - r1) / d; const cos_alpha = Math.sqrt(1 - sin_alpha * sin_alpha); // Direction from O1 to O2 const dx = O2.x - O1.x; const dy = O2.y - O1.y; // Normalize direction const ux = dx / d; const uy = dy / d; // Perpendicular direction (rotated 90 degrees) const vx = -uy; const vy = ux; // First tangent line (upper) // Tangent point on first circle const T1x = O1.x + r1 * (sin_alpha * ux + cos_alpha * vx); const T1y = O1.y + r1 * (sin_alpha * uy + cos_alpha * vy); // Tangent point on second circle const T2x = O2.x + r2 * (sin_alpha * ux + cos_alpha * vx); const T2y = O2.y + r2 * (sin_alpha * uy + cos_alpha * vy); return [ // hard code little bit to make it look better { x: T1x - 0.25, y: T1y, z: 0 }, { x: T2x - 0.45, y: T2y, z: 0 }, ]; })(), color: getColor("CYAN"), showPoints: true, labels: [ { text: "P", at: 0, offset: [-0.5, 0.5, 0] }, { text: "Q", at: 1, offset: [0.5, 0.5, 0] }, ], }, { points: (() => { const O1 = { x: -3, y: 0 }; const O2 = { x: 3, y: 0 }; const r1 = 1.5; const r2 = 2.5; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); // Calculate the angle for external tangent const sin_alpha = (r2 - r1) / d; const cos_alpha = Math.sqrt(1 - sin_alpha * sin_alpha); // Direction from O1 to O2 const dx = O2.x - O1.x; const dy = O2.y - O1.y; // Normalize direction const ux = dx / d; const uy = dy / d; // Perpendicular direction (rotated 90 degrees) const vx = -uy; const vy = ux; // Second tangent line (lower) // Tangent point on first circle const T1x = O1.x + r1 * (sin_alpha * ux - cos_alpha * vx); const T1y = O1.y + r1 * (sin_alpha * uy - cos_alpha * vy); // Tangent point on second circle const T2x = O2.x + r2 * (sin_alpha * ux - cos_alpha * vx); const T2y = O2.y + r2 * (sin_alpha * uy - cos_alpha * vy); return [ // hard code little bit to make it look better { x: T1x - 0.25, y: T1y, z: 0 }, { x: T2x - 0.45, y: T2y, z: 0 }, ]; })(), color: getColor("TEAL"), showPoints: true, labels: [ { text: "R", at: 0, offset: [-0.5, -0.5, 0] }, { text: "S", at: 1, offset: [0.5, -0.5, 0] }, ], }, ]} cameraPosition={[0, 0, 12]} showZAxis={false} /> **Solution:**
Therefore, the length of the external common tangent line is units. ## Concept of Internal Common Tangent Line An internal common tangent line is a line that touches both circles from opposite sides and intersects the line connecting the two circle centers. { const angle = (i * Math.PI) / 180; return { x: -4 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 4 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: [ { x: -4, y: 0, z: 0 }, { x: 4, y: 0, z: 0 }, ], color: getColor("ORANGE"), showPoints: true, labels: [ { text: "A", at: 0, offset: [-0.5, -0.5, 0] }, { text: "B", at: 1, offset: [0.5, -0.5, 0] }, ], }, { points: (() => { const O1 = { x: -4, y: 0 }; const O2 = { x: 4, y: 0 }; const r1 = 2; const r2 = 2; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta + Math.PI / 2 - alpha); const T1y = O1.y + r1 * Math.sin(theta + Math.PI / 2 - alpha); const T2x = O2.x + r2 * Math.cos(theta + Math.PI / 2 - alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta + Math.PI / 2 - alpha + Math.PI); const dx = T2x - T1x; const dy = T2y - T1y; const len = Math.sqrt(dx * dx + dy * dy); const ux = dx / len; const uy = dy / len; return [ { x: T1x - 3 * ux, y: T1y - 3 * uy, z: 0 }, { x: T2x + 3 * ux, y: T2y + 3 * uy, z: 0 }, ]; })(), color: getColor("PINK"), showPoints: false, labels: [{ text: "h₁", at: 0, offset: [-1, 0.5, 0] }], }, { points: (() => { const O1 = { x: -4, y: 0 }; const O2 = { x: 4, y: 0 }; const r1 = 2; const r2 = 2; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta - Math.PI / 2 + alpha); const T1y = O1.y + r1 * Math.sin(theta - Math.PI / 2 + alpha); const T2x = O2.x + r2 * Math.cos(theta - Math.PI / 2 + alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta - Math.PI / 2 + alpha + Math.PI); const dx = T2x - T1x; const dy = T2y - T1y; const len = Math.sqrt(dx * dx + dy * dy); const ux = dx / len; const uy = dy / len; return [ { x: T1x - 3 * ux, y: T1y - 3 * uy, z: 0 }, { x: T2x + 3 * ux, y: T2y + 3 * uy, z: 0 }, ]; })(), color: getColor("AMBER"), showPoints: false, labels: [{ text: "h₂", at: 0, offset: [-1, -0.5, 0] }], }, ]} cameraPosition={[0, 0, 15]} showZAxis={false} /> ### Formula for Internal Common Tangent Line Length Length of internal common tangent line: **Condition:** Internal common tangent lines exist only if (the two circles do not intersect). ### Finding the Length of Internal Common Tangent Line Two circles are centered at with radius 2 and with radius 3. Find the length of the internal common tangent line! Circles with and{" "} } description="Visualization of internal common tangent line." data={[ { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: -5 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 5 + 3 * Math.cos(angle), y: 3 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: [ { x: -5, y: 0, z: 0 }, { x: 5, y: 0, z: 0 }, ], color: getColor("ORANGE"), showPoints: true, labels: [ { text: "P", at: 0, offset: [-0.5, -0.5, 0] }, { text: "Q", at: 1, offset: [0.5, -0.5, 0] }, ], }, { points: (() => { const O1 = { x: -5, y: 0 }; const O2 = { x: 5, y: 0 }; const r1 = 2; const r2 = 3; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta + Math.PI / 2 - alpha); const T1y = O1.y + r1 * Math.sin(theta + Math.PI / 2 - alpha); const T2x = O2.x + r2 * Math.cos(theta + Math.PI / 2 - alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta + Math.PI / 2 - alpha + Math.PI); return [ { x: T1x, y: T1y, z: 0 }, { x: T2x, y: T2y, z: 0 }, ]; })(), color: getColor("PINK"), showPoints: true, labels: [ { text: "E", at: 0, offset: [-0.5, 0.5, 0] }, { text: "F", at: 1, offset: [0.5, -0.5, 0] }, ], }, { points: (() => { const O1 = { x: -5, y: 0 }; const O2 = { x: 5, y: 0 }; const r1 = 2; const r2 = 3; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta - Math.PI / 2 + alpha); const T1y = O1.y + r1 * Math.sin(theta - Math.PI / 2 + alpha); const T2x = O2.x + r2 * Math.cos(theta - Math.PI / 2 + alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta - Math.PI / 2 + alpha + Math.PI); return [ { x: T1x, y: T1y, z: 0 }, { x: T2x, y: T2y, z: 0 }, ]; })(), color: getColor("AMBER"), showPoints: true, labels: [ { text: "G", at: 0, offset: [-0.5, -0.5, 0] }, { text: "H", at: 1, offset: [0.5, 0.5, 0] }, ], }, ]} cameraPosition={[0, 0, 18]} showZAxis={false} /> **Solution:** First, check if internal common tangent lines exist:
Since the condition is satisfied, then:
Therefore, the length of the internal common tangent line is units. ## Circles with Equal Radii When two circles have equal radii (), there are special properties: ### External Common Tangent Line { const angle = (i * Math.PI) / 180; return { x: -3 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 3 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: [ { x: -3, y: 0, z: 0 }, { x: 3, y: 0, z: 0 }, ], color: getColor("ORANGE"), showPoints: true, labels: [ { text: "O₁", at: 0, offset: [-0.5, -0.5, 0] }, { text: "O₂", at: 1, offset: [0.5, -0.5, 0] }, ], }, { points: [ { x: -3, y: 2, z: 0 }, { x: 3, y: 2, z: 0 }, ], color: getColor("CYAN"), showPoints: false, smooth: false, }, { points: [ { x: -3, y: -2, z: 0 }, { x: 3, y: -2, z: 0 }, ], color: getColor("TEAL"), showPoints: false, smooth: false, }, ]} cameraPosition={[0, 0, 12]} showZAxis={false} /> For : - External common tangent lines are **parallel** to the line connecting the two centers - Length of external common tangent line = (distance between centers) ## Cases of Various Circle Positions Determine the length of external and internal common tangent lines for the following circles: ### Distant Circles The first circle is centered at with radius 1, the second circle is centered at with radius 2. { const angle = (i * Math.PI) / 180; return { x: -6 + 1 * Math.cos(angle), y: 1 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 6 + 2 * Math.cos(angle), y: 2 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: (() => { const O1 = { x: -6, y: 0 }; const O2 = { x: 6, y: 0 }; const r1 = 1; const r2 = 2; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); // Calculate the angle for external tangent const sin_alpha = (r2 - r1) / d; const cos_alpha = Math.sqrt(1 - sin_alpha * sin_alpha); // Direction from O1 to O2 const dx = O2.x - O1.x; const dy = O2.y - O1.y; // Normalize direction const ux = dx / d; const uy = dy / d; // Perpendicular direction (rotated 90 degrees) const vx = -uy; const vy = ux; // First tangent line (upper) // Tangent point on first circle const T1x = O1.x + r1 * (sin_alpha * ux + cos_alpha * vx); const T1y = O1.y + r1 * (sin_alpha * uy + cos_alpha * vy); // Tangent point on second circle const T2x = O2.x + r2 * (sin_alpha * ux + cos_alpha * vx); const T2y = O2.y + r2 * (sin_alpha * uy + cos_alpha * vy); const tdx = T2x - T1x; const tdy = T2y - T1y; const tlen = Math.sqrt(tdx * tdx + tdy * tdy); const tux = tdx / tlen; const tuy = tdy / tlen; return [ { x: T1x - 2 * tux, y: T1y - 2 * tuy, z: 0 }, { x: T2x + 2 * tux, y: T2y + 2 * tuy, z: 0 }, ]; })(), color: getColor("CYAN"), showPoints: false, }, { points: (() => { const O1 = { x: -6, y: 0 }; const O2 = { x: 6, y: 0 }; const r1 = 1; const r2 = 2; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); // Calculate the angle for external tangent const sin_alpha = (r2 - r1) / d; const cos_alpha = Math.sqrt(1 - sin_alpha * sin_alpha); // Direction from O1 to O2 const dx = O2.x - O1.x; const dy = O2.y - O1.y; // Normalize direction const ux = dx / d; const uy = dy / d; // Perpendicular direction (rotated 90 degrees) const vx = -uy; const vy = ux; // Second tangent line (lower) // Tangent point on first circle const T1x = O1.x + r1 * (sin_alpha * ux - cos_alpha * vx); const T1y = O1.y + r1 * (sin_alpha * uy - cos_alpha * vy); // Tangent point on second circle const T2x = O2.x + r2 * (sin_alpha * ux - cos_alpha * vx); const T2y = O2.y + r2 * (sin_alpha * uy - cos_alpha * vy); const tdx = T2x - T1x; const tdy = T2y - T1y; const tlen = Math.sqrt(tdx * tdx + tdy * tdy); const tux = tdx / tlen; const tuy = tdy / tlen; return [ { x: T1x - 2 * tux, y: T1y - 2 * tuy, z: 0 }, { x: T2x + 2 * tux, y: T2y + 2 * tuy, z: 0 }, ]; })(), color: getColor("TEAL"), showPoints: false, }, { points: (() => { const O1 = { x: -6, y: 0 }; const O2 = { x: 6, y: 0 }; const r1 = 1; const r2 = 2; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta + Math.PI / 2 - alpha); const T1y = O1.y + r1 * Math.sin(theta + Math.PI / 2 - alpha); const T2x = O2.x + r2 * Math.cos(theta + Math.PI / 2 - alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta + Math.PI / 2 - alpha + Math.PI); const dx = T2x - T1x; const dy = T2y - T1y; const len = Math.sqrt(dx * dx + dy * dy); const ux = dx / len; const uy = dy / len; return [ { x: T1x - 1 * ux, y: T1y - 1 * uy, z: 0 }, { x: T2x + 1 * ux, y: T2y + 1 * uy, z: 0 }, ]; })(), color: getColor("PINK"), showPoints: false, }, { points: (() => { const O1 = { x: -6, y: 0 }; const O2 = { x: 6, y: 0 }; const r1 = 1; const r2 = 2; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta - Math.PI / 2 + alpha); const T1y = O1.y + r1 * Math.sin(theta - Math.PI / 2 + alpha); const T2x = O2.x + r2 * Math.cos(theta - Math.PI / 2 + alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta - Math.PI / 2 + alpha + Math.PI); const dx = T2x - T1x; const dy = T2y - T1y; const len = Math.sqrt(dx * dx + dy * dy); const ux = dx / len; const uy = dy / len; return [ { x: T1x - 1 * ux, y: T1y - 1 * uy, z: 0 }, { x: T2x + 1 * ux, y: T2y + 1 * uy, z: 0 }, ]; })(), color: getColor("AMBER"), showPoints: false, }, ]} cameraPosition={[0, 0, 18]} showZAxis={false} /> **Solution:**
### Close Circles The first circle is centered at with radius 1.5, the second circle is centered at with radius 1.5. { const angle = (i * Math.PI) / 180; return { x: -2 + 1.5 * Math.cos(angle), y: 1.5 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: Array.from({ length: 361 }, (_, i) => { const angle = (i * Math.PI) / 180; return { x: 2 + 1.5 * Math.cos(angle), y: 1.5 * Math.sin(angle), z: 0, }; }), color: getColor("PURPLE"), showPoints: false, }, { points: [ { x: -5, y: 1.5, z: 0 }, { x: 5, y: 1.5, z: 0 }, ], color: getColor("CYAN"), showPoints: false, smooth: false, }, { points: [ { x: -5, y: -1.5, z: 0 }, { x: 5, y: -1.5, z: 0 }, ], color: getColor("TEAL"), showPoints: false, smooth: false, }, { points: (() => { const O1 = { x: -2, y: 0 }; const O2 = { x: 2, y: 0 }; const r1 = 1.5; const r2 = 1.5; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta + Math.PI / 2 - alpha); const T1y = O1.y + r1 * Math.sin(theta + Math.PI / 2 - alpha); const T2x = O2.x + r2 * Math.cos(theta + Math.PI / 2 - alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta + Math.PI / 2 - alpha + Math.PI); const dx = T2x - T1x; const dy = T2y - T1y; const len = Math.sqrt(dx * dx + dy * dy); const ux = dx / len; const uy = dy / len; return [ { x: T1x - 2 * ux, y: T1y - 2 * uy, z: 0 }, { x: T2x + 2 * ux, y: T2y + 2 * uy, z: 0 }, ]; })(), color: getColor("PINK"), showPoints: false, }, { points: (() => { const O1 = { x: -2, y: 0 }; const O2 = { x: 2, y: 0 }; const r1 = 1.5; const r2 = 1.5; const d = Math.sqrt((O2.x - O1.x) ** 2 + (O2.y - O1.y) ** 2); const alpha = Math.asin((r1 + r2) / d); const theta = Math.atan2(O2.y - O1.y, O2.x - O1.x); const T1x = O1.x + r1 * Math.cos(theta - Math.PI / 2 + alpha); const T1y = O1.y + r1 * Math.sin(theta - Math.PI / 2 + alpha); const T2x = O2.x + r2 * Math.cos(theta - Math.PI / 2 + alpha + Math.PI); const T2y = O2.y + r2 * Math.sin(theta - Math.PI / 2 + alpha + Math.PI); const dx = T2x - T1x; const dy = T2y - T1y; const len = Math.sqrt(dx * dx + dy * dy); const ux = dx / len; const uy = dy / len; return [ { x: T1x - 2 * ux, y: T1y - 2 * uy, z: 0 }, { x: T2x + 2 * ux, y: T2y + 2 * uy, z: 0 }, ]; })(), color: getColor("AMBER"), showPoints: false, }, ]} cameraPosition={[0, 0, 10]} showZAxis={false} /> **Solution:**
## Practice Problems 1. Two circles are centered at with radius 2 and with radius 3. Determine: - Length of external common tangent line - Length of internal common tangent line 2. The first circle has center with radius 4, the second circle has center with radius 2. Calculate the length of both types of common tangent lines! 3. Two identical circles each have radius 3 cm. If the length of the internal common tangent line is 8 cm, determine the distance between the two circle centers! 4. Circle is centered at with radius , and circle is centered at with radius . If the length of the external common tangent line is , determine the value of ! 5. Determine the conditions for two circles to have: - Exactly two common tangent lines - Exactly three common tangent lines - Exactly four common tangent lines ### Answer Key 1. **Calculating common tangent line lengths**
2. **Circles with different centers**
3. **Finding center distance from internal tangent length** Given: ,
4. **Finding the value of r** Given: , , ,
5. **Conditions for number of common tangent lines** - **Exactly 2 tangent lines**: The two circles intersect at two points - **Exactly 3 tangent lines**: The two circles are tangent (internally or externally) - **Exactly 4 tangent lines**: The two circles are separate (do not intersect)