Сегмент линии в треугольнике - PullRequest
1 голос
/ 19 ноября 2009

Как мы можем проверить, попадает ли отрезок линии частично или полностью в треугольник?

Приветствие.

Ответы [ 4 ]

4 голосов
/ 19 ноября 2009

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

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

Если линия проходит через треугольник, вы сравниваете точки, где линия пересекает стороны (или углы) треугольника, с конечными точками сегмента, чтобы увидеть, является ли сегмент частью линии, пересекающей треугольник. 1005 *

2 голосов
/ 19 ноября 2009

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

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

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

Проверка 1. может быть выполнена с помощью этой методики. Проверка 2. может быть выполнена алгоритмами, которые проверяют, пересекаются ли два сегмента. Одним из примеров того, как это можно сделать, является здесь .

1 голос
/ 19 ноября 2009

Если одна из точек отрезка находится внутри треугольника => частично, если обе = = полностью

Точка O находится внутри треугольника тогда и только тогда, когда сумма углов AOB, BOC, COA равна 360 град.

Приветствия

Глеб

0 голосов
/ 26 декабря 2011

Лучший алгоритм выглядит следующим образом:

Почему бы не сделать это:

  • Если обе конечные точки отрезка находятся внутри или внутри треугольника, то отрезок должен находиться внутри или внутри треугольника.

Чтобы проверить, лежит ли точка внутри треугольника:

  • Встаньте в точку, посмотрите на каждую вершину треугольника
  • Если вы посмотрите на каждую вершину по часовой / против часовой стрелки, значит, вы внутри или снаружи
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...