![]() |
|
![]() ![]() ![]() |
|
antoniobanderas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.10.2006 Репутация: нет Всего: нет |
как найти точку пересечения?
|
|||
|
||||
Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 1 Всего: 61 |
antoniobanderas,
Если все задано в координатах, то: 1. ищешь точку пересечения прямой с прямыми, содержащими стороны треугольника. Если неудача, то просто выбираешь, другую прямую. (прямые могут быть параллельные, пересечения с этой не будет) Это делается через решение системы двух уравнений. например, исходная прямая AX + BY +C = 0 (1) прямая, содержащая сторону: уравнение прямой, проходящей через 2 точки (Х - Х0) / (X1 - X0) = (Y - Y0) / (Y1 - Y0), где (X0, Y0) - одна точка (вершина треугольника), (Х1. Y1) - другая. получаем прямую A1 X = B1Y + C1 = 0 (2) Решаем систему (1), (2), находим точку пересечения 2. Проверить, принадлежит ли найденная точка стороне треугольника, она лежит, на ПРЯМОЙ, а нас интересует отрезок Проверка: координата Х найденной точки должна быть между X0 и X1 (элементарно, Ватсон) Вроде все, осталось только реализовать Это сообщение отредактировал(а) Kuvaldis - 7.10.2006, 13:38 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
antoniobanderas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.10.2006 Репутация: нет Всего: нет |
спасибо конечно но я имел ввиду нахождение точки пересечения прямой с тругольком в трехмерном пространстве (для рейтрейсинга)
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: нет Всего: 149 |
Так что сразу не сазал? ![]() Это ж ведь очень важно ![]() Тогда поступаем так: нужно узнать паралельны ли прямая и плоскость треугольника (перпендикулярность нормали к плоскости и направляющей прямой) 1) если прямая и плоскость трейгольника не паралельны, то ищем их точку пересечения (она одна) и последлвательно подставляем в уравнение сторон треугольника и "Проверить, принадлежит ли найденная точка стороне треугольника, она лежит, на ПРЯМОЙ, а нас интересует отрезок Проверка: координата Х найденной точки должна быть между X0 и X1 (элементарно, Ватсон)" 2) если паралельны, то нужно узнать находиться ли прямая в плоскости треугольника (взять любую точку прямой и подставить в уравнение плоскасти) Если нет, то и пересечения нет, а если да, то см пост Kuvaldis. Добавлено @ 14:27 antoniobanderas, только не говори теперь, что тебе нужно пересечение со всем "телом" треугольника ![]() Если так, то в 1) нужно составить сисему неравенств для этого треугольника и проверить найденную точку на удовлетворение ему Добавлено @ 14:28 ![]() ![]() ![]() ![]() |
|||
|
||||
antoniobanderas |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.10.2006 Репутация: нет Всего: нет |
а как найти саму точку пересечения прямой и плоскости?
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: нет Всего: 149 |
Решить систему из уравнений прямой и плоскости (уравнение прямой в 3Д -- система двух уравнений плоскостей). |
|||
|
||||
Ashlander |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 19.9.2004 Репутация: нет Всего: нет |
Здравствуйте ...в продолжение темы, вопрос
дано отрезок (две точки) и плоскость (три точки)... необходимо найти точку пересечения. один из вариантов решения _здесь_ учитывая, что отрезок все же не прямая и может не доставать до плоскости... то _здесь_ но есть решение в виде вычисления системы уравнений (грубо говоря загнать все в матрицу)... чесно говоря вот сижу и ломаю голову, мне в голову приходит только один вариант когда это возможно -
либо в моем случае "взять" еще две точки для формирования этих двух пересекающихся плоскостей... а проблемма собственно в том, что вроде бы есть второй вариант, именно для заданных точками прямой... т.е. система уравнений, ... наверное под конец дня мне совсем плохо стало, потому что найти такую систему уравнений мне не получается... может кто подскажет куда рыть, ну или смилуется и выложит формулки.. спасибо Это сообщение отредактировал(а) Ashlander - 23.11.2006, 17:49 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |