Форум программистов, компьютерный форум, киберфорум
Геометрия
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/55: Рейтинг темы: голосов - 55, средняя оценка - 4.87
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
1

Принадлежность точки треугольнику в трехмерном пространстве

24.09.2018, 12:33. Показов 10531. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.

Есть треугольник с координатами (x1,y1,z1),(x2,y2,z2),(x3,y3,z3).
Есть точка с координатами (x,y,z), которая принадлежит той же плоскости что и треугольник.
Есть вектор нормали плоскости n, которой принадлежат и треугольник и точка.

Нужно определить принадлежит ли точка треугольнику векторным методом (так как он самый быстрый).
Для двумерного случая я нагуглил как, но расширить на трехмерный не получилось.

Добавлено через 42 минуты
Update:
Нашел кое-что:
Проверить знаки у трёх скалярных произведений нормали плоскости на векторное призведение двух векторов, которые образуют проверяемая точка и две точки на стороне треугольника. Если все три знака совпадают - значит точка внутри трегольника.
Не могу понять как это выразить в формулах. Прошу помочь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2018, 12:33
Ответы с готовыми решениями:

Поворот точки вокруг другой точки в трехмерном пространстве
Есть точка A с координатами . Есть точка B -центр поворота . Я поворачиваю A на 90 градусов по...

Принадлежность точки отрезку в пространстве
Добрый день,нужна подфункция для проверки принадлежности точки отрезку на прямой отрезок задан 2...

принадлежность точки треугольнику
как определить принадлежность точки треугольнику?Если с векторами,то объясните получше.Венктора не...

Принадлежность точки треугольнику
Нужно сделать программу, в которой при 3х кликах на форму (в разных местах) эти 3 точки соединялись...

8
115 / 99 / 30
Регистрация: 15.07.2015
Сообщений: 262
24.09.2018, 12:48 2
Лучший ответ Сообщение было отмечено MikeNew как решение

Решение

треугольник ABC, точка М, нормаль n. Если знаки смешанных произведений векторов [n,MA,MB] ,[n,MA,MC], [n,MB,MC] совпадают, то точка внутри треугольника.
1
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
25.09.2018, 08:59  [ТС] 3
Цитата Сообщение от EasyHelp SU Посмотреть сообщение
треугольник ABC, точка М, нормаль n. Если знаки смешанных произведений векторов [n,MA,MB] ,[n,MA,MC], [n,MB,MC] совпадают, то точка внутри треугольника.
Не работает, сделал по этому алгоритму простейший случай и проверил:

C
1
2
3
4
5
6
7
8
9
10
n(0,1,0)
A(205, 34,  22), B(205, 34, 23), C(206,34,23)
М(205.75, 34, 22.25)
MA = М - A = (0.75, 0, 0.25)
MB = M - B = (0.75, 0, -0.75);
MC = M - C = (-0.25, 0, -0.75);
 
[n,MA,MB] = 0.75;
[n,MA,MC] = 0.5;
[n,MB,MC] = 0.75;
Знаки смешанных произведений совпадают, а точка лежит вне треугольника.
Вопрос остается открытым.
Или я где-то неправильно посчитал?
0
115 / 99 / 30
Регистрация: 15.07.2015
Сообщений: 262
25.09.2018, 09:07 4
Вот это вызывает сомнения:
Проверить знаки у трёх скалярных произведений нормали плоскости на векторное призведение двух векторов, которые образуют проверяемая точка и две точки на стороне треугольника. Если все три знака совпадают - значит точка внутри трегольника.
. Знак смешанного произведения меняется при перестановке любых двух слагаемых. [n,MA,MB]=-[n,MB,MA]. А по алгоритму не сказано, в каком порядке брать вектора из точки.
1
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
25.09.2018, 12:36  [ТС] 5
Цитата Сообщение от EasyHelp SU Посмотреть сообщение
А по алгоритму не сказано, в каком порядке брать вектора из точки.
Если не сложно пожалуйста поясните, что имеется в виду по "порядком"?

Добавлено через 6 минут
Update:
Разобрался, все заработало, большое спасибо за помощь!

Если кому вдруг понадобится:
C
1
2
3
[n,MA,MB] = 0.75;
[n,MB,MC] = 0.5;
[n,MC,MA] = 0.75;
Добавлено через 3 часа 5 минут
Что-то я поторопился.
Все-таки не работает, хотя пробовал самые разные комбинации. Вблизи к краям все равно неправильно определяет.
0
482 / 270 / 57
Регистрация: 08.10.2015
Сообщений: 1,159
25.09.2018, 14:56 6
MikeNew, все точки должны обходиться в одном направлении относительно нормали, например по часовой стрелке. Тогда все должно работать.
1
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
25.09.2018, 15:54  [ТС] 7
Цитата Сообщение от САлександр Посмотреть сообщение
MikeNew, все точки должны обходиться в одном направлении относительно нормали, например по часовой стрелке. Тогда все должно работать.
Должно, но не работает. Все по правилам сделал:

C
1
2
3
4
5
6
7
MA = М - A 
MB = M - B
MC = M - C
 
k = dot(N, cross(MA,MB);
m = dot(N, cross(MB,MC);
n = dot(N, cross(MC,MA);
Если k,m,n одного знака или равны нуля - точка принадлежит треугольнику.

Этот алгоритм должен работать, но не работает. Я даже на всякий случай на онлайн-калькуляторе проверял - думал может я неправильно смешанное произведение считаю.
Нормаль направлена правильно, на всякий случай даже пробовал ее знак менять.
Миниатюры
Принадлежность точки треугольнику в трехмерном пространстве  
0
482 / 270 / 57
Регистрация: 08.10.2015
Сообщений: 1,159
25.09.2018, 22:14 8
MikeNew,
Посмотрим 2 случая:
1. Проекция токи на плоскость треугольника (плоскость в которой лежит треугольник) не попадает в треугольник.
2. Проекция токи на плоскость треугольника попадает в треугольник.
Приведенное Вами решение - решение для 1. В случае 2 надо еще проверить на попадание точки на саму плоскость. В общем случае - сначала Ваше решение, потом, если знаки одинаковы, то проверка на равенство нулю, например произведения https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{n}\times(\vec{MA}\times \vec{MB})

Добавлено через 11 минут
Или, что проще, для случая 2 проверить на равенство нулю, например произведение https://www.cyberforum.ru/cgi-bin/latex.cgi?\vec{n}\cdot\vec{MA}

Добавлено через 10 минут
Только сейчас заметил, что
Цитата Сообщение от MikeNew Посмотреть сообщение
Есть точка с координатами (x,y,z), которая принадлежит той же плоскости что и треугольник.
И опять я плохо прочитал условие!
Тогда - просто Ваше решение.
1
8 / 8 / 0
Регистрация: 16.07.2013
Сообщений: 149
26.09.2018, 12:18  [ТС] 9
Существуют онлайн-калькуляторы или просто сторонние программы для проверки таких случаев? На попадание точки в треугольник в трехмерных координатах?
0
26.09.2018, 12:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2018, 12:18
Помогаю со студенческими работами здесь

Принадлежность точки к треугольнику
помогите подредактировать программу для определения принадлежности точки (x,y) заданной фигуре....

Принадлежность точки треугольнику
Доброго дня Сделал, используя формулу плоскости по двум точкам. Но либо не допонял что-то, либо не...

Определить принадлежность точки треугольнику
begin writeln ('Введіть x1,y1,x2,y2,x3,y3'); readln (x1,y1,x2,y2,x3,y3);...

Определить принадлежность точки треугольнику
В декартовой системе координат на плоскости заданы координаты вершин треугольника и ещё одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru