কম্পিউটার টিউটোরিয়াল

C++-এ একটি রেখা বৃত্তকে স্পর্শ করে কিনা বা ইন্টারসেক্ট করে কিনা চেক করা

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

C++-এ একটি রেখা বৃত্তকে স্পর্শ করে কিনা বা ইন্টারসেক্ট করে কিনা চেক করা

নিচের ধাপগুলো অনুসরণ করে সমাধান করব:

  • কেন্দ্র এবং দিয়ে गये রেখার মধ্যবর্তী লম্ব দূরত্ব 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
  1. সি++-এ তিনটি বিন্দু সমরৈখিক (collinear) কিনা তা যাচাই করার প্রোগ্রাম

  2. C++-এ একটি রেখায় সর্বোচ্চ পয়েন্ট (Max Points on a Line)

  3. C++-এ একটি রেখা বৃত্তকে স্পর্শ করে কিনা বা ইন্টারসেক্ট করে কিনা চেক করা

  4. C++-এ আইডেমপটেন্ট ম্যাট্রিক্স যাচাই করার প্রোগ্রাম