একটি ত্রিভুজের তিনটি বিন্দু দেওয়া আছে; আরেকটি বিন্দু P দিয়ে চেক করতে হবে যে বিন্দু P ত্রিভুজের ভিতরে আছে কিনা।
সমস্যা সমাধানের জন্য, ত্রিভুজের বিন্দুগুলো A, B, এবং C ধরা যাক। যখন ত্রিভুজ ΔABC-এর এলাকা = ΔABP + ΔPBC + ΔAPC-এর এলাকা, তখন বিন্দু P ত্রিভুজের ভিতরে আছে।
ইনপুট এবং আউটপুট
ইনপুট: ত্রিভুজের বিন্দু {(0, 0), (20, 0), (10, 30)} এবং বিন্দু p (10, 15) চেক করার জন্য। আউটপুট: বিন্দুটি ত্রিভুজের ভিতরে আছে।অ্যালগরিদম
isInside(p1, p2, p3, p)
ইনপুট: একটি ত্রিভুজের তিনটি বিন্দু, চেক করার জন্য বিন্দু p।
আউটপুট: সত্য, যখন p ত্রিভুজের ভিতরে থাকে।
শুরু
area := ত্রিভুজের এলাকা(p1, p2, p3)
area1 := ত্রিভুজের এলাকা(p, p2, p3)
area2 := ত্রিভুজের এলাকা(p1, p, p3)
area3 := ত্রিভুজের এলাকা(p1, p2, p)
যদি area = (area1 + area2 + area3), তবে
সত্য ফেরত দিন
অন্যথায় মিথ্যা ফেরত দিন
শেষউদাহরণ
#include <iostream> #include<cmath> using namespace std; struct Point { int x, y; }; float triangleArea(Point p1, Point p2, Point p3) { //p1, p2 এবং p3 দ্বারা গঠিত ত্রিভুজের এলাকা বের করুন return abs((p1.x*(p2.y-p3.y) + p2.x*(p3.y-p1.y)+ p3.x*(p1.y-p2.y))/2.0); } bool isInside(Point p1, Point p2, Point p3, Point p) { //p ভিতরে আছে কিনা বাইরে তা চেক করুন float area = triangleArea (p1, p2, p3); //ত্রিভুজ ABC-এর এলাকা float area1 = triangleArea (p, p2, p3); //PBC-এর এলাকা float area2 = triangleArea (p1, p, p3); //APC-এর এলাকা float area3 = triangleArea (p1, p2, p); //ABP-এর এলাকা return (area == area1 + area2 + area3); //যখন তিনটি ত্রিভুজ পুরো ত্রিভুজ গঠন করে } int main() { Point p1={0, 0}, p2={20, 0}, p3={10, 30}; Point p = {10, 15}; if (isInside(p1, p2, p3, p)) cout << "Point is inside the triangle."; else cout << "Point is not inside the triangle"; }আউটপুট
Point is inside the triangle.