![]() |
|
![]() ![]() ![]() |
|
Romka |
|
|||
Unregistered |
Добрый день!
Подскажите пожалуйста способ определения пересечения двух отрезков в трехмерном пространстве. Сам я определяю по пересечению проекций отрезков на плоскости, но это как-то коряво на мой взгляд... Заранее благодарен. С уважением, Роман. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Самый верный способ: если система из двух уравнений, описывающих прямые, имеет решение, значит они пересекаются. Записать уравнения прямых, если известны отрезки, - не проблема.
|
|||
|
||||
pike |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 4.3.2003 Репутация: нет Всего: нет |
Можно определить точку пересечения проекций на плоскости XY и, если в этой точке Z-ы линий совпадают - то пересекаются.
|
|||
|
||||
Unregistered |
|
|||
Unregistered |
Если имеется ввиду уравнение прямой P = P1 + t ( P2 - P1 ), то для 3D должна быть (по идее )система из трех уравнений:
x1 + ta (x2 - x1) = x3 + tb (x4 - x3) y1 + ta (y2 - y1) = y3 + tb (y4 - y3) z1 + ta (z2 - z1) = z3 + tb (z4 - z3) Вот тут то и сказался недостаток образования, я уже и так и эдак вертел - результаты плачевные ![]() С уважением, Роман. |
|||
|
||||
pike |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 4.3.2003 Репутация: нет Всего: нет |
Так что у тебя дано изначально?
Координаты концов отрезков? |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Прямые в трех-мерном пространстве определяются либо пересечением двух плоскостей:
A1x+B1y+C1z+D1=0 A2x+B2y+C2z+D2=0 либо, если прямая проходит через две точки: (x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1) Последний нерелевантен для этого случая, таким образом надо решить систему уравнений: A1x+B1y+C1z+D1=0 A2x+B2y+C2z+D2=0 A3x+B3y+C3z+D3=0 A4x+B4y+C4z+D4=0 гдe два последних уравнения - это уравнения плоскостей, образующих вторую прямую. Можно решить, найдя дитерменант матрицы... этот способ легко имплементировать в программе. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
Unregistered |
|
|||
Unregistered |
Большое спасибо за совет!
Эх... Плохо быть бестолковым, буду разбираться. С уважением, Роман. |
|||
|
||||
pike |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 4.3.2003 Репутация: нет Всего: нет |
... либо так
y=f(x) z=f(x) ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |