Я занимаюсь разработкой пользовательского интерфейса.См. Изображение ниже:
# 1- # 4 - это области фотографий (например, лица разных людей на фотографии). T1-T4 - это текстовые поля для аннотирования соответствующих пронумерованных объектов.: T1 - текстовая аннотация для # 1, T2 для # 2 и т. Д. Эти текстовые поля (T1-T4) всегда располагаются в правой части экрана, тогда как объекты (# 1- # 4 могут появляться где угодно.
Я хочу:
рисовать строки аннотаций от каждой сущности до соответствующих текстовых полей, со свойством ниже:
- мин. Пересечение: строка аннотацииследует избегать пересечения другой строки аннотации
- параллельного наклона: каждая строка аннотации начинается с фиксированного наклона (45 или -45 градусов), затем горизонтальная линия
- Текстовое поле может быть отсортировано: текстовые поля (T1-T4) можно отсортировать / переставить по вертикали, если это помогает уменьшить кроссовер.
Что такое алгоритм для этого? Есть ли существующая библиотека реализации пользовательского интерфейса? Или примеры кода?