परिचय
एक त्रिभुज के तीन बिंदु दिए गए हैं; एक अन्य बिंदु 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 त्रिभुज के अंदर हो
Begin
area := त्रिभुज(p1, p2, p3) का क्षेत्रफल
area1 := त्रिभुज(p, p2, p3) का क्षेत्रफल
area2 := त्रिभुज(p1, p, p3) का क्षेत्रफल
area3 := त्रिभुज(p1, p2, p) का क्षेत्रफल
यदि area = (area1 + area2 + area3), तो
सत्य लौटाएं
अन्यथा असत्य लौटाएं
End
उदाहरण (C++ कोड)
#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.