Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Путь между прямоугольниками / 8 сообщений из 8, страница 1 из 1
24.01.2012, 00:18
    #37628076
NewFinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
Задача возможно где-то уже встречалась, но я не нашёл внятного алгоритма, пока.

Есть пара прямоугольников любых размеров. Они могуть распологаться на плоскости в любых позициях.
Нужно написать функции, параметрами которых они и являются + по стороне каждого из четырёх прямоугольника, которая бы выдала путь, состоящий из ортогональных отрезков от первой стороны ко второй. Возможны препятствия в виде комбинаций прямоугольных областей.

Например, от верхней сотороны первого прямоугольника к левой второго.

Буду благодарен за любые уместные подсказки.
...
Рейтинг: 0 / 0
24.01.2012, 16:17
    #37629203
grey_narn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
NewFinderЕсть пара прямоугольников любых размеров. Они могуть распологаться на плоскости в любых позициях.
Нужно написать функции, параметрами которых они и являются + по стороне каждого из четырёх прямоугольника, которая бы выдала путь, состоящий из ортогональных отрезков от первой стороны ко второй. Возможны препятствия в виде комбинаций прямоугольных областей.

Так, вопросы для уточнения: все-таки 2 или 4 прямоугольника нам даны? И вот эти препятствия - это какие-то другие прямоугольники, не два данных нам, так? Путь может пролегать вдоль их границ, но не через их внутреннюю область, верно? Прямоугольники расположены как попало или стороны их параллельны выделенным двум направлениям? И наконец, искомый путь - он должен начинаться и оканчиваться в любой точке заданных сторон? К нему предъявляются какие-то требования типа кратчайшей длины?
...
Рейтинг: 0 / 0
24.01.2012, 16:23
    #37629220
grey_narn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
NewFinder,

ну и тупой вариант, который сразу в голову приходит --- от каждой точки каждой стороны начинаем закрашивать по пикселу во все стороны (от одной - одним цветом, от другой - другим), пока не натыкаемся на препятствие. Когда два пиксела разных цветов соседствуют друг с другом --- ну, вот мы и нашли путь (по окрашенной области мы как раз и можем передвигаться к стороне по параллельным осям координат отрезкам). Если же все, что можно, закрашено, а соседей разного цвета нет --- построить такой путь нельзя. Что-то такое.
...
Рейтинг: 0 / 0
24.01.2012, 16:28
    #37629229
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
NewFinder, ты наверное пытаешся рисовать диаграммы со стрелками?
...
Рейтинг: 0 / 0
24.01.2012, 21:16
    #37629795
NewFinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
grey_narnNewFinderЕсть пара прямоугольников любых размеров. Они могуть распологаться на плоскости в любых позициях.
Нужно написать функции, параметрами которых они и являются + по стороне каждого из четырёх прямоугольника, которая бы выдала путь, состоящий из ортогональных отрезков от первой стороны ко второй. Возможны препятствия в виде комбинаций прямоугольных областей.

Так, вопросы для уточнения: все-таки 2 или 4 прямоугольника нам даны? И вот эти препятствия - это какие-то другие прямоугольники, не два данных нам, так? Путь может пролегать вдоль их границ, но не через их внутреннюю область, верно? Прямоугольники расположены как попало или стороны их параллельны выделенным двум направлениям? И наконец, искомый путь - он должен начинаться и оканчиваться в любой точке заданных сторон? К нему предъявляются какие-то требования типа кратчайшей длины?
1. 2 прямоугольника в условии, прошу прощения. Это я некорректно указал, что линиями могут соединяться все 4 стороны каждого прямоугольника. Эти 2 прямоугольника могут пересекаться (да, в некоторых случаях такие пересечения исключают результат). Отрезки строятся только в внешней области прямоугольников, не пересекают их.
2. Препятствия - да, другие прямоугольники, их комбинации с возможными пересечениями.
3. Стороны прямоугольников паралельны ортогональным к примеру осям Х и Y как и путь между ними, состоящий из отрезков паралельных сторонам прямоугольников.
4. Искомый путь начинется и заканчивается ровно посредине стороны. Извиняюсь, также упустил. Тоесть, будут указаны стороны прямоугольников, как параметры процедуры построения пути.
5. Чёткого требования по кратчайшему пути нет. Но, думаю, добавлния этого условия результат работы алгоитма не исказит.

Относительно пикселей, то кажется мне трудоёмким и временнозатратным он будет. Всё же, можно работать с линиями и их пересечениями, на которых лежать отрезки.

maytonNewFinder, ты наверное пытаешся рисовать диаграммы со стрелками?
Ну оно похоже на то, видимо да.
...
Рейтинг: 0 / 0
27.01.2012, 03:36
    #37634304
NewFinder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
Может кто посоветует книгу хорошую по вычислительной геометрии или алгоритм?
И не обязательно с прямоугольниками.
...
Рейтинг: 0 / 0
27.01.2012, 03:44
    #37634306
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
Не совсем понял. Есть 2 прямоугольника. Нужно от одной (указанной) стороны одного прямоугольника провести перпендикуляр до другой (указанной) стороны другого прямоугольника? Или что за путь? Нарисовал бы набросок пары вариантов.
...
Рейтинг: 0 / 0
27.01.2012, 03:46
    #37634308
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Путь между прямоугольниками
Стрелки , соединяющие блоки блок схемы что ли?
Рисунок в студию! ))
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Путь между прямоугольниками / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]