Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

जाँच करें कि क्या दिया गया बिंदु त्रिभुज के अंदर स्थित है


एक त्रिभुज के तीन बिंदु दिए गए हैं; बिंदु P त्रिभुज के अंदर है या नहीं, यह जांचने के लिए एक अन्य बिंदु P भी दिया गया है।

समस्या को हल करने के लिए, मान लें कि त्रिभुज के बिंदु A, B और C हैं। जब त्रिभुज का क्षेत्रफल Δ𝐴𝐵𝐶 =+ Δ𝑃𝐵𝐶 + , तो बिंदु P त्रिभुज के अंदर होता है।

इनपुट और आउटपुट

Input:
Points of the triangle {(0, 0), (20, 0), (10, 30)} and point p (10, 15) to check.
Output:
Point is inside the triangle.

एल्गोरिदम

isInside(p1, p2, p3, p)

इनपुट: त्रिभुज के तीन बिंदु, बिंदु p जिसे जांचना है।

आउटपुट: सच है, जब p त्रिभुज के अंदर होता है।

Begin
   area := area of triangle(p1, p2, p3)
   area1 := area of triangle(p, p2, p3)
   area2 := area of triangle(p1, p, p3)
   area3 := area of triangle(p1, p2, p)
   if area = (area1 + area2 + area3), then
      return true
   else return false
End

उदाहरण

#include <iostream>
#include<cmath>
using namespace std;

struct Point {
   int x, y;
};

float triangleArea(Point p1, Point p2, Point p3) {         //find area of triangle formed by p1, p2 and p3
   return abs((p1.x*(p2.y-p3.y) + p2.x*(p3.y-p1.y)+ p3.x*(p1.yp2.y))/2.0);
}

bool isInside(Point p1, Point p2, Point p3, Point p) {     //check whether p is inside or outside
   float area = triangleArea (p1, p2, p3);          //area of triangle ABC
   float area1 = triangleArea (p, p2, p3);         //area of PBC
   float area2 = triangleArea (p1, p, p3);         //area of APC
   float area3 = triangleArea (p1, p2, p);        //area of ABP

   return (area == area1 + area2 + area3);        //when three triangles are forming the whole triangle
}
 
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. जांचें कि क्या कोई बिंदु पायथन में एक आयत पर या उसके अंदर स्थित है

    मान लीजिए कि हमारे पास दो बिंदुओं द्वारा दर्शाया गया एक आयत है जो नीचे-बाएँ और ऊपरी-दाएँ कोने के बिंदु हैं। हमें यह जांचना है कि इस आयत के अंदर दिया गया बिंदु (x, y) मौजूद है या नहीं। इसलिए, यदि इनपुट बॉटम_लेफ्ट =(1, 1), टॉप_राइट =(8, 5), पॉइंट =(5, 4) जैसा है, तो आउटपुट ट्रू होगा इसे हल करने के

  1. दिए गए बहुभुज के अंदर या सीमा में दिए गए बिंदु की जाँच करने के लिए कार्यक्रम या नहीं अजगर में

    मान लीजिए कि हमारे पास कार्तीय बिंदुओं की एक सूची है [(x1, y1), (x2, y2), ..., (xn, yn)], जो एक बहुभुज का प्रतिनिधित्व कर रहा है, और दो मान x और y भी हैं, हमें यह करना होगा जांचें कि क्या (x, y) इस बहुभुज के अंदर या सीमा पर स्थित है। इसलिए, यदि इनपुट अंक की तरह है =[(0, 0), (1, 3), (4, 4), (6, 2),

  1. पायथन में दिया गया ग्राफ द्विदलीय है या नहीं, यह जांचने के लिए कार्यक्रम

    मान लीजिए कि हमारे पास एक अप्रत्यक्ष ग्राफ है, हमें यह जांचना है कि ग्राफ द्विदलीय है या नहीं। जैसा कि हम जानते हैं कि एक ग्राफ द्विदलीय होता है जब हम ग्राफ के नोड्स को दो सेट ए और बी में विभाजित कर सकते हैं जैसे कि ग्राफ के प्रत्येक किनारे {यू, वी} में ए में एक नोड और बी में दूसरा नोड वी होता है।