এখানে একটি C++ প্রোগ্রাম দেওয়া হলো যা আভভ-বিলো প্রিমিটিভ ব্যবহার করে দুটি লাইন ইন্টারসেক্ট করে কিনা তা টেস্ট করে। এটি লাইন সেগমেন্টের সাথে লাইন ইন্টারসেক্ট করে কিনা টেস্ট করতে ব্যবহার করা যায়। এটি তখনই হয় যখন সেগমেন্টের একটি এন্ডপয়েন্ট লাইনের বামপাশে থাকে এবং অন্যটি ডানপাশে।
অ্যালগরিদম
শুরু
প্রথম লাইনের সমীকরণের জন্য, কম্পাইলেশনের প্রতিবার rand ব্যবহার করে x এবং y-এর কোয়ফিশিয়েন্টের জন্য র্যান্ডম নম্বর জেনারেট করো।
দ্বিতীয় লাইনের সমীকরণের জন্য, কম্পাইলেশনের প্রতিবার rand ব্যবহার করে x এবং y-এর কোয়ফিশিয়েন্টের জন্য র্যান্ডম নম্বর জেনারেট করো।
লাইন ১-এর সেগমেন্ট বের করো Y1 হিসেবে।
যদি (Y1 < 0)
লাইন ২-এর সেগমেন্ট বের করো
যদি (Y2 >= 0)
প্রিন্ট করো "they are intersecting"।
অন্যথায় যদি (Y2 < 0)
প্রিন্ট করো "they are not intersecting"।
অন্যথায় যদি (Y1 > 0)
লাইন ২-এর সেগমেন্ট বের করো
যদি (Y2 <= 0)
প্রিন্ট করো "they are intersecting"।
অন্যথায় যদি (Y2 > 0)
প্রিন্ট করো "they are not intersecting"।
শেষ।উদাহরণ কোড
#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 সেগমেন্ট
if (Y1 < 0) {
int Y2 = (y2 - y1) * p2 + (x1 - x2) * q2 + (x2 * y1 - x1 * y2); // Y2 সেগমেন্ট
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