![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Тут мне помнится ты указывал мне на то, что я не могу понять, что ты написал. Не сочти за труд, ткни носом в то самое место в твоих предыдущих постах, из которого можно было сделать вывод, что условие меняется? Уж не это ли мутное пояснение?
Ты правда считаешь, что внятно сформулировал вопрос? -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| ansen |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.2.2003 Репутация: нет Всего: нет |
От абстрактного к конкретному.
Программно собрал коллекцию линий в виде экземпляров класса ESRI.ArcGIS.Geometry.IPointCollection Это продукт от ESRI ArcGIS 10.1. http://www.esri.com/ Расположены в коллекции эти экземпляры случайно УЖЕ. Беру первый и копирую в результирующую PointCollection, а затем в цикле, фрагмент которого приводил(внутри цикла делается больше, но суть не меняется), нахожу экземпляр класса у которого первая или последняя точка совпадает с последней точкой в результирующей PointCollection и соответственно напрямую или в обратном порядке добавляю найденный к результату. И удаляю его. И так до опустошения списка. Расписал весь алгоритм. А должен был сделать это для заказчика Судя по твоему времени у вас день, а мне спать пора - 20мин по полуночи... Это сообщение отредактировал(а) ansen - 26.4.2013, 00:22 |
|||
|
||||
| diadiavova |
|
||||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
ansen, я так понимаю, все эти точки образуют замкнутый контур, а отдельные коллекции точек - его фрагменты. Фрагменты не упорядочены и твоя задача собрать из этих фрагментов контур. Если так, то ты говорил совсем не это.
Вообще, задача интересная, но мне больше интересно решить ее в общем виде, чтобы было не важно что собирать(контур из фрагментов, пазл или молекулу ДНК к примеру), но при этом алгоритм сборки описывался бы один раз. Решение будет примерно следующим: Для начала сформулируем задачу обобщенно. У нас есть неупорядоченное множество объектов типа T. Нам потребуется объединять такие объекты, в результате будут получаться объекты того же типа, но при этом мы не можем объединить два произвольных объекта, зато можем проверить возможность их объединения. Таким образом для этого типа объектов у нас определены две операции, назовем их CanConcat и Concat. Первая операция принимает два объекта типа T и возвращает булево значение, показывающее, можно ли объединить объекты. Вторая - принимает два аргумента типа T и возвращает результат их объединения. Мы можем описать обобщенный алгоритм выполняющий объединение всей коллекции, но для этого нам надо будет реализовать операции проверки и объединения для каждого отдельного случая. Например в твоем случае проверка будет заключаться в наличии общих точек на концах, а объединение - в копировании элементов коллекций в новую коллекцию. Для других типов объектов операции будут другими. Вот функция, которая выполняет операцию объединения.
Определяем операции CanConcat и Concat
Далее создаем коллекцию фрагментов последовательности, обрабатываем нашей функцией и выводим на экран
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||||||
|
|||||||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |