Easy Trace
http://www.easytrace.com/forum/

Как согласовать полигональные покрытия
http://www.easytrace.com/forum/russian-faq/topic-t956.html
Страница 1 из 1

Автор:  Григорий [ Ср фев 04, 2009 7:29 pm ]
Заголовок сообщения:  Как согласовать полигональные покрытия

При согласовании двух полигональных покрытий одно из них выбирается как более достоверное. И именно с ним согласуется второе покрытие.

Простейший пример. Проложим полигональную дорогу через лес. Прокладываем линию дороги через лес. Строим вдоль дороги Ленточный полигон и ВЫЧИТАЕМ (вырезаем) полигон из леса.

Хуже обстоит дело, если дорога уже была вырезана до нас. У нас-то она по GPS-есу. Не хухры-мухры, а по науке! Вот только если её вырезать останутся довольно неприятные щели…

Если они не большие, а вы обладатель версии 8.5, тогда дело в шляпе. Просто используем утилиту Коррекции топологии. Дорога – опорный слой, Лес – корректируемый, операция – «Согласовывать участки полилиний в радиусе».

Но вот если версия помладше или щели потолще тогда конечно… Тогда руками поработать придётся! Вызываем утилиту «Проверка полигонов» и ищем щели. Найденные ошибки – это полигоны щелей на слое _ERRORS_.

Конечно, сами они к полигону леса не приклеятся. Придётся выбрать редактором лес и в режиме Сумма (E) указать на все «затычки» в щелях. От греха слой Дорог лучше «заморозить», а то и в него ткнуть не долго…

Перед тем как запускать проверку топологии, неплохо бы применить утилиту Коррекция топологии - даже если в вашей версии она ещё не умеет согласовывать границы. Простое "стягивание вершин в заданном радиусе" может "склеить" самые тонкие и неприятные щели.

Автор:  Григорий [ Ср фев 04, 2009 7:31 pm ]
Заголовок сообщения: 

А как собственно, дороги из леса вырезать?

А очень просто... если у вас версия 8.6. Утилитой "Вычитание полигонов". А вот если версия младше, придётся поизвращаться...

Дело в том, что основной инструмент «массовой резни» - Групповые ножницы дорабатывался довольно интенсивно. Вот вехи его пути – от рождения и до сегодняшнего дня:

- удерживая Ctrl можно в качестве режущего контура выбрать существующие полигоны;
- ножницы «подхватывают» контура полигонов выбранных групповым редактором;
- можно явно задать слои, которые можно резать;
- ножницы режут тысячи «дырок» в десятки раз быстрее;
- устранено «самоуничтожение» вложенных полигонов режущего слоя.

Что, в какой версии, появилось - сказать не берусь. Проще посмотреть «по месту».

Первое что следует сделать – точно указать «кого рэзать будэм». Погасить от греха все лишние слои и ЗАМОРОЗИТЬ «режущий» слой. А то он сам себя порежет…

Или явно отметить слой- «жертву» в списке из панели управления инструментом Групповые ножницы.

Затем, надо создать контура обрезки. Если повезёт – просто выбрать контура Групповым редактором и нажать Alt+W.

Если не повезёт – удерживая Ctrl выбрать контура для обрезки. Лучше делать это в несколько приёмов. А что бы не запутаться – сделать «режущие» полигоны прозрачными, а подстилающий слой полигонов сплошной заливкой. И сразу будет видно где уже есть дырка, а где ещё нет…

:!: :!: :!: Обязательно сделайте копию ВСЕЙ ПАПКИ ПРОЕКТА, включая каталог DB, перед тем, как что-либо резать. Может сразу и не получится!

Автор:  Григорий [ Ср фев 04, 2009 8:09 pm ]
Заголовок сообщения: 

Что делать если вырезание длится слишком долго?

У вас довольно старая версия. Здесь может помочь только одно – разнесение режущих полигонов по нескольким слоям. Старый алгоритм тупо сравнивает каждый «режущий» полигон с каждой «жертвой». Типичный квадратичный алгоритм.

Соответственно, уменьшив число режущих полигонов вдвое, можно сократить время в ЧЕТЫРЕ раза. Ну и так далее…

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/