Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Скрипт преобразования дуг в набор прямых отрезков (ruby)

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Сторонние разработки
Предыдущая тема :: Следующая тема  
Автор Сообщение
Ноябрь



Зарегистрирован: 12.05.2009
Сообщения: 55
Откуда: Уфа

СообщениеДобавлено: Ср 19 Авг 2009 10:07    Заголовок сообщения: Скрипт преобразования дуг в набор прямых отрезков (ruby) Ответить с цитатой

Я написал скрипт (см название топика, приложения к сообщению и README).
Для выполнения требуется интерпретатор ruby http://www.ruby-lang.org/en/downloads/
Я рекомендую Ruby 1.8.6 One-Click Installer.
Приветствуются идеи по поводу встраивания в интерфейс Ингео.

пс
перед любыми глобальными изменениями не забывайте бэкапиться.



arch_by_pieces.zip
 Описание:

Скачивание
 Название файла:  arch_by_pieces.zip
 Размер файла:  3.62 KB
 Скачено:  1787 раз(а)

Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

СообщениеДобавлено: Ср 19 Авг 2009 16:49    Заголовок сообщения: Ответить с цитатой

Вопрос
А какую задачу это решает?

За 10 лет работы неоднократно была обратная задача из набора отрезков сделать дугу, а из дуги в отрезки ни разу не встретилось необходимости.

И еще вопрос. Объект - горизонталь состоит из множества линейных ребер и дуг, можно ли провести операцию с одной дугой не затрагивая остальные?

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Ноябрь



Зарегистрирован: 12.05.2009
Сообщения: 55
Откуда: Уфа

СообщениеДобавлено: Чт 20 Авг 2009 08:16    Заголовок сообщения: Ответить с цитатой

Цитата:
А какую задачу это решает?
Нам необходимо для перевода данных в WGS84.
Цитата:
И еще вопрос. Объект - горизонталь состоит из множества линейных ребер и дуг, можно ли провести операцию с одной дугой не затрагивая остальные?

Метод break_arch_by_piece работает как раз с одной вершиной. Сейчас через него прогоняются все вершины всех контуров и фигур объекта.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

СообщениеДобавлено: Чт 20 Авг 2009 11:43    Заголовок сообщения: Ответить с цитатой

Цитата:
Нам необходимо для перевода данных в WGS84


А что мешает дугу переводить в WGS84
у меня не было проблем при трансформации карт связанных с дугами

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Ноябрь



Зарегистрирован: 12.05.2009
Сообщения: 55
Откуда: Уфа

СообщениеДобавлено: Чт 20 Авг 2009 12:12    Заголовок сообщения: Ответить с цитатой

Цитата:
А что мешает дугу переводить в WGS84
Наш модуль не оставляет дуг. Потому как должны получаться элипсы и т.п. фигуры, а не идеальные окружности.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

СообщениеДобавлено: Чт 20 Авг 2009 19:12    Заголовок сообщения: Ответить с цитатой

Все-таки я не понял смысла этой операции
И почему не может быть идеальных дуг (окружностей)
Насколько я знаком со строительством (почти 30 лет) проектировщики рисуют развязки как раз правильными окружностями (дугами).
Или взять рельеф, попробуйте насыпать песчаную горку.В сечении горка будет представлять собой правильные окружности.

А что касается ГИС применение дуг позволяе на порядок уменьшить количество точек, соответственно и времени отрисовки

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Ноябрь



Зарегистрирован: 12.05.2009
Сообщения: 55
Откуда: Уфа

СообщениеДобавлено: Пт 21 Авг 2009 08:25    Заголовок сообщения: Ответить с цитатой

Как может проецирование на площадь под углом (да еще и поворотом) давать идеальную окружность. Оно даст искаженную окружность, а в Ингео нет средств рисования таких дуг (например кривых Безье).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikser



Зарегистрирован: 09.03.2005
Сообщения: 535
Откуда: г. Братск

СообщениеДобавлено: Пт 21 Авг 2009 09:42    Заголовок сообщения: Ответить с цитатой

Ну если в таком ракурсе, тогда ни одна кривая не будет правильной, ни окружность ни эллипс и.т.п
Просто всегда есть какое-то приближение, и если оно в пределах допуска то зачем тогда об этом говорить

Я не против вашего модуля просто мне хотелось узнать при решении каких задач требуется такая операция.

Я учитываю и работу Ингео. Чем больше в объекте точек, тем медленнее будет с ним работа

_________________
Сергей Николаев
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Сергей Попов



Зарегистрирован: 05.03.2005
Сообщения: 299
Откуда: г. Тольятти - Самара - Копейск

СообщениеДобавлено: Ср 09 Сен 2009 14:59    Заголовок сообщения: Ответить с цитатой

У меня есть пример, где применить выше указанный срипт.
Надо построить санитарно-защитные зоны промплощадок, на их базе сформировать КАРТУ ГРАДОСТРОИТЕЛЬНОГО ЗОНИРОВАНИЯ, утвердить её и копию (вместе с электронной копией) передать в РОСНЕДВИЖИМОСТЬ.
На первом этапе в ИНГЕО применяю ТРАССИРОВКУ с указанием не нулевой БУФЕРНОЙ ЗОНЫ. При этом углы сглаживаются дугами с радиусом равным буферной зоне.
На конечном этапе мне подсовывают некую инструкцию РОСНЕДВИЖИМОСТИ, в которой описание границ ТЕРРИТОРИАЛЬНЫХ ЗОН описывается только ПРЯМЫМИ ОТРЕЗКАМИ, между точками.
ДУГИ они обрабатывать не умеют.
При этом надо учитывать, что как только я им передам границы ТЕРРИТОРИАЛЬНЫХ ЗОН в ломаных, сразу-же и сам обязан буду придерживаться этих ломанных линий.

За одно ещё вопросы:
1. Окружность можно вписать в многоугольник и описать многоугольником. Т.е. при преобразовании дуги, прямые могут быть расположены с внутренней части окружности, с внешней части окружности и иметь промежуточное положение между двумя этими крайностями. Как это реализовано в данном скрипте?
2. Меня тоже занимает вопрос быстродействия. Безусловно, контур с меньшим количеством рёбер должен прорисовываться быстрее, но если рёбра разные по типу (отрезки, дуги), то тогда не всё так очевидно. Можно ли с точки зрения быстродействия найти соотношение между дугой и отрезком?

_________________
г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Ноябрь



Зарегистрирован: 12.05.2009
Сообщения: 55
Откуда: Уфа

СообщениеДобавлено: Вт 29 Сен 2009 08:51    Заголовок сообщения: Ответить с цитатой

1) данный многоугольник вписанный.
2) отрезки скрипт пропускает (т.е. обрабатывает нормально), 66 000 объектов обрабатывали примерно 15 минут. Встречались объекты с 10 000 - 20 000 точек.

пс простите за неоперативный ответ
ппс в первой версии скрипта ошибка: не выставляется флаг замкнутости линии.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Сторонние разработки Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB