#0
by Smit1C
Посоветуйте РАБОЧИЙ алгоритм определения пересечения двух прямых. Координаты пересечения желательны, но можно без них. В тырнете нашел два алгоритма, но они не совсем корректно работают.
#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 классе средней общеобразовательной школы сейчас это проходит...
#9
by Злопчинский
> если площади треугольников построенных из отрезка и двух точек второго отрезка имеют разный знак. / не вкуряю, как ПЛОЩАДИ могут иметь "разный знак".. ;-)
#13
by Undefined vs NULL
есть такое понятие - площадь со знаком, знак зависит от направления обхода периметра
#15
by forforumandspam
Это если в формуле: S = x1y2-x2y1+x2y3-x3y2+x3y1-x1y3 x1y2+x2y3+x3y1 меньше, чем -x2y1-x3y2-x1y3
#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)); }
#23
by bahmet
насчет плоскости или пространства вопрос излишний. большинство одноэсников ток плоско думают )
#25
by Smit1C
а я нет)) первый отрезок c коорд (x1,y1; x2,y2), отрезок второй с кординатами (x3,y3; x4,y4). Всё на плоскости. спасибо, Кэп!
#28
by Dmitry77
в не евклидовой геометрии пралельные прямые тоже пересекаются. А вообще автор укажи как заданы эти прямые. И дальше записывай систему линейных уравнений - если она решаема - то прямые пересекаются. Поиск в интернете поможет тебе с условием когда система линейных уравнений решаема.
#32
by acsent
в не евклидовой геометрии пралельные прямые тоже пересекаются. НЕ ПЕРЕСЕКАЮТСЯ по определению
#35
by Undefined vs NULL
по-крестьянски, запиши систему из 2-х уравнений, реши, если решение есть и единственно, то пересекаются, заодно и точку пересечения найдешь
#42
by Mikeware
хы. для прямых вывел, для парабол - вывел. Для кубических - почти вывел. а вот на гиперболах - встрял... лениво...
#44
by alex74
внимательно почитай то что там написано: "Эти прямые параллельны, если А1В2 - А2В1 = 0 или к1 = к2" по этому определению совпадающие прямые параллельны
#45
by GANR
Сколько измерений в пространстве? Если измерений 2 - метод Гаусса самый простой и распространенный (но не эффективный). Если измерений - более 2, то прямые могут не пересекаться, тогда задача может свестись к задаче нахождения минимального расстояния между прямыми.
#53
by Мимо Проходил
1.Параллельные прямые не имеют общих точек. 2. Совпадающие прямые параллельны. 3. Совпадающие прямые имеют общие точки. Какое из трех утверждений ложно?
#54
by Undefined vs NULL
ок, параллельными прямыми называются прямые, которые лежат в одной плоскости и либо совпадают, либо не пересекаются зачем совпадающие выделили отдельно?
#58
by Undefined vs NULL
странная логика, тогда достаточно было бы написать: "параллельными прямыми называются прямые, которые лежат в одной плоскости и не пересекаются "
#59
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)); поэтому не всегда правильно срабатывало
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- (ЗУП) отчет по лицевым счетам - вывести всех людей у которых нет счета в банке
- ЗиУП. Стаж ПФР и территориальные условия РКС. Проблема
- СКД Вычислить процент и соединить со шкалой процентных ставок
- Оповещение "Настройте резервное копирование"
- Вывод реквизитов для выбора
- какой вид движения денежных средств присваивать статье купля/продажи валюты
- Несколько баз на одном сервере 1с
- Не верно работает отбор в построителе
- УПП, УСО учет перемещений
- СКД: Как одинаковые номенклатуры выводить одной строкой?
- 1С8.2 Как можно(если можно) поменять программно рабочую дату?
- СКД не сохранять пользовательские настройки
- Можно ли запустить обработку из командной строки с параметрами?
- Программное создание "Реализация товаров и услуг"
- Установка программного ключа 1с8
- Сервер и ComОбъект
- Не обновляются формы при объединении конфигураций. Чего я не знаю?
- JOB: Сравнить данные табличной части и регистра накопления
- Где в 2008 MS сервере лежит диспетчер служб терминалов?
- v7: Запрос по БухИтогам, объединение балансового и забалансового счетов