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