मान लीजिए हमारे पास एक वृत्त और दूसरी सीधी रेखा है। हमारा कार्य यह पता लगाना है कि रेखा वृत्त को स्पर्श करती है या उसे काटती है, अन्यथा वह बाहर से होकर गुजरती है। तो नीचे की तरह तीन अलग-अलग मामले हैं -
यहां हम इसे निम्नलिखित चरणों द्वारा हल करेंगे। ये नीचे की तरह हैं -
- केंद्र के बीच लंबवत P ढूंढें और एक रेखा दी गई है
- P की तुलना त्रिज्या r से करें -
- अगर P> r, तो बाहर
- यदि P =r, तो स्पर्श करता है
- अन्यथा अंदर
लंबवत दूरी प्राप्त करने के लिए, हमें इस सूत्र का उपयोग करना होगा (एक केंद्र बिंदु (एच, के) है)
$$\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); }
आउटपुट
Touching the circle