Алгоритм пересечения двух прямых #639278


#0 by Smit1C
Посоветуйте РАБОЧИЙ алгоритм определения пересечения двух прямых. Координаты пересечения желательны, но можно без них. В тырнете нашел два алгоритма, но они не совсем корректно работают.
#1 by Злопчинский
Книжки по геометрии за курс средней школы- советовать?
#2 by Smit1C
нет, спасибо. Нам бы лучше ссылочку))
#3 by alex74
угол наклона разный - значит пересекаются
#4 by Undefined vs NULL
что дано хоть?
#5 by forforumandspam
Площадь треугольника с знаком S=x1y2-x2y1+x2y3-x3y2+x3y1-x1y3 (вообще деленное на два, но нам нужен только знак площади) Отрезки АВ и CD пересекаются, если площади треугольников построенных из отрезка и двух точек второго отрезка имеют разный знак. S_ABC*S_ABD<=0 и S_CDA*S_CDB<=0
#7 by Mikeware
омиздинеть. у меня сын в 7 классе средней общеобразовательной школы сейчас это проходит...
#8 by forforumandspam
)
#9 by Злопчинский
> если площади треугольников построенных из отрезка и двух точек второго отрезка имеют разный знак. / не вкуряю, как ПЛОЩАДИ могут иметь "разный знак".. ;-)
#10 by Smit1C
вот и спроси у него))
#11 by Mikeware
год рождения, случаем, не "тот самый"?
#12 by Steel_Wheel
решить систему уравнений y = cx + d y = ax + b x, y -- точки пересечения
#13 by Undefined vs NULL
есть такое понятие - площадь со знаком, знак зависит от направления обхода периметра
#14 by Undefined vs NULL
блеать, ответь на
#15 by forforumandspam
Это если в формуле: S = x1y2-x2y1+x2y3-x3y2+x3y1-x1y3 x1y2+x2y3+x3y1 меньше, чем -x2y1-x3y2-x1y3
#16 by Mikeware
а зачем? я и так знаю... :-) я тоже учился в школе...
#17 by Rebelx
boolean transection (double ax1, double ay1, double ax2, double ay2, double bx1, double by1, double bx2, double by2) {     double v1=(bx2-bx1)*(ay1-by1)-(by2-by1)*(ax1-bx1);     double v2=(bx2-bx1)*(ay2-by1)-(by2-by1)*(ax2-bx1);     double v3=(ax2-ax1)*(by1-ay1)-(ay2-ay1)*(bx1-ax1);     double v4=(ax2-ax1)*(by2-ay1)-(ay2-ay1)*(bx2-ax1);     return ((v1*v2<=0) && (v3*v4<=0)); }
#18 by acsent
на плоскости или пространстве? прямые заданы по точкам?
#19 by bahmet
БГГГ! Если прямые не параллельны - они пересекаются!)
#20 by acsent
Бггг. В пространстве - нет
#21 by alex74
зачем решать, просто сравни а и с. Если они не равны, то прямые пересекаются.
#22 by Undefined vs NULL
в пространстве? садись - два)) стебусь
#23 by bahmet
насчет плоскости или пространства вопрос излишний. большинство одноэсников ток плоско думают )
#24 by Undefined vs NULL
садись два
#25 by Smit1C
а я нет)) первый отрезок c коорд (x1,y1; x2,y2), отрезок второй с кординатами (x3,y3; x4,y4). Всё на плоскости. спасибо, Кэп!
#26 by bahmet
в пространстве они мыслят ток когда сисьге обсуждают
#27 by alex74
Если (х1-х2)/(у1-у2) <> (х3-х4)/(у3-у4) то прямые пересекаются
#28 by Dmitry77
в не евклидовой геометрии пралельные прямые тоже пересекаются. А вообще автор укажи как заданы эти прямые. И дальше записывай систему линейных уравнений - если она решаема - то прямые пересекаются.  Поиск в интернете поможет тебе с условием когда система линейных уравнений решаема.
#29 by acsent
именно так, кроме случая когда совпадают
#30 by qeos
а сам сделать, силенок школьных не хватает?
#31 by Undefined vs NULL
плохо, придется случай деления на нуль выделять отдельно
#32 by acsent
в не евклидовой геометрии пралельные прямые тоже пересекаются. НЕ ПЕРЕСЕКАЮТСЯ по определению
#33 by Undefined vs NULL
хвалю, что исправился, 5!
#34 by alex74
когда прямые совпадают - они не пересекаются
#35 by Undefined vs NULL
по-крестьянски, запиши систему из 2-х уравнений, реши, если решение есть и единственно, то пересекаются, заодно и точку пересечения найдешь
#36 by Undefined vs NULL
почему, у них нет общих точек?
#37 by alex74
почитай школьный учебник математики, узнаешь
#38 by Азазелло
Автор, тебе нужно узнать, пересекаются ли прямые, или все же отрезки?
#39 by Undefined vs NULL
почитай, что такое пересечение множеств
#40 by Мимо Проходил
На плоскости?
#41 by Undefined vs NULL
#42 by Mikeware
хы. для прямых вывел, для парабол - вывел. Для кубических - почти вывел. а вот на гиперболах - встрял... лениво...
#43 by Undefined vs NULL
странная классификация кривых
#44 by alex74
внимательно почитай то что там написано: "Эти прямые параллельны, если А1В2 - А2В1 = 0 или к1 = к2" по этому определению совпадающие прямые параллельны
#45 by GANR
Сколько измерений в пространстве? Если измерений 2 - метод Гаусса самый простой и распространенный (но не эффективный). Если измерений - более 2, то прямые могут не пересекаться, тогда задача может свестись к задаче нахождения минимального расстояния между прямыми.
#46 by Undefined vs NULL
но ведь пересекаются! ))
#47 by Undefined vs NULL
для размерности 2 думаю метод Гаусса самое то
#48 by alex74
и все же почитай определения.
#49 by Smit1C
отрезки
#50 by Undefined vs NULL
что такое множества пересекаются?
#51 by alex74
это совсем другой разговор
#52 by Undefined vs NULL
это сложнее, но не намного
#53 by Мимо Проходил
1.Параллельные прямые не имеют общих точек. 2. Совпадающие прямые параллельны. 3. Совпадающие прямые имеют общие точки. Какое из трех утверждений ложно?
#54 by Undefined vs NULL
ок, параллельными прямыми называются прямые, которые лежат в одной плоскости и либо совпадают, либо не пересекаются зачем совпадающие выделили отдельно?
#55 by Smit1C
предчувствую скорое решение проблемы )))
#56 by alex74
#57 by alex74
затем, что если прямые совпадают - то они не пересекаются.
#58 by Undefined vs NULL
странная логика, тогда достаточно было бы написать: "параллельными прямыми называются прямые, которые лежат в одной плоскости и не пересекаются "
#59 by Мимо Проходил
есть два определения параллельности, как ни странно. В одном из них включают соврадающие, в другом нет.
#60 by Азазелло
а в не решение?
#61 by Smit1C
Спасибо всем! Вот решение: Функция ПрямыеПересекаются(ax1,ay1,ax2,ay2, bx1,by1,bx2,by2)        v1=(bx2-bx1)*(ay1-by1)-(by2-by1)*(ax1-bx1);    v2=(bx2-bx1)*(ay2-by1)-(by2-by1)*(ax2-bx1);    v3=(ax2-ax1)*(by1-ay1)-(ay2-ay1)*(bx1-ax1);    v4=(ax2-ax1)*(by2-ay1)-(ay2-ay1)*(bx2-ax1);    Возврат ((v1*v2<0) И (v3*v4<0));     КонецФункции; у меня до этого было: Возврат ((v1*v2<=0) И (v3*v4<=0)); поэтому не всегда правильно срабатывало
#62 by zak555
матрицу вычислил ?
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С