Bài 6. Hệ thức lượng trong tam giác
Từ hàng nghìn năm trước, các nhà thiên văn học cổ đại đã đo được khoảng cách từ Trái Đất đến Mặt Trăng, các nhà hàng hải vượt đại dương mênh mông mà không bị lạc lối, và ngày nay các vệ tinh GPS định vị chính xác vị trí chiếc điện thoại của bạn đến từng mét.
Bí mật đằng sau những kỳ tích khoa học vĩ đại ấy nằm ở một kỹ thuật hình học mang tên Tam giác đạc (Triangulation). Khi biết một số cạnh và góc của một tam giác, ta hoàn toàn có thể tính toán chính xác tất cả các yếu tố còn lại — từ cạnh, góc, đường cao, trung tuyến cho đến bán kính đường tròn ngoại tiếp và nội tiếp.
Bài học này sẽ trang bị cho các em bộ vũ khí mạnh mẽ nhất của hình học phẳng: Định lí côsin, Định lí sin và các công thức tính diện tích tam giác kinh điển (đặc biệt là công thức Heron)!
1. Sơ đồ tư duy toàn diện: Hệ thức lượng trong tam giác
1. Định lí Côsin & Trung tuyến
•
•
• Đường trung tuyến :
• Dùng khi biết 2 cạnh + góc kẹp giữa (c-g-c) hoặc biết cả 3 cạnh (c-c-c).
2. Định lí Sin & Bán kính R
•
• Bán kính ngoại tiếp:
• Cạnh qua góc:
• Dùng khi biết 1 cạnh + 2 góc hoặc biết 2 cạnh + 1 góc đối diện.
3. 5 công thức Diện tích S
1.
2.
3.
4. ()
5. Heron: .
4. Kỹ năng Giải tam giác
• "Giải tam giác": Tìm tất cả các cạnh và các góc chưa biết.
• Tổng 3 góc:
• Ứng dụng đo đạc thực tế: chiều cao tháp, khoảng cách vượt sông, định vị tọa độ.
2. Khởi động: 5 câu hỏi phản xạ nhanh
- Khi góc , định lí côsin trở thành định lí quen thuộc nào?
Đáp án: Định lí Pythagore: (vì ). - Trong tam giác , nếu thì tam giác là tam giác gì?
Đáp án: Tam giác tù tại đỉnh (vì ). - Nếu một tam giác có cạnh và góc đối diện , thì bán kính đường tròn ngoại tiếp bằng bao nhiêu?
Đáp án: Theo định lí sin: - Để tính diện tích tam giác khi biết độ dài cả 3 cạnh , công thức nào là tối ưu nhất?
Đáp án: Công thức Heron: . - Bán kính đường tròn nội tiếp được tính theo diện tích và nửa chu vi bằng công thức nào?
Đáp án: .
3. Lý thuyết trọng tâm
3.1. Định lí Côsin
Ghi nhớĐỊNH LÍ CÔSIN:
Trong tam giác bất kỳ, với :
Hệ quả tính góc:
Khi biết độ dài cả 3 cạnh của tam giác, ta tính được góc bằng hệ thức:
Công thức tính độ dài đường trung tuyến:
Gọi lần lượt là độ dài các đường trung tuyến kẻ từ đỉnh :
3.2. Định lí Sin
Ghi nhớĐỊNH LÍ SIN:
Trong tam giác bất kỳ, tỉ số giữa mỗi cạnh và sin của góc đối diện luôn bằng đường kính của đường tròn ngoại tiếp tam giác:(trong đó là bán kính đường tròn ngoại tiếp tam giác).
Hệ quả rút ra:
- Tính độ dài cạnh: .
- Tính sin của góc:
- Tỉ lệ giữa các cạnh chính là tỉ lệ giữa các sin: .
3.3. Các công thức tính diện tích tam giác
Cho tam giác có độ dài ba cạnh , chiều cao , nửa chu vi , bán kính ngoại tiếp và bán kính nội tiếp . Diện tích được tính bởi một trong 5 công thức sau:
- Công thức cổ điển:
- Công thức qua góc và hai cạnh kề:
- Công thức qua bán kính đường tròn ngoại tiếp :
- Công thức qua bán kính đường tròn nội tiếp :
- Công thức Heron (tính khi biết 3 cạnh):
4. Widget tương tác: Bộ giải Tam giác & Hệ thức lượng Trực quan
Kéo 3 đỉnh trên khung vẽ bên dưới để quan sát hệ thống tự động giải tam giác, kiểm chứng Định lí Sin, Định lí Cosin và công thức Heron trong thời gian thực:
<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;">📐 Phòng Khám Phá Hệ Thức Lượng Tam Giác</h3>
<span style="font-size: 0.85rem; color: #64748b; background: #e2e8f0; padding: 4px 8px; border-radius: 4px;">Kéo các đỉnh A, B, C</span>
</div>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 20px; align-items: center;">
<!-- Interactive Triangle Canvas SVG -->
<div style="background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 10px; text-align: center;">
<svg data-interactive-done="true" id="triSvg" viewBox="0 0 320 240" style="width: 100%; max-width: 330px; height: auto; touch-action: none; cursor: crosshair;">
<!-- Circumcircle -->
<circle id="cCircle" cx="160" cy="130" r="80" fill="none" stroke="#e2e8f0" stroke-width="1.5" stroke-dasharray="4,4" />
<!-- Inscribed Circle -->
<circle id="inCircle" cx="160" cy="130" r="30" fill="#fdf4ff" fill-opacity="0.5" stroke="#ec4899" stroke-width="1.5" stroke-dasharray="2,2" />
<!-- Triangle fill & edges -->
<polygon id="triPoly" points="160,30 50,190 270,190" fill="#38bdf8" fill-opacity="0.25" stroke="#0284c7" stroke-width="2.5" />
<!-- Side labels -->
<text id="lblSideA" x="160" y="210" font-size="11" font-weight="bold" fill="#0369a1" text-anchor="middle">a = 11.0</text>
<text id="lblSideB" x="225" y="105" font-size="11" font-weight="bold" fill="#0369a1" text-anchor="middle">b = 9.7</text>
<text id="lblSideC" x="95" y="105" font-size="11" font-weight="bold" fill="#0369a1" text-anchor="middle">c = 9.7</text>
<!-- Vertices -->
<circle id="vA" cx="160" cy="30" r="7" fill="#dc2626" style="cursor: move;" />
<circle id="vB" cx="50" cy="190" r="7" fill="#16a34a" style="cursor: move;" />
<circle id="vC" cx="270" cy="190" r="7" fill="#d97706" style="cursor: move;" />
<text id="txtA" x="160" y="22" font-size="13" font-weight="bold" fill="#dc2626" text-anchor="middle">A</text>
<text id="txtB" x="36" y="195" font-size="13" font-weight="bold" fill="#16a34a" text-anchor="middle">B</text>
<text id="txtC" x="285" y="195" font-size="13" font-weight="bold" fill="#d97706" text-anchor="middle">C</text>
</svg>
</div>
<!-- Live Metrics Table -->
<div style="background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px;">
<div style="font-weight: 700; font-size: 0.95rem; color: #1e293b; margin-bottom: 8px;">Thông số đo đạc thời gian thực:</div>
<table style="width: 100%; font-size: 0.85rem; border-collapse: collapse;">
<tr style="border-bottom: 1px solid #f1f5f9;">
<td style="padding: 4px 0; color: #64748b;">Ba cạnh (cm):</td>
<td style="padding: 4px 0; font-weight: bold; text-align: right;" id="statSides">a=11.0, b=9.7, c=9.7</td>
</tr>
<tr style="border-bottom: 1px solid #f1f5f9;">
<td style="padding: 4px 0; color: #64748b;">Ba góc:</td>
<td style="padding: 4px 0; font-weight: bold; text-align: right;" id="statAngles">A=69°, B=55°, C=55°</td>
</tr>
<tr style="border-bottom: 1px solid #f1f5f9;">
<td style="padding: 4px 0; color: #64748b;">Diện tích S (Heron):</td>
<td style="padding: 4px 0; font-weight: bold; color: #0284c7; text-align: right;" id="statArea">44.0 cm²</td>
</tr>
<tr style="border-bottom: 1px solid #f1f5f9;">
<td style="padding: 4px 0; color: #64748b;">Bán kính ngoại tiếp R:</td>
<td style="padding: 4px 0; font-weight: bold; color: #475569; text-align: right;" id="statR">5.9 cm</td>
</tr>
<tr>
<td style="padding: 4px 0; color: #64748b;">Bán kính nội tiếp r:</td>
<td style="padding: 4px 0; font-weight: bold; color: #ec4899; text-align: right;" id="statr">2.9 cm</td>
</tr>
</table>
<div id="checkLawInfo" style="margin-top: 10px; background: #f0fdf4; border-left: 3px solid #22c55e; padding: 8px; border-radius: 4px; font-size: 0.8rem; color: #166534; line-height: 1.4;">
• <strong>Định lí Sin:</strong> a/sin A = b/sin B = c/sin C = 2R = 11.8 cm.<br>
• <strong>Định lí Cosin:</strong> a² = b² + c² - 2bc cos A được nghiệm đúng!
</div>
</div>
</div>
</div>
<script>
(function() {
const svg = document.getElementById('triSvg');
let pts = {
A: { x: 160, y: 40 },
B: { x: 60, y: 190 },
C: { x: 260, y: 190 }
};
let activeVertex = null;
function dist(p1, p2) {
return Math.hypot(p1.x - p2.x, p1.y - p2.y);
}
function update() {
const scale = 20; // 20px = 1cm
const a = dist(pts.B, pts.C) / scale;
const b = dist(pts.A, pts.C) / scale;
const c = dist(pts.A, pts.B) / scale;
// Angles by Law of Cosines
let cosA = (b*b + c*c - a*a) / (2*b*c);
let cosB = (a*a + c*c - b*b) / (2*a*c);
let cosC = (a*a + b*b - c*c) / (2*a*b);
cosA = Math.max(-1, Math.min(1, cosA));
cosB = Math.max(-1, Math.min(1, cosB));
cosC = Math.max(-1, Math.min(1, cosC));
const angA = Math.acos(cosA) * 180 / Math.PI;
const angB = Math.acos(cosB) * 180 / Math.PI;
const angC = Math.acos(cosC) * 180 / Math.PI;
// Area by Heron
const p = (a + b + c) / 2;
const area = Math.sqrt(Math.max(0, p * (p - a) * (p - b) * (p - c)));
const R = area > 0 ? (a * b * c) / (4 * area) : 0;
const r = area > 0 ? area / p : 0;
// Update DOM
document.getElementById('triPoly').setAttribute('points', `${pts.A.x},${pts.A.y} ${pts.B.x},${pts.B.y} ${pts.C.x},${pts.C.y}`);
['A', 'B', 'C'].forEach(v => {
document.getElementById('v' + v).setAttribute('cx', pts[v].x);
document.getElementById('v' + v).setAttribute('cy', pts[v].y);
document.getElementById('txt' + v).setAttribute('x', pts[v].x);
document.getElementById('txt' + v).setAttribute('y', pts[v].y < 60 ? pts[v].y - 12 : pts[v].y + 16);
});
document.getElementById('lblSideA').setAttribute('x', (pts.B.x + pts.C.x) / 2);
document.getElementById('lblSideA').setAttribute('y', (pts.B.y + pts.C.y) / 2 + 16);
document.getElementById('lblSideA').textContent = `a = ${a.toFixed(1)}`;
document.getElementById('lblSideB').setAttribute('x', (pts.A.x + pts.C.x) / 2 + 16);
document.getElementById('lblSideB').setAttribute('y', (pts.A.y + pts.C.y) / 2);
document.getElementById('lblSideB').textContent = `b = ${b.toFixed(1)}`;
document.getElementById('lblSideC').setAttribute('x', (pts.A.x + pts.B.x) / 2 - 16);
document.getElementById('lblSideC').setAttribute('y', (pts.A.y + pts.B.y) / 2);
document.getElementById('lblSideC').textContent = `c = ${c.toFixed(1)}`;
// Inscribed circle center
const inX = (a * pts.A.x + b * pts.B.x + c * pts.C.x) / (a + b + c);
const inY = (a * pts.A.y + b * pts.B.y + c * pts.C.y) / (a + b + c);
document.getElementById('inCircle').setAttribute('cx', inX);
document.getElementById('inCircle').setAttribute('cy', inY);
document.getElementById('inCircle').setAttribute('r', r * scale);
// Update texts
document.getElementById('statSides').textContent = `a=${a.toFixed(1)}, b=${b.toFixed(1)}, c=${c.toFixed(1)}`;
document.getElementById('statAngles').textContent = `A=${Math.round(angA)}°, B=${Math.round(angB)}°, C=${Math.round(angC)}°`;
document.getElementById('statArea').textContent = `${area.toFixed(1)} cm²`;
document.getElementById('statR').textContent = `${R.toFixed(1)} cm`;
document.getElementById('statr').textContent = `${r.toFixed(1)} cm`;
document.getElementById('checkLawInfo').innerHTML = `
• <strong>Định lí Sin:</strong> a/sin A ≈ ${(a/Math.sin(angA*Math.PI/180)).toFixed(1)} | 2R ≈ ${(2*R).toFixed(1)}.<br>
• <strong>Định lí Cosin:</strong> b² + c² - 2bc cos A ≈ ${(b*b + c*c - 2*b*c*cosA).toFixed(1)} | a² ≈ ${(a*a).toFixed(1)}.
`;
}
function getSvgCoords(e) {
const rect = svg.getBoundingClientRect();
const clientX = e.clientX || (e.touches && e.touches[0].clientX);
const clientY = e.clientY || (e.touches && e.touches[0].clientY);
return {
x: (clientX - rect.left) * (320 / rect.width),
y: (clientY - rect.top) * (240 / rect.height)
};
}
['vA', 'vB', 'vC'].forEach((id, idx) => {
const vName = ['A', 'B', 'C'][idx];
const el = document.getElementById(id);
const startDrag = (e) => {
e.preventDefault();
activeVertex = vName;
};
el.addEventListener('mousedown', startDrag);
el.addEventListener('touchstart', startDrag, { passive: false });
});
const moveDrag = (e) => {
if (!activeVertex) return;
e.preventDefault();
const p = getSvgCoords(e);
pts[activeVertex].x = Math.max(20, Math.min(300, p.x));
pts[activeVertex].y = Math.max(20, Math.min(220, p.y));
update();
};
const endDrag = () => { activeVertex = null; };
window.addEventListener('mousemove', moveDrag);
window.addEventListener('touchmove', moveDrag, { passive: false });
window.addEventListener('mouseup', endDrag);
window.addEventListener('touchend', endDrag);
update();
})();
</script>
5. Bốn dạng toán điển hình & Phương pháp giải chi tiết
Dạng 1: Áp dụng định lí Côsin tính cạnh, góc và độ dài đường trung tuyến
Phương pháp:
- Biết hai cạnh và góc kẹp giữa (): Áp dụng công thức
- Biết ba cạnh (): Tính góc qua .
- Tính trung tuyến kẻ từ : Dùng .
Bài toán 1
Cho tam giác có , và góc .
- Tính độ dài cạnh .
- Tính góc và độ dài đường trung tuyến kẻ từ đỉnh .
Lời giải chi tiết:
Tính độ dài cạnh :
Đặt . Theo định lí côsin:Suy ra .
Tính góc và trung tuyến :
- Theo hệ quả định lí côsin:Suy ra .
- Độ dài đường trung tuyến :Suy ra .
Dạng 2: Áp dụng định lí Sin tính cạnh, góc và bán kính đường tròn ngoại tiếp
Phương pháp:
- Cho tam giác biết 1 cạnh và 2 góc: Tính góc còn lại bằng , sau đó dùng để tính các cạnh còn lại.
- Bán kính đường tròn ngoại tiếp: .
Bài toán 2
Cho tam giác có cạnh , góc và góc .
- Tính bán kính của đường tròn ngoại tiếp tam giác .
- Tính độ dài cạnh và cạnh .
Lời giải chi tiết:
Tính bán kính :
Theo định lí sin:Suy ra:
Tính cạnh và cạnh :
- Tính cạnh :
- Tính cạnh :
Góc .
Ta có .
Dạng 3: Tính diện tích tam giác, bán kính nội tiếp và ngoại tiếp
Phương pháp:
- Nếu biết 3 cạnh: Dùng công thức Heron .
- Sau khi có :
- Tính bán kính nội tiếp: .
- Tính bán kính ngoại tiếp: .
- Tính chiều cao: .
Bài toán 3
Cho tam giác có ba cạnh .
- Tính diện tích của tam giác .
- Tính bán kính đường tròn ngoại tiếp , bán kính đường tròn nội tiếp và đường cao hạ từ đỉnh .
Lời giải chi tiết:
Tính diện tích tam giác theo công thức Heron:
Nửa chu vi tam giác:Các hiệu số:
Diện tích tam giác:
Tính và :
- Bán kính đường tròn ngoại tiếp :
- Bán kính đường tròn nội tiếp :
- Đường cao :
Dạng 4: Giải tam giác trong bài toán đo đạc thực tế (Trắc địa)
Phương pháp:
- Mô hình hóa bài toán thực tế thành hình tam giác.
- Xác định các yếu tố đã đo được (các cạnh đo được trên mặt đất, các góc đo bằng giác kế / kinh vĩ nghiêng).
- Sử dụng định lí sin hoặc định lí côsin để tính cạnh cần tìm.
Bài toán 4
Để đo chiều cao của một tòa tháp cao tầng bên bờ sông mà không thể đến chân tháp, hai kỹ sư đứng tại hai điểm và trên mặt đất cùng một bờ sông, cách nhau một khoảng m.
Họ dùng giác kế đo được:
- Từ điểm : góc nhìn đỉnh tháp là và góc nhìn chân tháp hướng sang là .
- Từ điểm : góc nhìn chân tháp hướng sang là . Biết rằng tháp vuông góc với mặt đất tại . Hãy tính chiều cao của tháp (làm tròn đến hàng phần mười).
Lời giải chi tiết:
- Xét tam giác trên mặt đất: Góc
- Áp dụng định lí sin trong tam giác để tính khoảng cách từ điểm đo đến chân tháp :
- Xét tam giác vuông vuông tại chân tháp : Góc nâng nhìn đỉnh tháp là .
- Kết luận: Chiều cao của tháp xấp xỉ 37,2 mét.
6. Ứng dụng thực tế & Khoa học hiện đại
| Lĩnh vực ứng dụng | Ứng dụng cụ thể của Hệ thức lượng trong tam giác |
|---|---|
| Định vị toàn cầu (GPS & Galileo) | Các vệ tinh thu phát tín hiệu đến máy bay/điện thoại: Khoảng cách giữa máy thu và 3 vệ tinh tạo thành mạng lưới tam giác không gian, định lí côsin giải ra tọa độ kinh độ và vĩ độ chính xác. |
| Trắc địa & Đo vẽ bản đồ địa hình | Mạng lưới tam giác đạc quốc gia (Geodetic Triangulation): Các mốc trắc địa trên các đỉnh núi được liên kết thành chuỗi tam giác để lập bản đồ số độ cao. |
| Hàng không & Quản lý không lưu (ATC) | Khi hai máy bay bay cùng độ cao theo hai hướng tạo góc , đài kiểm soát không lưu áp dụng định lí côsin: để cảnh báo nguy cơ va chạm. |
| Kỹ thuật cơ khí & Robot học | Tính toán hành trình của piston trong động cơ đốt trong: Cơ cấu thanh truyền - tay quay tạo thành tam giác biến thiên liên tục góc . |
| Thiết kế mái vòm & Kiến trúc cầu treo | Giàn không gian tam giác (Truss structure): Định lí sin và côsin giúp kỹ sư tính lực căng trên các dây cáp cầu treo và thanh dầm chịu lực. |
7. Trắc nghiệm tương tác kiểm tra năng lực (10 câu)
8. Luyện tập tự do & Thử thách thực tế
Bài tập 1 (Chứng minh hệ thức lượng trong tam giác)
Chứng minh rằng trong mọi tam giác , ta luôn có hệ thức:
Hướng dẫn giải:
- Theo định lí côsin:
- Thay vào vế phải:(Ý nghĩa hình học: Đây chính là phép chiếu vuông góc hai cạnh và lên đường thẳng chứa cạnh ).
Bài tập 2 (Định vị tàu biển ngoài khơi)
Một trạm hải đăng đặt tại vị trí quan sát thấy hai tàu đánh cá và .
Từ ngọn hải đăng, khoảng cách đến tàu là hải lý, khoảng cách đến tàu là hải lý, và góc nhìn giữa hai tàu là .
- Tính khoảng cách giữa hai tàu đánh cá và .
- Nếu tàu phát tín hiệu cấp cứu và tàu lập tức chạy thẳng đến ứng cứu với vận tốc 15 hải lý/giờ thì sau bao lâu (tính theo phút) tàu sẽ tiếp cận được tàu ?
Hướng dẫn giải:
- Khoảng cách giữa hai tàu là độ dài đoạn . Theo định lí côsin:Suy ra:
- Thời gian để tàu di chuyển đến vị trí tàu :Đổi sang phút: phút (tức khoảng 1 giờ 10 phút).
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á.