Как получить ограничивающий прямоугольник преобразованного текста (Java)? - PullRequest
2 голосов
/ 28 июля 2010

В настоящее время у меня есть текстовый объект, который мне нужен, чтобы определить его границы. Раньше я использовал графический объект для получения метрик шрифта текста, который я пытаюсь нарисовать, но, поскольку я добавил функциональность для поворота объекта (и, возможно, больше), мне нужен лучший способ получить границы этого объекта. Я просмотрел несколько мест, и пока у меня ничего не получалось. Вот моя самая последняя попытка:

//This is the bounding box edges 0: left, 1: right 2: top 3: bottom  
int toReturn[] = new int[4];
//this.transform is the AffineTransform for the text Object(currently only
//rotated)
FontRenderContext frc = new FontRenderContext(this.transform,true,false);
TextLayout tl = new TextLayout(this.typedText,this.font,frc);
Rectangle2D bb = tl.getBounds();
toReturn[0] = (int)(bb.getX());
toReturn[1] = (int)(bb.getX()+bb.getWidth());
toReturn[2] = (int)(bb.getY());
toReturn[3] = (int)(bb.getY()+bb.getHeight());

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

1 Ответ

1 голос
/ 28 июля 2010

Нет, AffineTransform, предоставленный для FontRenderContext ", используется для масштабирования типографских точек в пикселях в этом FontRenderContext."Вы должны иметь возможность использовать createTransformedShape() на границе, чтобы получить желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...