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

২-ডি প্লেনে একটি পয়েন্টের মিরর ইমেজ খুঁজে বের করা C++-এ

এই সমস্যায়, আমাদের একটি ২-ডি প্লেনে একটি পয়েন্ট P এবং সমীকরণ ax + by + c = 0 এর a, b, c পয়েন্টগুলো দেওয়া আছে। আমাদের কাজ হল ২-ডি প্লেনে একটি পয়েন্টের মিরর ইমেজ খুঁজে বের করা।

উদাহরণ

ইনপুট

P = (2, 1), a = 1, b = -1, c = 0

আউটপুট

(1, 2)

ব্যাখ্যা

প্লেনটি দেখতে:

২-ডি প্লেনে একটি পয়েন্টের মিরর ইমেজ খুঁজে বের করা C++-এ

সমাধানের পদ্ধতি

সমস্যাটি সমাধানের জন্য, আমাদের পয়েন্ট P' এর কোঅর্ডিনেট (x', y') বের করতে হবে। এখানে R হল মিডপয়েন্ট যেখানে P-P' লাইনটি মিরর লাইনটি ছেদ করে।

P-R-P' লাইনটি মিররের লম্ব। সুতরাং লাইনের সমীকরণ হবে:

ay - bx + d = 0

পয়েন্টগুলো: P(x, y); P'(x', y'); R(xm, ym)।

P এবং R জানা আছে। সমীকরণগুলো ব্যবহার করে P' বের করব:

(x' - x)/a = (y' - y)/b = -2(ax + by + c)/(a² + b²)

প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

void findMirrorImage(double a, double b, double c, double x, double y) {
    double factor = -2 * (a * x + b * y + c) / (a * a + b * b);
    double xm = factor * a + x;
    double ym = factor * b + y;
    cout << "(" << xm << "," << ym << ")";
}

int main() {
    double a = -1.0;
    double b = 1.0;
    double c = 0.0;
    double x = 1.0;
    double y = 0.0;
    
    cout << "Image of point (" << x << ", " << y << ") using mirror (" 
         << a << ")x + (" << b << ")y + (" << c << ") = 0, is :";
    findMirrorImage(a, b, c, x, y);
    return 0;
}

আউটপুট

Image of point (1, 0) using mirror (-1)x + (1)y + (0) = 0, is :(0,1)
  1. বাইনারি ট্রিতে দেওয়া নোডের মিরর নোড খুঁজে বের করা C++-এ

  2. ২-ডি প্লেনে একটি পয়েন্টের মিরর ইমেজ খুঁজে বের করা C++-এ

  3. C++-এ মিরর রিফ্লেকশন সমস্যা সমাধান

  4. C++ ব্যবহার করে ব্র্যাকেট স্ট্রিংয়ে সমান পয়েন্ট বের করা