Вычислить вершины ограничительной рамки - PullRequest
3 голосов
/ 12 февраля 2012

Я озадачен этой проблемой, которая выглядит очень просто. У меня есть 2D ограничивающий прямоугольник, у которого есть две угловые точки. Я хочу определить оставшиеся два угловых пункта. Важное ограничение: ограничивающий прямоугольник может быть ориентирован любым образом и не обязательно выровнен по горизонтальной и вертикальной осям (то есть осям x и y).

Я хочу сделать это так, как хочу, чтобы растр сканировал ограничивающую рамку.

Ответы [ 2 ]

4 голосов
/ 12 февраля 2012

Я уверен, что это не тот ответ, который вы хотите услышать, однако, как уже упоминалось выше, двух диагонально противоположных точек недостаточно для определения прямоугольника на 2D-поверхности. Поскольку изображение стоит тысячи слов, вот изображение двух разных прямоугольников, имеющих одинаковые диагонально противоположные точки.

enter image description here

0 голосов
/ 12 февраля 2012

Как уже упоминалось в комментариях, у вас нет полной информации. Позвольте мне объяснить: нарисуйте фиктивный прямоугольник, для которого вы хотите найти точки - убедитесь, что прямоугольник вращается, то есть не «плоский».

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

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

Example figure

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