Мне нужно отображать на экране множество ярлыков без наложения. Расположение меток должно быть как можно ближе к описываемым характеристикам. Объектами могут быть точки, линии или многоугольники на экране (представьте себе любую карту). В моем заявлении я должен соответствовать следующим требованиям:
- ярлыки должны быть расположены так, чтобы избежать чрезмерного размещения (перекрытия) с другими ярлыками
- надписи должны располагаться так, чтобы они не перекрывались с другими объектами (полигонами и линейными сегментами)
- оптимальное положение для метки - вверху и справа от объекта, который они описывают.
- внизу и справа менее приемлемо
- наименее приемлемые позиции слева
Мне нужно найти способ сделать это.
Прежде чем я просто начну пытаться сделать это наугад, я надеюсь, что кто-то здесь, возможно, уже сделал это и сможет дать мне несколько советов, с чего начать.
В принципе, с этикетками я мог использовать ограничивающие рамки, чтобы сравнивать их друг с другом. Хотя я не знаю, как это сделать. С сегментами линий и многоугольниками на экране, которые они маркируют, я действительно не понимаю, что мне делать, чтобы избежать перекрытия. Я надеюсь, что это не потребует больших усилий, чтобы избежать перекрытия самих этикеток.
Я думаю, что отталкивание сработало бы, если бы мне приходилось иметь дело только с ярлыками, перекрывающими другие ярлыки. Но если у меня есть линейный сегмент, проведенный через половину экрана, я не знаю, как мне избежать наложения с ним, используя технику отталкивания.
Я использую язык ActionScript 3 и платформу Flex. Я не верю, что у Flex есть какие-либо классы диспетчера компоновки, такие как в Java Spring, которые могут выполнять эту работу за меня.
В любом случае, ссылки или предложения приветствуются. Я могу допустить грубую силу; Я не понимаю, как я могу добиться этого иначе. Спасибо!
PS Я считаю, что технический термин для обозначения этой проблемы - «перегрузка».