Ворончихин, Е. К. Расстояние от точки до многогранника в пространстве / Е. К. Ворончихин. — Текст : непосредственный // Молодой ученый. — 2020. — № 30 (320). — С. 13-17. — URL: https://moluch.ru/archive/320/72811/ (дата обращения: 26.03.2025).
В данной работе рассмотрена задача поиска минимального расстояния между многогранником и точкой, не лежащей внутри него. Предложен алгоритм решения этой задачи и способ его применения в 3D-моделировании.
При реализации метода 3D-моделирования Ray Marching необходимым является определение минимального расстояния от некоторой точки до трехмерного объекта [1]. В данной статье предлагается алгоритм поиска такого расстояния от точки до выпуклого многогранника.
Математическая постановка задачи
Определение 1.
Пусть дан выпуклый многогранник и точка вне его. Минимальным расстоянием от этой точки до данного многогранника назовем длину отрезка между указанной точкой и ближайшей к ней точкой, принадлежащей многограннику.
Задача.
Втрехмерном евклидовом пространстве найти минимальное расстояние от точки
с известными координатами до выпуклого многогранника
с известными координатами вершин.
Обозначения, используемые в
статье
и
— точка вне многогранника и многогранник соответственно, между которыми определяется минимальное расстояние;
— плоскость, содержащая произвольные точки
, не лежащие на одной прямой;
— расстояние между объектами
и
, каждый из которых может быть точкой, прямой или плоскостью;
— минимальное расстояние между точкой
и выпуклым многогранником
;
,
,
— координаты точки
по осям
,
,
соответственно.
Алгоритм решения
Определим, какие из вершин многогранника
являются тремя ближайшими к
и назовем их
так, что
Проверим выполнение следующего условия:
Проекция точки
на
находится внутри треугольника
или на его границе
Рис. 1.
Пусть
— проекция
на плоскость
(рис. 1). Если она находится внутри треугольника
или на его границе, то выполнено равенство:
(см. доказательство Теоремы 1). Для того, чтобы проверить выполнение этого условия, находим координаты точки
.
Зная координаты точек
, составляем уравнение плоскости
и определяем координаты вектора нормали к ней. Используя координаты точки
и координаты направляющего вектора прямой
(являющегося вектором нормали
) составляем каноническое уравнение прямой
. Зная его и уравнение плоскости
определяем координаты точки
, которая является точкой пересечения прямой
и
. Далее проверяем принадлежность точки
треугольнику
. Метод проверки описан в статье [2]. При выполнении данного условия
. Находим его как расстояние между двумя точками в пространстве.
В случае невыполнения условия пункта 1, переходим к проверке следующего условия.
Проекция точки
на прямую
принадлежит отрезку
Рис. 2.
Пусть
— проекция
на прямую
(рис. 2). Если
принадлежит отрезку
, то выполнено равенство:
(см. доказательство Теоремы 2). Для проверки выполнения этого условия находим координаты точки
.
Для этого определяем координаты вектора
, являющегося направляющим вектором прямой
, и подставляем их в каноническое уравнение прямой
. Далее составляем уравнение плоскости
, проходящей через точку
перпендикулярно прямой
и находим координаты точки пересечения плоскости
с прямой
, являющиеся координатами точки
.
Если выполнена система неравенств:
, то
принадлежит отрезку
.
При выполнении данного условия
. Находим его как расстояние между двумя точками в пространстве.
При невыполнении пунктов 1 и 2 (рис. 3) задача сводится к поиску расстояния между
и
, поскольку расстояние от
до
не является ни расстоянием от
до ближайшей грани
, ни расстоянием от
до ближайшего ребра
.
Рис. 3.
Для проверки корректности данного алгоритма рассмотрим следующие теоремы.
Теорема 1.
Минимальное расстояние от некоторой точки
, лежащей вне выпуклого многогранника, до этого многогранника равно расстоянию от
до ближайшей к ней грани этого многогранника тогда и только тогда, когда проекция точки
на плоскость, содержащую эту грань, принадлежит треугольнику, образованному тремя ближайшими к
вершинами многогранника.
Доказательство
. Пусть
— ближайшие к
вершины многогранника
, при этом
. Пусть
— проекция точки
на
.
Пусть
лежит принадлежит треугольнику
. Тогда
— ближайшая к
точка треугольника
, поскольку
— высота пирамиды
. Поскольку треугольник
принадлежит ближайшей к
грани многогранника, то расстоянием от
до этой грани является длина отрезка
. Расстояние до ближайшей к
грани многогранника меньше, чем расстояние от
до любой другой грани многогранника, следовательно, длина отрезка
и есть минимальное расстояние от
до многогранника.
Пусть
находится вне треугольника
. Следовательно,
находится вне грани, которой принадлежит этот треугольник. Эта грань — единственная, принадлежащая плоскости
, поскольку многогранник выпуклый. Поэтому
не принадлежит многограннику, следовательно, отрезок
не является минимальным расстоянием от
до многогранника.
Теорема 2.
Минимальное расстояние от некоторой точки
, лежащей вне выпуклого многогранника, до этого многогранника равно расстоянию от
до ближайшего к ней ребра этого многогранника тогда и только тогда, когда проекция точки
на прямую, содержащую это ребро, принадлежит этому ребру, а проекция точки
на плоскость, образованную тремя ближайшими к
вершинами многогранника совпадает с проекцией
на ближайшее к ней ребро многогранника или лежит вне треугольника, образованного тремя ближайшими к
вершинами многогранника.
Доказательство.
Пусть
— ближайшие к
вершины многогранника
, при этом
;
— прямая, содержащая отрезок
;
— проекция точки
на
;
— проекция точки
на
.
Пусть
принадлежит отрезку
,
лежит вне треугольника
. Проведем плоскость
, содержащую
и не имеющую общих точек с двумя гранями многогранника, пересекающимися по ребру
. Все точки многогранника, за исключением точек, принадлежащих ребру
, будут находится по другую сторону плоскости
относительно точки
, поэтому расстояние от
до любой точки многогранника будет больше, чем расстояние от
до
. Поскольку
и есть расстояние от
до
и
принадлежит многограннику, длина отрезка
является минимальным расстоянием от
до многогранника.
Пусть
принадлежит отрезку
,
совпадает с
. В этом случае по теореме 1 минимальное расстояние от
до многогранника есть
. Поскольку
совпадает с
,
является минимальным расстоянием от
до многогранника.
Пусть
не принадлежит отрезку
. Отрезок
— единственное ребро многогранника, принадлежащее
, поскольку многогранник выпуклый, следовательно,
не принадлежит многограннику, и поэтому отрезок
не является минимальным расстоянием от
до многогранника.
Применение данного алгоритма
Ray Marching — одна из относительно новых технологий, используемых для рендеринга трехмерных сцен. При ее реализации для рендеринга непрозрачных объектов можно использовать поля расстояний со знаком, что позволит оптимизировать вычислительный процесс. Поле расстояния — это функция, определяющая расстояние от точки до поверхности объекта [3]. Вышеописанный метод может быть использован для определения минимальных расстояний до любых выпуклых многогранников.
Литература:
Ray Marching Distance Fields in Real-time on WebGL. — Текст: электронный // semanticscholar: [сайт]. — URL: https://pdfs.semanticscholar.org/a964/750aa212bd490d258221bc9756e7e58c5317.pdf (дата обращения: 18.07.2020).
Weisstein, Eric W. Triangle Interior. — Текст: электронный // mathworld: [сайт]. — URL: https://mathworld.wolfram.com/TriangleInterior.html (дата обращения: 18.07.2020).
GPU Ray Marching of Distance Fields / J. T. Lukasz. — Текст: электронный // DTU.compute: [сайт]. — URL: http://www2.imm.dtu.dk/pubdb/edoc/imm6392.pdf (дата обращения: 19.07.2020).
Основные термины(генерируются автоматически): минимальное расстояние, многогранник, вершина многогранника, выпуклый многогранник, расстояние, длина отрезка, проекция, треугольник, грань, уравнение плоскости.
В рамках данной работы рассматривается вопрос нахождения оптимального пути между двумя точками в трехмерном пространстве, рассматриваются соответствующие методы решения.
Целью научного исследования является формализация задач о построении оптимальных выпуклых тел в форме задач оптимального управления и нелинейного программирования, исследование свойств полученных задач, разработка, реализация и сравнение численных ме...
Рассматривается задача разбиения многосвязного ортогонального полигона на прямоугольные области. Критерием оптимизации является минимизация протяженности стыков между прямоугольниками, образующими разбиение. Предложена модификация модели Бизли для ре...
В данной статье приводится описание комбинированного алгоритма линейной оптимизации с поиском максимального потока на графе на примере оптимизации работы железнодорожной станции со сложной топологией путей.
Настоящая статья посвящена выводу формул и разработке алгоритма поиска простых чисел в заданном числовом интервале. Данный алгоритм также применим для проверки факта, является ли данное число простым или нет.
Найдено точное решение одной модели движения жидкости в канале прямоугольной формы. Это решение может быть использовано для проверки работоспособности численных алгоритмов.
Данная статья посвящена обзору различных способов решения геометрических задач с помощью метода «золотого сечения». Рассмотрен математический термин «золотое сечение», его основные свойства.
В рамках данной работы рассматривается вопрос нахождения оптимального пути между двумя точками в трехмерном пространстве, рассматриваются соответствующие методы решения.
Целью научного исследования является формализация задач о построении оптимальных выпуклых тел в форме задач оптимального управления и нелинейного программирования, исследование свойств полученных задач, разработка, реализация и сравнение численных ме...
Рассматривается задача разбиения многосвязного ортогонального полигона на прямоугольные области. Критерием оптимизации является минимизация протяженности стыков между прямоугольниками, образующими разбиение. Предложена модификация модели Бизли для ре...
В данной статье приводится описание комбинированного алгоритма линейной оптимизации с поиском максимального потока на графе на примере оптимизации работы железнодорожной станции со сложной топологией путей.
Настоящая статья посвящена выводу формул и разработке алгоритма поиска простых чисел в заданном числовом интервале. Данный алгоритм также применим для проверки факта, является ли данное число простым или нет.
Найдено точное решение одной модели движения жидкости в канале прямоугольной формы. Это решение может быть использовано для проверки работоспособности численных алгоритмов.
Данная статья посвящена обзору различных способов решения геометрических задач с помощью метода «золотого сечения». Рассмотрен математический термин «золотое сечение», его основные свойства.