Bài 21. Đường tròn trong mặt phẳng tọa độ
Bánh răng cơ khí, vòng xuyến giao thông thông minh, bán kính quét của tháp radar sân bay hay quỹ đạo chuyển động của vệ tinh địa tĩnh quanh Trái Đất đều mang dạng hình học hoàn hảo nhất của tự nhiên: Đường tròn. Trong mặt phẳng tọa độ , làm thế nào để số hóa đường tròn thành phương trình đại số và xác định các đường tiếp tuyến tiếp xúc với nó? Bài học này sẽ cung cấp trọn bộ công cụ toán học giải quyết bài toán đó.
1. Sơ đồ tư duy (Mindmap) Đường tròn trong Oxy
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin: 24px 0;">
<div style="background: #f8fafc; border-left: 4px solid #3b82f6; border-radius: 8px; padding: 16px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);">
<h4 style="margin: 0 0 8px 0; color: #1e40af;">1. Dạng chính tắc</h4>
<p style="margin: 0; font-size: 0.9em; color: #475569;">
• Tâm $I(a; b)$, bán kính $R > 0$:<br>
$$(x - a)^2 + (y - b)^2 = R^2$$
• Đặc biệt tâm tại gốc $O(0; 0)$: $x^2 + y^2 = R^2$.
</p>
</div>
<div style="background: #f0fdf4; border-left: 4px solid #16a34a; border-radius: 8px; padding: 16px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);">
<h4 style="margin: 0 0 8px 0; color: #166534;">2. Dạng khai triển</h4>
<p style="margin: 0; font-size: 0.9em; color: #475569;">
• $x^2 + y^2 - 2ax - 2by + c = 0$.<br>
• Điều kiện là đường tròn: <strong>$a^2 + b^2 - c > 0$</strong>.<br>
• Khi đó tâm $I(a; b)$ và bán kính $R = \sqrt{a^2 + b^2 - c}$.
</p>
</div>
<div style="background: #fffbeb; border-left: 4px solid #f59e0b; border-radius: 8px; padding: 16px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);">
<h4 style="margin: 0 0 8px 0; color: #92400e;">3. Tiếp tuyến tại $M_0 \in (C)$</h4>
<p style="margin: 0; font-size: 0.9em; color: #475569;">
• Đi qua điểm tiếp xúc $M_0(x_0; y_0)$ và nhận $\vec{IM_0}$ làm VTPT:<br>
$$(x_0 - a)(x - x_0) + (y_0 - b)(y - y_0) = 0$$
</p>
</div>
<div style="background: #fdf2f8; border-left: 4px solid #ec4899; border-radius: 8px; padding: 16px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);">
<h4 style="margin: 0 0 8px 0; color: #9d174d;">4. Điều kiện tiếp xúc</h4>
<p style="margin: 0; font-size: 0.9em; color: #475569;">
• Đường thẳng $\Delta$ tiếp xúc với đường tròn $(C)$ khi và chỉ khi:<br>
$$d(I, \Delta) = R$$
• Áp dụng khi viết tiếp tuyến đi qua điểm ngoài hoặc song song/vuông góc.
</p>
</div>
</div>
2. Khởi động: 5 câu hỏi nhanh & Mẹo tìm tâm và bán kính
- Phương trình có tâm và bán kính bằng bao nhiêu?
Mẹo: Đổi dấu số trong ngoặc: ; . Bán kính . Vậy tâm . - Phương trình có tâm và bán kính bằng bao nhiêu?
Mẹo: Lấy hệ số của và chia cho : Tâm . Bán kính - Phương trình có phải là phương trình đường tròn không?
Đáp án: Không, vì . - Vị trí của điểm đối với đường tròn :
Đáp án: Thay nằm bên trong đường tròn. - Tiếp tuyến của đường tròn luôn vuông góc với bán kính tại điểm nào?
Đáp án: Tại tiếp điểm (điểm tiếp xúc).
3. Lý thuyết trọng tâm
3.1. Phương trình chính tắc của đường tròn
Ghi nhớĐường tròn có tâm và bán kính là tập hợp tất cả các điểm thỏa mãn . Bình phương hai vế khoảng cách , ta được phương trình chính tắc:
3.2. Phương trình tổng quát (dạng khai triển)
Ghi nhớKhai triển phương trình chính tắc:
với .
Điều kiện: Phương trình là phương trình của một đường tròn khi và chỉ khi:
Khi đó đường tròn có:
- Tâm:
- Bán kính:
3.3. Phương trình tiếp tuyến của đường tròn
Ghi nhớ
- Tiếp tuyến tại điểm thuộc đường tròn tâm : Tiếp tuyến đi qua và nhận vectơ làm VTPT:
- Tiếp tuyến đi qua điểm nằm ngoài đường tròn:
- Gọi là đường thẳng đi qua có VTPT (): .
- Sử dụng điều kiện tiếp xúc:Từ đó giải tìm tỉ số giữa và (luôn có 2 tiếp tuyến kẻ từ một điểm ngoài đường tròn).
4. Widget tương tác: Phòng Thí Nghiệm Đường Tròn & Tiếp Tuyến
Thay đổi tọa độ tâm và bán kính để quan sát đường tròn co giãn, cùng đường tiếp tuyến xoay quanh tiếp điểm :
<div style="background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 12px; padding: 20px; margin: 24px 0; font-family: system-ui, sans-serif;">
<div style="display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 16px;">
<h3 style="margin: 0; font-size: 1.15rem; color: #1e293b;">🎯 Thí Nghiệm Đường Tròn & Tiếp Tuyến Oxy</h3>
<span style="font-size: 0.85rem; background: #e0f2fe; color: #0369a1; padding: 4px 10px; border-radius: 999px; font-weight: 500;">Tương tác trực quan</span>
</div>
<div style="display: grid; grid-template-columns: 1fr 240px; gap: 16px;">
<div style="background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 8px; text-align: center;">
<svg data-interactive-done="true" id="circleSvg" viewBox="0 0 360 280" style="width: 100%; max-width: 400px; height: auto;">
<!-- Grid -->
<g stroke="#f1f5f9" stroke-width="1">
<line x1="20" y1="40" x2="340" y2="40" /><line x1="20" y1="90" x2="340" y2="90" />
<line x1="20" y1="140" x2="340" y2="140" /><line x1="20" y1="190" x2="340" y2="190" />
<line x1="20" y1="240" x2="340" y2="240" />
<line x1="60" y1="20" x2="60" y2="260" /><line x1="120" y1="20" x2="120" y2="260" />
<line x1="180" y1="20" x2="180" y2="260" /><line x1="240" y1="20" x2="240" y2="260" />
<line x1="300" y1="20" x2="300" y2="260" />
</g>
<!-- Axes -->
<line x1="10" y1="140" x2="350" y2="140" stroke="#94a3b8" stroke-width="1.8" />
<line x1="180" y1="270" x2="180" y2="10" stroke="#94a3b8" stroke-width="1.8" />
<!-- Circle -->
<circle id="dynCircle" cx="180" cy="140" r="60" fill="#eff6ff" fill-opacity="0.5" stroke="#2563eb" stroke-width="2.5" />
<!-- Center I -->
<circle id="ptI" cx="180" cy="140" r="5" fill="#2563eb" />
<text id="lblI" x="188" y="135" font-size="11" fill="#2563eb" font-weight="bold">I</text>
<!-- Radius line -->
<line id="radLine" x1="180" y1="140" x2="225" y2="100" stroke="#d97706" stroke-width="1.8" stroke-dasharray="3,3" />
<!-- Tangent line -->
<line id="tanLine" x1="0" y1="0" x2="360" y2="280" stroke="#dc2626" stroke-width="2.2" />
<!-- Point M0 on circle -->
<circle id="ptM0" cx="225" cy="100" r="5" fill="#dc2626" />
<text id="lblM0" x="233" y="95" font-size="11" fill="#dc2626" font-weight="bold">M₀</text>
</svg>
</div>
<div style="background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px; font-size: 0.88rem;">
<div style="margin-bottom: 10px;">
<label style="display: block; font-weight: 600; color: #475569; margin-bottom: 4px;">Tâm $I(a; b)$:</label>
<div style="display: flex; gap: 8px;">
<input type="number" id="inIa" value="1" step="1" style="width: 50%; padding: 4px; border: 1px solid #cbd5e1; border-radius: 4px;" />
<input type="number" id="inIb" value="1" step="1" style="width: 50%; padding: 4px; border: 1px solid #cbd5e1; border-radius: 4px;" />
</div>
</div>
<div style="margin-bottom: 12px;">
<label style="display: block; font-weight: 600; color: #475569; margin-bottom: 4px;">Bán kính $R$:</label>
<input type="range" id="rngR" min="1" max="5" step="0.5" value="3" style="width: 100%;" />
<div style="text-align: right; font-weight: bold; color: #2563eb;" id="lblR">R = 3.0</div>
</div>
<div style="margin-bottom: 14px;">
<label style="display: block; font-weight: 600; color: #475569; margin-bottom: 4px;">Góc tiếp điểm $\alpha$:</label>
<input type="range" id="rngAng" min="0" max="360" step="5" value="45" style="width: 100%;" />
<div style="text-align: right; font-weight: bold; color: #dc2626;" id="lblAng">45°</div>
</div>
<div style="background: #f8fafc; border-radius: 6px; padding: 10px; border: 1px solid #e2e8f0; font-size: 0.85rem;">
<div style="font-weight: 700; color: #1e293b; margin-bottom: 4px;">Phương trình chính tắc:</div>
<div id="statCircleEq" style="color: #2563eb; font-family: monospace; font-weight: bold; margin-bottom: 6px;">(x - 1)² + (y - 1)² = 9</div>
<div style="font-weight: 700; color: #1e293b; margin-bottom: 4px;">Tiếp tuyến tại $M_0$:</div>
<div id="statTanEq" style="color: #dc2626; font-family: monospace; font-weight: bold;">0.71x + 0.71y - 3.41 = 0</div>
</div>
</div>
</div>
</div>
<script>
(() => {
const inIa = document.getElementById('inIa');
const inIb = document.getElementById('inIb');
const rngR = document.getElementById('rngR');
const rngAng = document.getElementById('rngAng');
const lblR = document.getElementById('lblR');
const lblAng = document.getElementById('lblAng');
const dynCircle = document.getElementById('dynCircle');
const ptI = document.getElementById('ptI');
const lblI = document.getElementById('lblI');
const radLine = document.getElementById('radLine');
const tanLine = document.getElementById('tanLine');
const ptM0 = document.getElementById('ptM0');
const lblM0 = document.getElementById('lblM0');
const statCircleEq = document.getElementById('statCircleEq');
const statTanEq = document.getElementById('statTanEq');
const ox = 180, oy = 140, scale = 25;
function toScreen(x, y) {
return [ox + x * scale, oy - y * scale];
}
function update() {
const a = parseFloat(inIa.value) || 0;
const b = parseFloat(inIb.value) || 0;
const r = parseFloat(rngR.value) || 3;
const angDeg = parseFloat(rngAng.value) || 45;
const angRad = angDeg * Math.PI / 180;
lblR.textContent = 'R = ' + r.toFixed(1);
lblAng.textContent = angDeg + '°';
// Center screen pos
const [six, siy] = toScreen(a, b);
ptI.setAttribute('cx', six);
ptI.setAttribute('cy', siy);
lblI.setAttribute('x', six + 8);
lblI.setAttribute('y', siy - 6);
lblI.textContent = 'I(' + a + ';' + b + ')';
// Circle SVG
dynCircle.setAttribute('cx', six);
dynCircle.setAttribute('cy', siy);
dynCircle.setAttribute('r', r * scale);
// M0 coordinates
const mx = a + r * Math.cos(angRad);
const my = b + r * Math.sin(angRad);
const [smx, smy] = toScreen(mx, my);
ptM0.setAttribute('cx', smx);
ptM0.setAttribute('cy', smy);
lblM0.setAttribute('x', smx + 8);
lblM0.setAttribute('y', smy - 6);
// Radius segment
radLine.setAttribute('x1', six);
radLine.setAttribute('y1', siy);
radLine.setAttribute('x2', smx);
radLine.setAttribute('y2', smy);
// Tangent line through M0 with normal vector (cos(ang), sin(ang))
// Direction vector is (-sin(ang), cos(ang))
const dirX = -Math.sin(angRad);
const dirY = Math.cos(angRad);
const [lx1, ly1] = toScreen(mx - 15 * dirX, my - 15 * dirY);
const [lx2, ly2] = toScreen(mx + 15 * dirX, my + 15 * dirY);
tanLine.setAttribute('x1', lx1);
tanLine.setAttribute('y1', ly1);
tanLine.setAttribute('x2', lx2);
tanLine.setAttribute('y2', ly2);
// Equation strings
const aPart = a === 0 ? 'x²' : (a > 0 ? '(x - ' + a + ')²' : '(x + ' + Math.abs(a) + ')²');
const bPart = b === 0 ? 'y²' : (b > 0 ? '(y - ' + b + ')²' : '(y + ' + Math.abs(b) + ')²');
statCircleEq.textContent = aPart + ' + ' + bPart + ' = ' + (r * r).toFixed(1);
// Tangent equation: nx*(x - mx) + ny*(y - my) = 0
const nx = Math.cos(angRad);
const ny = Math.sin(angRad);
const cVal = -(nx * mx + ny * my);
statTanEq.textContent = nx.toFixed(2) + 'x ' + (ny >= 0 ? '+ ' : '- ') + Math.abs(ny).toFixed(2) + 'y ' + (cVal >= 0 ? '+ ' : '- ') + Math.abs(cVal).toFixed(2) + ' = 0';
}
[inIa, inIb, rngR, rngAng].forEach(ctrl => ctrl.addEventListener('input', update));
update();
})();
</script>
5. Bốn dạng toán điển hình kèm lời giải chi tiết
Dạng 1: Nhận dạng phương trình đường tròn, tìm tâm và bán kính
Phương pháp giải:
Cho phương trình :
- Tìm (hệ số của chia cho ), (hệ số của chia cho ) và .
- Tính .
- Nếu Không phải phương trình đường tròn.
- Nếu Là đường tròn có tâm và bán kính .
Bài toán 1
Trong các phương trình sau, phương trình nào là phương trình đường tròn? Nếu có, hãy tìm tọa độ tâm và bán kính:
Lời giải:
Xét :
- Ta có: .
- Tính: .
- Kết luận: là phương trình đường tròn có tâm và bán kính .
Xét :
- Ta có: .
- Tính: .
- Kết luận: Phương trình không phải là phương trình đường tròn.
Dạng 2: Viết phương trình đường tròn đi qua 3 điểm (Đường tròn ngoại tiếp)
Phương pháp giải:
- Giả sử phương trình đường tròn có dạng: .
- Vì 3 điểm thuộc đường tròn, thay tọa độ của từng điểm vào phương trình để lập hệ 3 phương trình bậc nhất 3 ẩn .
- Bấm máy tính giải hệ tìm và kết luận.
Bài toán 2
Viết phương trình đường tròn ngoại tiếp tam giác biết tọa độ ba đỉnh là .
Lời giải:
Gọi phương trình đường tròn có dạng . Thay tọa độ vào phương trình:
Lấy :
Lấy :
Thay vào (1):
Kiểm tra: .
Kết luận: Phương trình đường tròn là , hoặc viết dưới dạng chính tắc là .
Dạng 3: Viết phương trình tiếp tuyến của đường tròn tại một điểm
Phương pháp giải:
Đường tròn có tâm . Tiếp tuyến tại điểm có VTPT là :
Bài toán 3
Cho đường tròn .
- Chứng minh rằng điểm thuộc đường tròn .
- Viết phương trình tiếp tuyến của đường tròn tại điểm .
Lời giải:
- Thay tọa độ vào vế trái phương trình :Giá trị đúng bằng vế phải, do đó điểm thuộc đường tròn .
- Đường tròn có tâm .
- Vectơ .
- Tiếp tuyến của tại đi qua và nhận làm VTPT:
Kết luận: Phương trình tiếp tuyến là .
Dạng 4: Viết phương trình tiếp tuyến đi qua một điểm nằm ngoài đường tròn
Phương pháp giải:
- Đường thẳng đi qua điểm có VTPT ():
- Sử dụng điều kiện tiếp xúc: .
- Giải phương trình tìm quan hệ giữa và , chọn giá trị cụ thể để suy ra 2 tiếp tuyến.
Bài toán 4
Cho đường tròn . Viết phương trình các tiếp tuyến của đi qua điểm .
Lời giải:
- Đường tròn có tâm và bán kính . Khoảng cách nằm ngoài đường tròn.
- Gọi là đường thẳng đi qua với VTPT ():
- tiếp xúc với :
- Bình phương hai vế:
- Chọn hoặc .
- Với :
- Với :
Kết luận: Có hai tiếp tuyến thỏa mãn là và .
6. Năm ứng dụng thực tế khoa học & công nghệ
- Vùng quét Radar hàng không & Khí tượng: Trạm radar thời tiết đặt tại sân bay có bán kính quét . Phương trình xác định toàn bộ vùng không phận được bảo vệ an toàn trước các cơn bão mạnh.
- Quy hoạch phủ sóng trạm gốc viễn thông 5G: Kỹ sư mạng viễn thông mô hình hóa vùng phát sóng của trạm BTS bằng hình tròn bán kính . Giao của các đường tròn tối ưu hóa diện tích phủ sóng không có "vùng lõm mất sóng".
- Kỹ thuật cơ khí chính xác & Bánh răng ăn khớp: Vòng tròn chia (Pitch circle) của cặp bánh răng ăn khớp là hai đường tròn tiếp xúc ngoài nhau: Khoảng cách tâm , đảm bảo tỉ số truyền động mượt mà và không gây kẹt răng.
- Hệ thống phun nước tưới nông nghiệp tự động (Center Pivot Irrigation): Các cánh đồng tròn khổng lồ nhìn từ vệ tinh tại Mỹ và Trung Đông là kết quả của giàn phun nước tự quay quanh tâm cố định theo bán kính .
- Định vị chấn tâm động đất (Seismology): Khi động đất xảy ra, ba trạm đo địa chấn ghi nhận thời gian sóng truyền tới và xác định được khoảng cách đến tâm chấn. Giao điểm duy nhất của 3 đường tròn xác định chính xác tọa độ chấn tâm động đất.
7. Trắc nghiệm kiểm tra hiểu bài (10 câu có chấm điểm & giải thích chi tiết)
8. Thử thách thực tế: Dự án Thiết kế Vòng xuyến Giao thông
Sở Giao thông Vận tải muốn thiết kế một bùng binh (vòng xuyến) tròn trên nút giao hai tuyến đường đại lộ và :
- Xác định tọa độ tâm nút giao của hai đại lộ.
- Vòng xuyến có tâm tại và tiếp xúc với một tuyến đường nhánh . Viết phương trình của vòng xuyến tròn này.
Tự kiểm tra kiến thức
Các thẻ lấy từ nội dung bài học. Với câu điền khuyết, bấm vào dấu “…” để chọn cụm từ phù hợp; với thẻ nhớ lại, em tự đối chiếu và đánh giá.