একটি ২D প্লেনে চারটি বিন্দু দেওয়া আছে। এই অ্যালগরিদম চেক করবে চারটি বিন্দু বর্গ গঠন করছে কিনা।
বর্গ চেক করার জন্য নিচের শর্তগুলো মিলাতে হবে:
- প্রদত্ত বিন্দুগুলো দ্বারা গঠিত চারটি বাহু একই।
- সबুজ সংযোগকারী দুটি বাহু সমকোণীয়।
ইনপুট এবং আউটপুট
ইনপুট: চারটি বিন্দু {(20, 10), (10, 20), (20, 20), (10, 10)} আউটপুট: বিন্দুগুলো বর্গ গঠন করছে।অ্যালগরিদম
isFormingSquare(p1, p2, p3, p4)
এই প্রক্রিয়ায়, আমরা squareDist(p1, p2) নামক একটি মেথড ব্যবহার করব, যা দুটি প্রদত্ত বিন্দুর বর্গ দূরত্ব রিটার্ন করবে।
ইনপুট: চারটি বিন্দু।
আউটপুট: সত্য যখন প্রদত্ত বিন্দুগুলো বর্গ গঠন করছে।
শুরু
dist12 := squareDist(p1, p2)
dist13 := squareDist(p1, p3)
dist14 := squareDist(p1, p4)
যদি dist12 = dist13 এবং 2*dist12 = dist14, তবে
dist := squareDist(p2, p4)
সত্য ফেরত দিন যখন dist = squareDist(p3, p4) এবং dist = dist12
যদি dist13 = dist14 এবং 2*dist13 = dist12, তবে
dist := squareDist(p2, p3)
সত্য ফেরত দিন যখন dist = squareDist(p2, p4) এবং dist = dist13
যদি dist12 = dist14 এবং 2*dist12 = dist13, তবে
dist := squareDist(p2, p3)
সত্য ফেরত দিন যখন dist = squareDist(p3, p4) এবং dist = dist12
মিথ্যা ফেরত দিন
শেষউদাহরণ
#include<iostream> using namespace std; struct Point { int x, y; }; int squareDist(Point p, Point q) { return (p.x - q.x)*(p.x - q.x) + (p.y - q.y)*(p.y - q.y); } bool isSquare(Point p1, Point p2, Point p3, Point p4) { //চেক চারটি বিন্দু বর্গ গঠন করছে কিনা int dist12 = squareDist(p1, p2); // p1 থেকে p2-এর দূরত্ব int dist13 = squareDist(p1, p3); // p1 থেকে p3-এর দূরত্ব int dist14 = squareDist(p1, p4); // p1 থেকে p4-এর দূরত্ব //যখন p1-p2 এবং p1-p3-এর দৈর্ঘ্য একই, এবং (p1-p4)-এর বর্গ = 2*(p1-p2) if (dist12 == dist13 && 2*dist12 == dist14) { int dist = squareDist(p2, p4); return (dist == squareDist(p3, p4) && dist == dist12); } //অন্য সব কনবিনেশনের জন্য একই শর্ত if (dist13 == dist14 && 2*dist13 == dist12) { int dist = squareDist(p2, p3); return (dist == squareDist(p2, p4) && dist == dist13); } if (dist12 == dist14 && 2*dist12 == dist13) { int dist = squareDist(p2, p3); return (dist == squareDist(p3, p4) && dist == dist12); } return false; } int main() { Point p1 = {20, 10}, p2 = {10, 20}, p3 = {20, 20}, p4 = {10, 10}; if(isSquare(p1, p2, p3, p4)) cout << "Points are forming a square."; else cout << "Points are not forming a square"; }আউটপুট
Points are forming a square.