Страница 185 из 272

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 22 фев 2013, 17:13
dr.b
"Кореловское" клонирование копированием сопровождается предупреждением "карта содержит вставляемый объект", что не соответствует действительности. Клоны имеют разные координаты, а в крайних версиях могут иметь ещё и разный адрес.

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 22 фев 2013, 18:53
warpig
Ёпстиль снять галку в настройках - Редактирование - Предупреждать об вставке дубликата объекта
Считаю что вы уж придираетесь :funny:

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 23 фев 2013, 12:03
MaxBel
Нет ну если дубликат не создается, а окно выскакивает, то это не придирка а ошибка в программе !

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 23 фев 2013, 12:34
Fencer_Silver
Да уж нет.... Сначала объект вставляется в его же место, а потом только перемещается. Поэтому при вставке - он является дубликатом. Пока он не вставлен - я не могу поменять его координаты (они зарыты в памяти). Потом, может поменяю, а пока останется так.

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 23 фев 2013, 16:37
dr.b
Поковырял инструмет резки полигона по линии. Нашел знакоые ржавые грабли.
Holes.jpg
Глюкодром в польском в придачу.
Line_cut.rar
(2.05 КБ) 457 скачиваний
верхний ряд:
1 - имеем полигон парка с subtract больничкой.
2 - по красным точкам проводим Резку полигона линией.
3 - Отодвигаем больничку и видим несуразную картину. Полигон рассечен надвое, как и задумано. Дырка, попавшая в разрез (бывшая составной частью полигона и прописанная в польском второй строкой Data0=)цела, принадлежит одной из полученных частей, несмотря на то, что торчит наружу наполовину и уже точно вложенным объектом не является. Вторая часть восстановлена до полного четырехугольника. Образовавшаяся грыжа имеет тип материнского полигона и цвет фона карты (Белый парк). После пересохранения и открытия в гюкодроме у вас он станет Зелёным парком. Свежую нарезку проводите сами. Там в нижнем ряду готовые жертвы...

Второй строкой на скрине показана та же операция с использованием вычитания из парка старообрядного "секущего полигона"(красный). Все чинно и корректно, значит вполне осуществимо. Один недостаток - многоходовость манипуляции и необходимость стягивать узлы по краям образовавшегося коридора. Даже больничку сдвигать не нужно.
В обоих случаях выделенный полигон делится надвое и одна из частей вычленяется. Однако в случае с линией "дырка" остается самостоятельным объектом, связанным с второй половиной (2 строки data0), а в случае с секущим полигоном корректно исчезает, а её контур становится частями внешнего контура новых половинок. Именно так и должен работать инструмент резки.
Все другие полигоны, лежащие поверх выбранного, (больничка)остаются целыми. И это правильно.

Свое мнение (и не я один) изложил 2 года назад.
http://forum.navitel.ru/index.php?showt ... ntry142227

http://forum.navitel.ru/index.php?showt ... ntry211240

Был "спасибозаписан" и плюнул. Ну всё... "Пожизненный цинк с гвоздями" за прямую ссылку на нецензурный сайт...
Во искупление готов десять раз ночью написать на стене вен.диспасера:

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


Все несуразности истекают из ошибочной концепции отношения к дыркам, как к самостоятельным полигонам. Отсюда и извлечение их в самостоятельные объекты при операциях Extract, весьма своеобразный вид (двойная внешняя граница) рассеченных дырок после нарезки полигона на более мелкие квадраты. Попробуйте сейчас рассечь линией сильно дырявый полигон леса и отодвинте его в сторону... Под ним увидите суть проблемы.

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

Провел мелкие практические изыскания. Два примера справа на скрине и в полише. В первом случае пытался вычесть из парка полигон с длинным классическим джиттером. Резка джиттером не удалась. Развел парные точки джиттера на единицу в шестом разряде координат ручками. Провел вычитание - получил два фрагмента с правильно обработанной дыркой. Вычленил. Осталось свести образовавшуюся щель. Сделать это можно без особых математических изысканий. Профильтровать все вновь полученные однотипные полигоны на предельно близко расположенные узлы и спарить их координаты (и не важно в какую сторону). Главное, чтоб они стали единообразны. Щель стянута. Вуаля.
То, что я сделал из джиттера, не что иное, как интрумент "Полоса". Только вторая точка задается программой по алгоритму Ш 0,00..+1;Д 0,00..+1 Третья-парная и последующие пары работают как и в "полосе", только очень тонкой. По нажатию ввода построение секущей "полосы" заканчивается, происходит её вычитание из целевого полигона и самоудаление. Далее автоматически следует разгруппировка половинок и сведение близких узлов.
Обратите внимание, в примере полигон разрезан уже по ломаной траектории. Остается проблема с кривой разгруппировкой сильнодырявых полигонов. Их ведь тоже будут разрезать. Но это уже другая тема, так же , как и нарезка на квадраты.

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 23 фев 2013, 17:23
Fencer_Silver
Согласен. С дырками - видел сразу и знаю, об этом моменте. Это - пока недоделка. Обучим работать с элементами.

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 23 фев 2013, 17:50
dr.b
Резать нужно алгоритмом вычитания полигона. Все уже есть, но в разных углах...

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 24 фев 2013, 09:42
Baikal
Не отображается тип объекта Фон карты 0x004B

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 24 фев 2013, 10:00
User_tester
Почему не отображается? Вот:

Скриншот.png

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 24 фев 2013, 10:22
_Michael_
иногда не отображается, обращал внимание, но закономерности не нашел..

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 24 фев 2013, 10:40
-=Белый=-
:) Там есть в меню прикольная кнопонька - Вид карты-Область покрытия карты - активируешь и тыкаешь в любое свободное от художеств место и выделяется "Фон карты" - очень удобно!

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 25 фев 2013, 04:59
dr.b
В отличии от всех остальных инструментов при использовании инструмента полигон "полоса" фиксация результата через завершение контекстного меню или нажатие Enter происходит не на последней отфиксированной вершине (паре вершин), а на текущем положении курсора, с добавлением дополнительной вершины в этом месте. Подобный ход одно нажатие кнопки мыши конечно экономит, но как-то выпадает из общего стереотипа... Даже зная этот нюанс, периодически машинально щелкаешь кнопкой на предполагаемом месте завершения. После этого любое неверное движение чревато появлением лишних узлов и искажений в виде выбросов. Попробуйте чуть сдвинуть курсор против направления отрисовки...

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 25 фев 2013, 11:10
-=Белый=-
Ну да - тоже немного напрягает это. Такие кракозябли иногда рисутся - у меня однажды вершина улетела в район Тихого океана. Долго пытался найти её - пока не удалил полностью полигон и нарисовал по новой. Мне кажется лучше б полигон "полоса" обрезался по последней точке после нажатия "энтер".

Re: Beta тестирование (обсуждение функционала beta версий)

Добавлено: 25 фев 2013, 11:37
Fencer_Silver
dr.b писал(а):Резать нужно алгоритмом вычитания полигона. Все уже есть, но в разных углах...
Посмотрел. Есть существенный недостаток - между разрезанными полигонами - появляется "полоса" - даже, если резать классическим джиттером. Джиттером режет - надо просто создать три точки в линии, и преобразовать в полигон. Можно, как бы пожертвовать "нестыковкой" полигонов после разрезки, но считаю, что это неоправданно, особенно если полигон не имел дырки вообще. Лучше, научить хотя бы резать дырки, пусть без удаления их, но резать. ИМХО - лучше так. Какие мнения?

Re: Beta тестирование (тестирование, баги, замечания)

Добавлено: 25 фев 2013, 13:21
dr.b
Классический джиттер имеет три точки, первая и третья из которых имеют совершенно одинаковые координаты. Можно сказать, что это сдвоенная линия, не имеющая площади. Все остальное - полигоны, хоть и предельно тонкие. Так вот, классическим джиттером ОНО резать отказалось (а я так надеялся... :no: ), а когда я вручную изменил коодинаты 1 точки основания на единицу в 6-ом разряде, вычитание произвелось отлично.
Поскольку при вычитании координаты узлов тушки по ширине ножа почти совпадают, разница между ними и будет равняться единице, максимум двум в шестом знаке по широте или (и) долготе.
То есть мы будем иметь в двух половинках парные узлы, различающиеся на на 1-2 единицы в крайнем разряде. Отыскать их возможно поиском в массиве по допуску. Их всего 4 пары. Я искал глазами в полише... Не долго... Найденные пары привести к единообразию. Даже просто не мудря второй вершине из пары присвоить координаты. первой. Погрешность будет минимальна. ТАКИМ ОБРАЗОМ СТЫКОВОЧНАЯ ПОЛОСА БУДЕТ ЗАТЯНУТА. А затянута она должна быть обязательно, иначе после привязки к сетке можно получить наложение полигонов. Глюкодромчик сваять?
Лучше, научить хотя бы резать дырки, пусть без удаления их, но резать.
Ересь. Придам анафеме и прокляну... :P Нельзя поделить дырку от бублика и разрезать воздушный шар! :no: