কম্পিউটার

একটি লাইন 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);
}

আউটপুট

Touching the circle

  1. C++ এ তিনটি বিন্দু সমরেখার কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. C++ এ একটি লাইনে সর্বোচ্চ পয়েন্ট

  3. একটি লাইন C++ এ একটি বৃত্ত স্পর্শ করে বা ছেদ করে কিনা তা পরীক্ষা করুন

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