Как видите, когда ось диапазона охватывает большую площадь, а метки слишком близко друг к другу, они начинают перекрываться. Я хотел бы реализовать какую-то логику, чтобы определить, перекрываются ли они, и если да, просто показать предпочтительный (или столько, сколько поместится). Однако я немного не уверен, как это сделать.
Логика будет примерно такой:
- Приоритет каждой метки после важности
- Получите координаты Java2d каждой метки галочки (x, y, ширина, высота)
- Если область этикетки перекрывается с другой, просто покажите самую важную.
Но какие методы доступны для этого? Из документов API, которые я купил, я нашел этот метод
public double valueToJava2D(double value, Rectangle2D area, RectangleEdge edge);
Но что это за площадь и ребро, которыми мне нужно снабдить функцию? И как мне получить ширину и высоту, если это метка? И это правильный путь, или есть лучший путь, который приведет к успеху?