$mival
09.05.2012, 22:39
Всем привет!
Столкнулся с интересной задачей: нужно укладывать "теплый пол" в произвольно заданное помещение (многоугольник).
Есть 3 вида укладки:
1) укладка "змейкой" без ограничения по ширине петли (на стене буква "Т" это термостат, от него начинается укладка)
http://i.imgur.com/TYHeo.jpg
2) укладка "змейкой" определённой ширины (по сути можно сделать частным случаем первого пункта)
http://i.imgur.com/VqDeI.jpg
3) укладка квадратами, которые потом последовательно соединяются проводом
http://i.imgur.com/JUoJ5.jpg
Есть уже реализованные примеры, например тут (http://heatmap.devi.com/ru).
Из кода той флешки можно понять, что для каждого вида пола написал алгоритм как минимум на 1500 (одна тысяча пятьсот!) строк кода (тупо перебор?), при этом результат далёк от идеала.
Какие алгоритмы можно использовать для решения задачи? Суперточности от него не требуется.
Кстати есть еще нюанс в виде непроходимых зон,
http://i.imgur.com/gOEp8.jpg
для моей задачи мы можем просто считать любую зону прямоугольником (без треугольников как во флешке примере)
Столкнулся с интересной задачей: нужно укладывать "теплый пол" в произвольно заданное помещение (многоугольник).
Есть 3 вида укладки:
1) укладка "змейкой" без ограничения по ширине петли (на стене буква "Т" это термостат, от него начинается укладка)
http://i.imgur.com/TYHeo.jpg
2) укладка "змейкой" определённой ширины (по сути можно сделать частным случаем первого пункта)
http://i.imgur.com/VqDeI.jpg
3) укладка квадратами, которые потом последовательно соединяются проводом
http://i.imgur.com/JUoJ5.jpg
Есть уже реализованные примеры, например тут (http://heatmap.devi.com/ru).
Из кода той флешки можно понять, что для каждого вида пола написал алгоритм как минимум на 1500 (одна тысяча пятьсот!) строк кода (тупо перебор?), при этом результат далёк от идеала.
Какие алгоритмы можно использовать для решения задачи? Суперточности от него не требуется.
Кстати есть еще нюанс в виде непроходимых зон,
http://i.imgur.com/gOEp8.jpg
для моей задачи мы можем просто считать любую зону прямоугольником (без треугольников как во флешке примере)