यहाँ एक C++ प्रोग्राम है जो ऊपर दिए गए आदिम से ऊपर का उपयोग करने के लिए परीक्षण करता है कि क्या दो लाइनें प्रतिच्छेद करती हैं। इसका उपयोग यह परीक्षण करने के लिए किया जा सकता है कि कोई रेखा किसी रेखाखंड को काटती है या नहीं। यह तभी होता है जब खंड का एक समापन बिंदु रेखा के बाईं ओर होता है और दूसरा दाईं ओर होता है।
एल्गोरिदम
Begin For generating equation of the first line, generate random numbers for coefficient of x and y by using rand at every time of compilation. For generating equation of the second line, generate random numbers for coefficient of x and y by using rand at every time of compilation. Find the segment of line 1 as Y1. if (Y1 < 0) Find the segment of line 2 if (Y2 >= 0) print they are intersecting. else if (Y2 < 0) print they are not intersecting. else if (Y1 >0) Find the segment of line 2 if (Y2 <= 0) print they are intersecting. else if (Y2 >0) print they are not intersecting. End.
उदाहरण कोड
#include<time.h> #include<stdlib.h> #include<iostream> #include<math.h> using namespace std; const int L = 2; const int H= 20; int main(int argc, char **argv) { time_t s; time(&s); srand((unsigned int) s); int x1, x2, y1, y2; x1 = rand() % (H - L+ 1) + L; x2 = rand() % (H - L+ 1) + L; y1 = rand() % (H- L+ 1) + L; y2 = rand() % (H - L + 1) + L; cout << "The Equation of the 1st line is : (" << (y2 - y1) << ")x+(" << (x1 - x2) << ")y+(" << (x2 * y1 - x1 * y2) << ") = 0\n"; int p1, p2, q1, q2; p1 = rand() % (H- L+ 1) + L; p2 = rand() % (H- L + 1) + L; q1 = rand() % (H - L + 1) + L; q2 = rand() % (H - L + 1) + L; cout << "The Equation of the 2nd line is : (" << (q2 - q1) << ")x+(" << (p1 - p2) << ")y+(" << (p2 * q1 - p1 * q2) << ") = 0\n"; int Y1 = (y2 - y1) * p1 + (x1 - x2) * q1 + (x2 * y1 - x1 * y2); //Y1 segment if (Y1 < 0) { int Y2 = (y2 - y1) * p2 + (x1 - x2) * q2 + (x2 * y1 - x1 * y2); //Y2 segment if (Y2 >= 0) cout << "Lines are intersecting"; else if (Y2 < 0) cout << "Lines are not intersecting"; } else if (Y1 >0) { int Y2 = (y2 - y1) * p2 + (x1 - x2) * q2 + (x2 * y1 - x1 * y2); if (Y2 <= 0) cout << "Lines are intersecting"; else if (Y2 >0) cout << "Lines are not intersecting"; } else cout << "The point lies on the line"; return 0; }
आउटपुट
The Equation of the 1st line is : (-3)x+(2)y+(1) = 0 The Equation of the 2nd line is : (-5)x+(-5)y+(130) = 0 Lines are intersecting The Equation of the 1st line is : (-1)x+(7)y+(-15) = 0 The Equation of the 2nd line is : (-4)x+(4)y+(-8) = 0 Lines are not intersecting