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

বিন্দু ত্রিভুজের ভিতরে আছে কিনা (Check whether a given point lies inside a Triangle)


একটি ত্রিভুজের তিনটি বিন্দু দেওয়া আছে; আরেকটি বিন্দু 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.

  1. C++-এ একটি বৃত্ত দুই সংকেন্দ্রিক বৃত্তের মধ্যে থাকা রিং-এ সম্পূর্ণরূপে অবস্থিত কিনা তা যাচাই করা

  2. পাইথনে যাচাই করুন পয়েন্ট আয়তাকার (rectangle) এর ভিতরে বা বাউন্ডারি на আছে কিনা

  3. পাইথনে একটি পয়েন্ট পলিগনের ভিতরে বা বাউন্ডারিতে আছে কিনা চেক করার প্রোগ্রাম

  4. পাইথনে গ্রাফ বাইপার্টাইট কিনা যাচাই করার প্রোগ্রাম