Необходимо написать программу на С++ или на питоне.
Две пересекающиеся прямые заданы точками: A(x1,y1), B(x2,y2) и C(x3,y3), D(x4,y4). Выполните последовательно следующие действия:
• Определите коэффициенты уравнения прямой в общем виде, для прямых AB CD.
• Определите координаты их точки пересечения

Ответы

Ответ дал: BobbyFresnel
0

#include <iostream>

using namespace std;

int getABC(double xA, double yA, double xB, double yB,

       double &A, double &B, double &C)

{

   A = yA - yB;

   B = xB - xA;

   C = xA * (yB - yA) + yA * (xA - xB);

   return 0;

}

int getM(double a1, double b1, double c1, double a2, double b2, double c2,

       double &xM, double &yM)

{        

   double d = a1 * b2 - a2 * b1;

   if (d != 0)

   {

       double dx = c2 * b1 - c1 * b2;

       double dy = a2 * c1 - a1 * c2;

       xM = dx / d;

       yM = dy / d;

       return 0;

   }

   else

       return -1;

}

int main()

{

   double x1, x2, x3, x4, y1, y2, y3, y4;

   cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;

   double a1, b1, c1, a2, b2, c2, xM, yM;

   getABC(x1, y1, x2, y2, a1, b1, c1);

   getABC(x3, y3, x4, y4, a2, b2, c2);

   cout << a1 << " " << b1 << " " << c1 << endl;

   cout << a2 << " " << b2 << " " << c2 << endl;

   int r = getM(a1, b1, c1, a2, b2, c2, xM, yM);

   if (r == 0)

       cout << xM << " " << yM;

   else

       cout << "No cross";

   return 0;

}

Приложения:
Вас заинтересует