|
Алгоритм пересечения двух прямых | ☑ | ||
---|---|---|---|---|
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) матрицу вычислил ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |