|
|
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
Задача возможно где-то уже встречалась, но я не нашёл внятного алгоритма, пока. Есть пара прямоугольников любых размеров. Они могуть распологаться на плоскости в любых позициях. Нужно написать функции, параметрами которых они и являются + по стороне каждого из четырёх прямоугольника, которая бы выдала путь, состоящий из ортогональных отрезков от первой стороны ко второй. Возможны препятствия в виде комбинаций прямоугольных областей. Например, от верхней сотороны первого прямоугольника к левой второго. Буду благодарен за любые уместные подсказки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 00:18 |
|
||
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
NewFinderЕсть пара прямоугольников любых размеров. Они могуть распологаться на плоскости в любых позициях. Нужно написать функции, параметрами которых они и являются + по стороне каждого из четырёх прямоугольника, которая бы выдала путь, состоящий из ортогональных отрезков от первой стороны ко второй. Возможны препятствия в виде комбинаций прямоугольных областей. Так, вопросы для уточнения: все-таки 2 или 4 прямоугольника нам даны? И вот эти препятствия - это какие-то другие прямоугольники, не два данных нам, так? Путь может пролегать вдоль их границ, но не через их внутреннюю область, верно? Прямоугольники расположены как попало или стороны их параллельны выделенным двум направлениям? И наконец, искомый путь - он должен начинаться и оканчиваться в любой точке заданных сторон? К нему предъявляются какие-то требования типа кратчайшей длины? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 16:17 |
|
||
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
NewFinder, ну и тупой вариант, который сразу в голову приходит --- от каждой точки каждой стороны начинаем закрашивать по пикселу во все стороны (от одной - одним цветом, от другой - другим), пока не натыкаемся на препятствие. Когда два пиксела разных цветов соседствуют друг с другом --- ну, вот мы и нашли путь (по окрашенной области мы как раз и можем передвигаться к стороне по параллельным осям координат отрезкам). Если же все, что можно, закрашено, а соседей разного цвета нет --- построить такой путь нельзя. Что-то такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 16:23 |
|
||
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
NewFinder, ты наверное пытаешся рисовать диаграммы со стрелками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 16:28 |
|
||
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
grey_narnNewFinderЕсть пара прямоугольников любых размеров. Они могуть распологаться на плоскости в любых позициях. Нужно написать функции, параметрами которых они и являются + по стороне каждого из четырёх прямоугольника, которая бы выдала путь, состоящий из ортогональных отрезков от первой стороны ко второй. Возможны препятствия в виде комбинаций прямоугольных областей. Так, вопросы для уточнения: все-таки 2 или 4 прямоугольника нам даны? И вот эти препятствия - это какие-то другие прямоугольники, не два данных нам, так? Путь может пролегать вдоль их границ, но не через их внутреннюю область, верно? Прямоугольники расположены как попало или стороны их параллельны выделенным двум направлениям? И наконец, искомый путь - он должен начинаться и оканчиваться в любой точке заданных сторон? К нему предъявляются какие-то требования типа кратчайшей длины? 1. 2 прямоугольника в условии, прошу прощения. Это я некорректно указал, что линиями могут соединяться все 4 стороны каждого прямоугольника. Эти 2 прямоугольника могут пересекаться (да, в некоторых случаях такие пересечения исключают результат). Отрезки строятся только в внешней области прямоугольников, не пересекают их. 2. Препятствия - да, другие прямоугольники, их комбинации с возможными пересечениями. 3. Стороны прямоугольников паралельны ортогональным к примеру осям Х и Y как и путь между ними, состоящий из отрезков паралельных сторонам прямоугольников. 4. Искомый путь начинется и заканчивается ровно посредине стороны. Извиняюсь, также упустил. Тоесть, будут указаны стороны прямоугольников, как параметры процедуры построения пути. 5. Чёткого требования по кратчайшему пути нет. Но, думаю, добавлния этого условия результат работы алгоитма не исказит. Относительно пикселей, то кажется мне трудоёмким и временнозатратным он будет. Всё же, можно работать с линиями и их пересечениями, на которых лежать отрезки. maytonNewFinder, ты наверное пытаешся рисовать диаграммы со стрелками? Ну оно похоже на то, видимо да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2012, 21:16 |
|
||
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
Может кто посоветует книгу хорошую по вычислительной геометрии или алгоритм? И не обязательно с прямоугольниками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 03:36 |
|
||
|
Путь между прямоугольниками
|
|||
|---|---|---|---|
|
#18+
Не совсем понял. Есть 2 прямоугольника. Нужно от одной (указанной) стороны одного прямоугольника провести перпендикуляр до другой (указанной) стороны другого прямоугольника? Или что за путь? Нарисовал бы набросок пары вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2012, 03:44 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1342483]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 515ms |

| 0 / 0 |
