LINUX.ORG.RU

Пересечение луча и треугольника

 


0

1

Имеется трехмерный треугольник, заданный тремя вершинами V1, V2, V3, имеется луч заданный точкой начала и вектором направления (на самом деле меня интересует отрезок, а не бесконечный луч, но проверить расстояние легко). Хочу получить глобальные координаты точки пересечения (если она есть, разумеется).

В проекте подключена библиотека GLM, в ней есть функция intersectRayTriangle, которая по исходным данным находит точку пересечения и расстояние. Проблема в том, что координаты точки получаются двумерные в плоскости треугольника (при этом система координат построена из векторов V1-V2 и V1-V3 - она легко может быть даже непрямоугольная). Мне интересно, как перенесети их в систему координат мира.

★★★★★

Ты должен мне новый могз

Имеется трехмерный треугольник, заданный тремя вершинами V1, V2, V3

мой взорвался при попытке представить «трехмерный треугольник заданный тремя вершинами» – только «треугольная плоскость» в пространстве

координаты точки получаются двумерные в плоскости треугольника (при этом система координат построена из векторов V1-V2 и V1-V3 - она легко может быть даже непрямоугольная). Мне интересно, как перенесети их в систему координат мира.

вершины треугольника заданы на плоскости (2 координаты) или в пространстве (3 координаты)?

а вообще пользуйся Декартовым трехмерным пространством, а потом пересчитывай конвертируй в свою систему координат

anonymous
()

Mamma mia! Ты какие-то матпакеты подключаешь, чтобы такую элементарщину посчитать? Загугли «пересечение прямой и плоскости». Постыдись!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

Аааа я вспомнил это было на JoyReactor, когда имел несчастье там сидеть.

baist ★★
()

В кои-то веки соглашусь с Eddy_Em: нафига тут OpenGL напрягать?

Miguel ★★★★★
()

как перенесети их в систему координат мира

стыдно

baist ★★
()

Скалярное произведение вектора точки на нормаль плоскости даст точку, ну и дальше считаешь барицентрические координаты и смотришь где оно и выходит ли за пределы. Где-то 10 строчек на C.

slapin ★★★★★
()

Ммммм, задача по геометрии со звёздочкой!

grem ★★★★★
()
Ответ на: комментарий от anonymous

Так уже давно. От программиста требуют не знание математики и физики, а умение работать в команде, писать грамотные тексты, знать иностранные языки, психологию. А математиков-программистов надо одного на десяток остальных.

monk ★★★★★
()
Ответ на: комментарий от Eddy_Em

Загугли

Эдик, что ты пишешь … Какой может быть гугл у человека с твоими убеждениями??!

Владимир

anonymous
()
Ответ на: комментарий от monk

умение работать в команде, писать грамотные тексты, знать иностранные языки, психологию.

требуют сегодня не только от программистов. Только к программированию это имеет примерно такое же отношение, как и физика. «Программирование без математики» вот как такое возможно?! // У ТС задача из области геометрии и «да» знать о ней не обязательно для написания кода программы – я не об этом пишу

anonymous
()
Ответ на: комментарий от KivApple

«Оператор ЭВМ» - профессия в ПТУ при совке. А программирование на Бейсике было и на информатике в средней школе.

baist ★★
()
Ответ на: комментарий от anonymous

требуют сегодня не только от программистов.

От нормальных инженеров не требуют. Потому что у нормальных инженеров ценны именно их технически инженерные знания. А у программистов 90% работы — общение с заказчиком (иногда в качестве такового выступает аналитик-постановщик).

«Программирование без математики» вот как такое возможно?!

Легко. 90% задач на FoxPro, 1C, VB, bash, perl, awk никакой математики не требуют.

monk ★★★★★
()
Ответ на: комментарий от monk

FoxPro, 1C … никакой математики не требуют

жесть же?

anonymous
()
Ответ на: комментарий от vlad9486

Спасибо, это было то, что мне нужно. Ответ, конечно, на поверхности лежал, а я не видел, думал придётся какие-нибудь матрицы для преобразования системы координат делать и т. д.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Следующий шаг - убрать опенжл и сделать все самому:-)

AntonI ★★★★
()
Ответ на: комментарий от KivApple

Я именно это и сделал. Координаты базисных векторов это и есть матрица преобразования системы координат.

vlad9486
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.