এই সমস্যাতে, আমাদের একটি লাইনের শুরু বিন্দু A(xA, yA) এবং মিডপয়েন্ট M(xM, yM)-এর কোঅর্ডিনেট দেওয়া আছে। আমাদের কাজ হল দেওয়া এক ছোরা এবং মিডপয়েন্ট দিয়ে লাইনের অন্য ছোরা বের করা।
উদাহরণ দেখি:
ইনপুট
A = [1, 2], M = [3, 0]
আউটপুট
[5, -2]
ব্যাখ্যা
লাইনটি হল -

সমাধানের পদ্ধতি
এই সমস্যা সমাধান করতে আমরা জ্যামিতির কনসেপ্ট ব্যবহার করব যা আমরা গণিতে শিখেছি। মিডপয়েন্ট ফর্মুলা প্রতিটি লাইনের জন্য হল -
mid(x) = (x1 + x2) / 2 mid(y) = (y1 + y2) / 2
কিন্তু সমস্যায় মিডপয়েন্টের মান দেওয়া আছে এবং x2, y2 বের করতে হবে। তাই ফর্মুলা পরিবর্তন করব।
x2 = 2*mid(x) - x1 y2 = 2*mid(y) - y1
উপরের ফর্মুলা ব্যবহার করে মিডপয়েন্ট এবং লাইনের এক বিন্দু দিয়ে অন্য বিন্দু বের করা যায়।
উদাহরণ
#include <iostream> using namespace std; void findMissingPointLine(float x1, float y1, float xm, float ym){ float x2 = (2 * xm) - x1; float y2 = (2 * ym) - y1; cout<<"B(x, y) = "<<"( "<<x2<<", "<<y2<<" )"; } int main() { float x1 = -4, y1 = -1, xm = 3, ym = 5; cout<<"The other end point of the line is \n"; findMissingPointLine(x1, y1, xm, ym); return 0; }
আউটপুট
The other end point of the line is B(x, y) = ( 10, 11 )