Skip to content

Latest commit

 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Запуск

Откройте папку /triangles_3d/build и выполните команды "cmake ..", "make"

Алгоритм

  1. Считываем треугольники
  2. Если это 2 точки - проверяем совпадают ли их координаты. Если совпадают - есть пересечение. Если нет - нет пересеченияю. Если это не 2 точки - далее.
  3. Если только 1 треугольник - точка - проверяем лежат ли они в одной плоскости. Если лежат - проверяем пересечение (как пересечение треугольников в одной плоскости, описанное ниже). Если они не лежат в одной плоскости или это не точки - идем далее.
  4. Далее проверяем что плоскости не параллельны. Если они паралельны проверяем на совпадения плоскостей и пересекаем треугольников в одной плоскости. Если совпадают - есть пересечение. Если нет - нет пересечения. Если плоскости не параллельны - идем далее.
  5. Проверям что все точки одного треугольника не находятся по одну сторону от второго. Если да - нет пересечение. Если нет - идем далее.
  6. Пересекаем плоскости, получаем прямую пересечения плоскостей.
  7. Пересекаем эту прямую с обоими треугольниками, получаем 4 точки пересечения.
  8. Проверям что порядок этих точек чередуется (то есть чередуются точки пересечения сторон треугольника А с прямой пересечения плоскостей чередуется и точками пересечения сторон треугольника А и прямой пересечения плоскостей). Другие допустимые варианты: когда точки одного треугольника содержатся в точках другого или хотя бы 1 из них совпадает. В противном случае пересечения нет.

Для проверки пересечения треугольников в одной плоскости проверяем что хотя бы 1 точка находится внутри другого треугольника, то есть делит треугольник на 3 части, сумма площадей которого = сумме площадей исходного.

Так же для повышения производительности пространство разбивается на другие подпространства и пересечения треугольников ищется внутри этих подпространств. Этот метод называется октодеревом

alt text

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages