2017-01-03 20 views
0

В настоящее время я пытаюсь наметить строки, которые я рисую на своей карте (в моем приложении iOS, но, я думаю, это относится ко всем картам).Нарисовать текст по пути на карте (например, имя улицы)

Так что я сейчас делаю, я упрощаю свой путь, чтобы избавиться от большинства маленьких кривых, а затем просто нарисую свои глифы вдоль этой линии. В настоящее время это выглядит следующим образом:

enter image description here

На некоторых участках линии, которая уже хорошо. Если линия довольно прямая, а углы не слишком острые.

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

enter image description here

Я рад любые идеи о том, как улучшить мой рисунок :)

+0

Что вам нужно, это более плавная кривая Безье (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

+0

Я обновил свои рисунки выше номерами ... Так что, наверное, мне пришлось бы отфильтровывать части, где угол между двумя векторами слишком мал?!? Чтобы избавиться от очков 5, 7 и 9? И тогда я смогу сгладить все остальное, не так ли? Я нашел способ сделать это здесь: http://merowing.info/2012/04/drawing-smooth-lines-with-cocos2d-ios-inspired-by-paper/ – Georg

ответ

0

I сделайте это, в моей коммерческой системе рендеринга карты, найдя часть линии без острых углов. Невозможно заставить ярлык выглядеть хорошо, если он поворачивает углы под прямым углом или больше. Если секции нет достаточно долго, я сокращаю ярлык (например, Link Road становится Link Rd) или разделяет его на две строки. Если рисовать этикетку еще негде, я не рисую ее.

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

Я не беспокоюсь, чтобы сгладить мои линии, как вы предлагаете с красной линией. Это действительно не имеет значения, по крайней мере, с уличной маркировкой.

 Смежные вопросы

  • Нет связанных вопросов^_^