Bài 60: Hình Học Đường Tròn¶
Tác giả: FPTOJ Team
Nội dung tham khảo từ: CP-Algorithms, VNOI Wiki
Bạn sẽ học được gì?¶
- Phương trình đường tròn: Các dạng biểu diễn và cách xác định tâm, bán kính từ 3 điểm không thẳng hàng.
- Tiếp tuyến từ điểm đến đường tròn: Công thức và cách tìm tọa độ điểm tiếp xúc.
- Giao điểm hai đường tròn: Phân tích hình học và thuật toán tìm tọa độ các giao điểm.
- Diện tích giao hai đường tròn: Công thức tính toán chính xác sử dụng hình quạt.
- Các bài toán ứng dụng và lời giải chi tiết bằng cả C++ và Python.
1. Phương trình đường tròn và Đường tròn ngoại tiếp từ 3 điểm¶
1.1 Phương trình đường tròn¶
Trong hệ tọa độ Descartes \(Oxy\), một đường tròn có tâm \(I(a, b)\) và bán kính \(r\) được biểu diễn bằng hai dạng chính: - Dạng chính tắc: $\((x - a)^2 + (y - b)^2 = r^2\)$ - Dạng tổng quát (khai triển): $\(x^2 + y^2 + Dx + Ey + F = 0\)$ Với các mối hệ thức: $\(D = -2a, \quad E = -2b, \quad F = a^2 + b^2 - r^2\)$ Từ đó, nếu biết \(D, E, F\), ta tìm lại được tâm \(I\left(-\frac{D}{2}, -\frac{E}{2}\right)\) và bán kính \(r = \sqrt{a^2 + b^2 - F}\) (với điều kiện \(a^2 + b^2 - F > 0\)).
1.2 Xác định đường tròn từ 3 điểm không thẳng hàng¶
Cho 3 điểm không thẳng hàng \(A, B, C\). Đường tròn đi qua \(3\) điểm này là đường tròn ngoại tiếp tam giác \(ABC\).
Phân tích toán học:¶
Tâm \(I(x, y)\) của đường tròn ngoại tiếp là giao điểm của các đường trung trực của tam giác \(ABC\). Ta có hệ phương trình khoảng cách: $\(IA^2 = IB^2 = IC^2\)$ $\((x - x_A)^2 + (y - y_A)^2 = (x - x_B)^2 + (y - y_B)^2 = (x - x_C)^2 + (y - y_C)^2\)$
Khai triển và rút gọn, ta thu được hệ phương trình tuyến tính đối với \(x\) và \(y\): $\(2(x_B - x_A)x + 2(y_B - y_A)y = (x_B^2 + y_B^2) - (x_A^2 + y_A^2)\)$ $\(2(x_C - x_A)x + 2(y_C - y_A)y = (x_C^2 + y_C^2) - (x_A^2 + y_A^2)\)$
Giải hệ phương trình này bằng phương pháp định thức Cramer ta sẽ tìm được tọa độ tâm \(I(x, y)\) và bán kính \(r = \text{dist}(I, A)\).

2. Vị trí tương đối giữa Điểm và Đường tròn¶
2.1 Mối quan hệ khoảng cách¶
Cho điểm \(P\) và đường tròn \(C\) có tâm \(O(x_c, y_c)\), bán kính \(r\). Gọi \(d = \text{dist}(P, O)\) là khoảng cách từ \(P\) tới tâm \(O\): - \(P\) nằm trong đường tròn: \(d < r \iff d^2 < r^2\) - \(P\) nằm trên đường tròn (biên): \(d = r \iff d^2 = r^2\) - \(P\) nằm ngoài đường tròn: \(d > r \iff d^2 > r^2\)
Mẹo lập trình: Để tránh sai số dấu phẩy động khi tọa độ là số nguyên, ta so sánh bình phương khoảng cách \(d^2\) với bình phương bán kính \(r^2\) trên kiểu dữ liệu số nguyên.
3. Tiếp tuyến từ điểm đến đường tròn¶
Cho điểm \(P\) nằm ngoài đường tròn tâm \(O(x_c, y_c)\) bán kính \(r\). Ta cần tìm tọa độ của hai điểm tiếp xúc \(T_1\) và \(T_2\) trên đường tròn của các tiếp tuyến kẻ từ \(P\).
3.1 Phân tích lượng giác¶
- Khoảng cách giữa điểm \(P\) và tâm \(O\) là \(d = \text{dist}(P, O)\).
- Chiều dài đoạn tiếp tuyến là \(l = \sqrt{d^2 - r^2}\).
- Góc ở tâm \(\alpha = \angle T_1OP = \angle T_2OP\) được tính qua công thức: $\(\cos(\alpha) = \frac{r}{d} \implies \alpha = \arccos\left(\frac{r}{d}\right)\)$
- Góc của vectơ pháp tuyến \(\vec{OP}\) đối với trục hoành là \(\beta = \text{atan2}(y_P - y_O, x_P - x_O)\).
- Tọa độ hai tiếp điểm lần lượt là: $\(T_1 = (x_O + r \cdot \cos(\beta + \alpha), \, y_O + r \cdot \sin(\beta + \alpha))\)$ $\(T_2 = (x_O + r \cdot \cos(\beta - \alpha), \, y_O + r \cdot \sin(\beta - \alpha))\)$
4. Giao điểm của hai đường tròn¶
Cho hai đường tròn \(C_1(O_1, r_1)\) và \(C_2(O_2, r_2)\). Gọi \(d = \text{dist}(O_1, O_2)\) là khoảng cách giữa hai tâm.
4.1 Phân tích các trường hợp hình học¶
- \(d > r_1 + r_2\): Hai đường tròn nằm ngoài nhau, không giao nhau.
- \(d < |r_1 - r_2|\): Một đường tròn chứa trong đường tròn còn lại, không giao nhau.
- \(d = 0\) và \(r_1 = r_2\): Hai đường tròn trùng nhau (vô số điểm giao).
- \(d = r_1 + r_2\) hoặc \(d = |r_1 - r_2|\): Tiếp xúc nhau (đúng \(1\) điểm giao).
- \(|r_1 - r_2| < d < r_1 + r_2\): Cắt nhau tại đúng \(2\) điểm phân biệt.
4.2 Thuật toán tìm tọa độ giao điểm¶
Giả sử hai đường tròn cắt nhau tại \(2\) điểm. Đường nối hai giao điểm vuông góc với đường nối hai tâm \(O_1O_2\). 1. Gọi \(M\) là giao điểm của đường nối hai giao điểm với đoạn thẳng \(O_1O_2\). 2. Gọi \(a = \text{dist}(O_1, M)\). Áp dụng định lý Pythagoras cho các tam giác vuông tạo thành, ta tìm được: $\(a = \frac{r_1^2 - r_2^2 + d^2}{2d}\)$ 3. Chiều cao từ giao điểm xuống đoạn nối tâm là \(h = \sqrt{r_1^2 - a^2}\). 4. Tọa độ điểm trung gian \(M(x_M, y_M)\) là: $\(x_M = x_1 + a \cdot \frac{x_2 - x_1}{d}, \quad y_M = y_1 + a \cdot \frac{y_2 - y_1}{d}\)$ 5. Vectơ chỉ phương của dây cung giao điểm vuông góc với \(O_1O_2\). Từ đó ta tính tọa độ hai giao điểm: $\(x = x_M \pm h \cdot \frac{y_1 - y_2}{d}, \quad y = y_M \mp h \cdot \frac{x_1 - x_2}{d}\)$
5. Đường tròn Ngoại tiếp và Nội tiếp Tam giác¶
5.1 Đường tròn ngoại tiếp (Circumcircle)¶
Bán kính đường tròn ngoại tiếp \(R\) liên hệ với độ dài ba cạnh \(a, b, c\) và diện tích tam giác \(S\) qua công thức: $\(R = \frac{a \cdot b \cdot c}{4S}\)$
5.2 Đường tròn nội tiếp (Incircle)¶
Bán kính đường tròn nội tiếp \(r\) liên hệ với diện tích \(S\) và nửa chu vi \(s = \frac{a + b + c}{2}\) qua công thức: $\(r = \frac{S}{s}\)$
6. Diện tích phần giao của hai đường tròn¶
Công thức Toán học¶
Gọi hai đường tròn có bán kính \(r_1, r_2\), khoảng cách tâm là \(d\). Phần giao nhau được tạo bởi hai hình quạt tròn trừ đi diện tích hai tam giác cân tương ứng: $\(S_{\text{intersection}} = r_1^2 \alpha + r_2^2 \beta - d \cdot h\)$ Trong đó các góc ở tâm \(\alpha, \beta\) (tính bằng radian) được xác định bằng định lý hàm số cosin: $\(\alpha = \arccos\left(\frac{d^2 + r_1^2 - r_2^2}{2 \cdot d \cdot r_1}\right)\)$ $\(\beta = \arccos\left(\frac{d^2 + r_2^2 - r_1^2}{2 \cdot d \cdot r_2}\right)\)$ Và chiều cao \(h\) là khoảng cách từ giao điểm tới đoạn nối tâm.
7. Bài tập luyện tập và Lời giải chi tiết¶
Bài 1: Kiểm tra điểm trong đường tròn¶
Đề bài: Cho đường tròn tâm \(O(a, b)\) bán kính \(r\) và điểm \(P(x, y)\). Kiểm tra điểm \(P\) nằm trong, nằm trên hay nằm ngoài đường tròn. Độ khó: ★☆☆
Lời giải
Tính khoảng cách bình phương và so sánh với bình phương bán kính để bảo toàn số nguyên.
Bài 2: Số điểm giao của hai đường tròn¶
Đề bài: Cho 2 đường tròn \(C_1(a_1, b_1, r_1)\) và \(C_2(a_2, b_2, r_2)\). Đếm số điểm giao của chúng. Độ khó: ★★☆
Lời giải
So sánh khoảng cách tâm bình phương với các đại lượng tổng, hiệu bán kính bình phương.
Bài 3: Bán kính đường tròn ngoại tiếp tam giác¶
Đề bài: Cho 3 đỉnh tam giác \(A(x_1, y_1), B(x_2, y_2), C(x_3, y_3)\). Tính bán kính ngoại tiếp của tam giác. Độ khó: ★★☆
Lời giải
Áp dụng công thức Heron để tính diện tích \(S\), sau đó tính \(R = \frac{abc}{4S}\).