curves (splines) for drawing in OSM

А всё равно, кто-то бы нарисовал 3 сплайна, кто-то 15, а кто-то всё равно бы ломаными.

p. s. /me бы предпочёл одну окружность вместо 8 сплайно-точек.

К этой окружности всё равно 8 радиальных дорожек надо приделать, так что это будет 8 дуг, а не одна окружность.

^^ Кстати концептуальный вопрос … предположим мы идеально нарисовали кривую дорогу каким-то сплайном … и потом пришёл пользователь с потлачем, разбил на несколько сегментов так как нужно повесить ограничения на повороты, поставить теги покрытия, класса и т.п. Останется ли этот объект сплайном как и был при таком дроблении, разобьётся на кучу новых сплайнов или упростится в отрезки?

§

§

Взаимоисключающие параграфы детектед!

А почему не оставить сплайнами? Это задача решаемая, больше того, уже решенная, в том числе в свободных пакетах векторной графики (в том же Inkscape можно добавить в кривую Безье точку в любом её участке, и кривая сохранит свою форму)

Наверное я не совсем чётко выскзал мысль, но здесь важнее примеры.

Суть в том что процедура “разделения” и “объединения” линий (way) очень распространённая. Добавляя отрезки к сплайну получим сплайн а разделяя сплайны получим несколько сплайнов. Соответсвенно в какой-то момент получим сплошную сплайнизацию ОСМ :slight_smile: Вспомните историю с отношениями :slight_smile:

Это как это???
Чтобы проверить утверждение про сплайн на осмысленность полезно слово “сплайн” заменять на “дуга”. В данном случае случае имеем “Добавляя отрезки к дуге получим дугу” :sunglasses:

Это в челом правильно (редактор именно так и должен делать)

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

Без контекста эти выражения лучше не употреблять :slight_smile:

Ща я всех совсем запутаю: ломаная -ЭТО ТОЖЕ СПЛАЙН! Первого порядка :slight_smile:

Лично я вижу применение сплайнов только как расширение понятия отрезка. Отрезок может быть прямой (как сейчас), а может быть кривой (новый тип). Разделение кривого новой точкой порождает два новых кривых отрезка, так же как разделение прямого порождает два новых прямых.

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

Множество вторых и третьих софтов совпадают на самом деле. Да, софт не поддерживающий дуги не сможет их нарисовать, а софт поддерживающий - сможет. Точно также, как и самопальные теги.

Указание, что углы в точках надо сгладить без жесткого стандартизирования как именно это делать ничего не дает. Возьмите 4 точки в вершинах квадрата, на всех стоит флаг “сгладить”. Что должен выдать рендер? Квадрат со скруглениями? Круг? Эллипс через вершины?
Придумать разумный алгоритм сглаживания произвольной ломаной очень сложно, если вообще возможно, видел я несколько статей на эту тему.

Прошу прощения, не было возможности прокомментировать:

Первый вопрос был риторический - это раз. А на второй вопрос ответа так и не прозвучало - красивая гладкая дуга? что это? Красивая на глагне, в базе, в личном портфолио или в навигаторе? Гладкая? Я не знаю гладких географических поверхностей (не геолог и не топограф я ни разу :frowning: ) А в партаче я красивые дуги нарисую и без сплайнов. Зачем нам еще одна сомнительная сущность?

Реквестирую фрактальные кривые в ОСМ, чтобы красивые береговые линии и границы лесов по 3 точкам!

Если речь о том как делятся сплайны то аналитически они делятся с абсолютной точностью, да

а корованы по 7-8

А что такое фрактальные кривые?

А?

Гладкая в математическом смысле этого слова, с непрерывной производной. В просторечье - без углов.

Это на любителя. Ваши привычные способы редактирования не затронет.

мысли вслух
…Ну вот если внимательно посмотреть на изгиб дороги. Граница с тротуаром — она же ни грамма не гладкая! Каждый камень в бордюре — прямой. Если все вместе — ломаная получается. А нарисуешь гладкую — это уже враньё ведь…

Я кстати видел круглые бордюрчики :slight_smile:

Это камни вранье. На чертеже проектировщика гладкая была, по циркулю :slight_smile: Так что мы лишь восстанавливаем историческую справедливость!

дело не в том что дорога на самом деле не идеальная кривая, а в том, что точность отрендереных по кривой прямых будет в преимущественном большинстве случаев много выше точности наклацаной по GPS+спутник ломаной линии. Не говоря уже что это существенно быстрее и просто радует глаз в редакторе. Да и кто из новичков знает наскольро реально скругляются рендерами углы? кто то поворот прямым углом сделает, кто то 200 точек наставит.
Кроме того танки и силоса - почти идеально круглые, а рисуют то их сейчас как…