Минимальное расстояние между двумя повернутыми прямоугольниками с различными углами

Как я могу вычислить минимальное расстояние между двумя прямоугольниками?
Это легко для прямоугольников, которые не имеют никаких углов (т.е. 0 градусы один), но для повернутых прямоугольников с любыми различными углами, которые я не знаю, как сделать это.

Можно ли рекомендовать какой-либо путь?

WhiteFlare

6
задан eraxillan 23 March 2015 в 20:53
поделиться

2 ответа

  1. Проверьте, пересекаются ли они первыми (попробуйте взять точку из одного прямоугольника и проверьте, находится ли она внутри другого прямоугольника).
    Есть несколько способов сделать это. Один из способов ( не самый лучший , но легко объяснимый) заключается в следующем.
    Пусть A1 , A2 , A3 , A4 - точки прямоугольника, T - другая точка .
    Затем подсчитайте квадраты для треугольников:
    S1 = (A1, A2, T) , S2 = S (A2, A3, T) , S3 = S (A3 , A4, T) , S4 = S (A4, A1, A2) .
    Пусть S_rectangle будет прямоугольным квадратом.
    Тогда T лежит внутри прямоугольника <=> S1 + S2 + S3 + S4 = S_rectangle .

    Если реакционные углы не пересекаются, выполните следующие действия.

  2. Вычислить координаты всех 8 точек 2 прямоугольников.

  3. Возьмите минимум среди всех 4 * 4 = 16 пар точек (точек из разных прямоугольников).
    Обозначим его min_1 .

  4. Затем возьмите некоторую точку из первого прямоугольника (4 способа сделать это),
    возьмите 4 сегмента другого прямоугольника (4 способа),
    проверьте, что любой из перпендикуляра из этой точки в этот сегмент попадает внутрь сегмента.
    Возьмите минимум таких перпендикуляров. Обозначим его min_2 .

  5. То же, что и в 3 , но возьмите точку из второго прямоугольника, строки из первого:
    вы получите min_3 .

  6. result = min (min_1, min_2, min_3)

1
ответ дан 17 December 2019 в 20:29
поделиться
  1. Вычислить координаты всех 8 точки 2-х прямоугольников.
  2. Возьмите две самые низкие дистанции среди все 4 * 4 = 16 пар точек (точки из разных прямоугольников). И получите 3 балла P1, P2 и P3. {Два из них принадлежат одному прямоугольнику а третий - другому}
  3. 2 точки принадлежат одному прямоугольнику следует рассматривать как сегмент, сейчас найти короткое расстояние между отрезок и третья точка.
1
ответ дан 17 December 2019 в 20:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: