В настоящее время я пытаюсь наметить строки, которые я рисую на своей карте (в моем приложении iOS, но, я думаю, это относится ко всем картам).Нарисовать текст по пути на карте (например, имя улицы)
Так что я сейчас делаю, я упрощаю свой путь, чтобы избавиться от большинства маленьких кривых, а затем просто нарисую свои глифы вдоль этой линии. В настоящее время это выглядит следующим образом:
На некоторых участках линии, которая уже хорошо. Если линия довольно прямая, а углы не слишком острые.
Но в некоторых частях вы можете просто ничего не читать ... Итак, какие стратегии лучше подходят для этого? Кто-нибудь знает алгоритм или стратегию о том, как сделать мой путь выглядеть красной линии здесь:
Я рад любые идеи о том, как улучшить мой рисунок :)
Что вам нужно, это более плавная кривая Безье (https://en.wikipedia.org/wiki/B%C3%A9zier_curve), созданная с использованием точек на фактической линии в качестве контрольных точек. Проверьте [Добавление кривых на ваш путь] (https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/BezierPaths/BezierPaths.html#//apple_ref/doc/uid/TP40010156-CH11- SW23), чтобы увидеть, как это можно сделать в графическом контуре Core Graphics. – lukya
Я обновил свои рисунки выше номерами ... Так что, наверное, мне пришлось бы отфильтровывать части, где угол между двумя векторами слишком мал?!? Чтобы избавиться от очков 5, 7 и 9? И тогда я смогу сгладить все остальное, не так ли? Я нашел способ сделать это здесь: http://merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/ – Georg