মনে করুন একটি বৃত্ত এবং একটি সরল রেখা আছে। আমাদের কাজ হল খুঁজে বের করা রেখাটি বৃত্তকে স্পর্শ করে কিনা বা ইন্টারসেক্ট করে কিনা, অন্যথায় বাহিরে থেকে চলে যায়। তিন ধরনের কেস:

নিচের ধাপগুলো অনুসরণ করে সমাধান করব:
- কেন্দ্র এবং দিয়ে गये রেখার মধ্যবর্তী লম্ব দূরত্ব P বের করুন
- P কে ত্রিজ্যা r দিয়ে তুলনা করুন:
- যদি P > r, তবে আউটসাইড (বাহিরে)
- যদি P = r, তবে টাচিং (স্পর্শ)
- অন্যথায় ইনসাইড (ইন্টারসেক্ট)
লম্ব দূরত্ব বের করতে 센্টার পয়েন্ট (h, k) দিয়ে এই সূত্র ব্যবহার করতে হবে:
$$\frac{ah+bk+c}{\sqrt{a^2+b^2}}$$
উদাহরণ কোড
#include <iostream>
#include <cmath>
using namespace std;
void isTouchOrIntersect(int a, int b, int c, int h, int k, int radius) {
int dist = (abs(a * h + b * k + c)) / sqrt(a * a + b * b);
if (radius == dist)
cout << "Touching the circle" << endl;
else if (radius > dist)
cout << "Intersecting the circle" << endl;
else
cout << "Outside the circle" << endl;
}
int main() {
int radius = 5;
int h = 0, k = 0;
int a = 3, b = 4, c = 25;
isTouchOrIntersect(a, b, c, h, k, radius);
return 0;
}
আউটপুট
Touching the circle