Cho đường tròn tâm (h,k), bán kính r và đường thẳng ax + by + c = 0. Xác định vị trí tương đối:
- Khoảng cách d > r → ngoài (không giao)
- d = r → tiếp xúc
- d < r → cắt (giao tại 2 điểm)
Khoảng cách từ tâm đến đường thẳng: d = |ah + bk + c| / √(a² + b²)
Ví dụ minh họa
#include <iostream>
#include <cmath>
using namespace std;
void checkLineCircle(int a, int b, int c, int h, int k, int r) {
int dist = abs(a * h + b * k + c) / sqrt(a * a + b * b);
if (r == dist)
cout << "Tiep xuc duong tron";
else if (r > dist)
cout << "Cat duong tron (2 diem)";
else
cout << "Ngoai duong tron";
}
int main() {
int r = 5, h = 0, k = 0;
int a = 3, b = 4, c = 25; // 3x + 4y + 25 = 0
checkLineCircle(a, b, c, h, k, r);
}
Kết quả
Tiep xuc duong tron