Проверить пересекаются ли отрезки, что я делаю не так?
Программа должна определять, где пресекаются отрезки, если не пресекаются, то возвращать null.
К сожалению, метод не работает с некоторыми отрезками, например с тем, что сейчас указан в ней.
Буду очень благодарен, если поможете понять, как нужно отредактировать условие.
Point intersection() {
double x1 = 0; // first line start
double y1 = 0;
double x2 = 1; // first line end
double y2 = 1;
double x3 = -1; // second line start
double y3 =-1;
вкратце как надо:
* создаются уравнения прямых через 2 точки
* проверяются пересечения двух уравнений прямых - есть ли точка пересечения (может не быть)
* проверяется принадлежность точки пересечения каждому отрезку (или явно или лучше параметрически) (может быть в уравнении но не в диапазоне отрезка)
однако так делать нельзя изза погрешности double if (y2 == y1) k1 = 0; обычно проверяют через if(Abs(y2 - y1) < epsilon) (скажем 0.0001 но зависит от задач)