В образце изображения нет теста столкновения (т. Е. Метки могут перекрываться). Таким образом, алгоритм довольно прост:
- Существует первая строка , которая начинается от центра части пирога в направлении, противоположном центру пирога. Эта первая строка имеет фиксированную длину.
- Вторая строка является горизонтальной (также с фиксированной длиной) и идет влево или вправо в соответствии с углом первой строки,
- Следует за текстом, который выровнен по левому или правому краю, также в соответствии с углом наклона первой строки.
Вы можете использовать тот же алгоритм в вашем приложении, так как он кажется наиболее гармоничным. Но текст может перекрываться, если у вас есть несколько частей пирога, которые находятся слишком близко.
Чтобы избежать этого, вы можете проверить наличие столкновений, т.е. посмотреть, если две горизонтальные линии находятся слишком близко , а затем изменить угол первой линии (или, возможно, углы первых линий в двух ближайших круговых частях) до горизонтальных линий достаточно далеко.