Я пытаюсь вычислить высоту пикселя повернутой строки в Java. В данный момент я создаю аффинное преобразование и поворачиваю его на требуемую величину.
Затем я создаю шрифт, полученный из этого аффинного преобразования. Я также создаю FontRenderContect и GlyphVector.
Когда я пытаюсь получить границы пикселей от вектора глифа, он дает мне высоту текста, как если бы он не вращался
AffineTransform affineTransform = new AffineTransform();
affineTransform.rotate(Math.toRadians(45),0,0);
Font rotatedFont = font.deriveFont(affineTransform);
FontRenderContext frc = new FontRenderContext(affineTransform, true, false);
GlyphVector gv = rotatedFont.createGlyphVector(frc, "i");
System.out.println(gv.getPixelBounds(frc, 0, 0).getBounds());
gv = rotatedFont.createGlyphVector(frc, "iiiiiiiiiiii");
System.out.println(gv.getPixelBounds(frc, 0, 0).getBounds());
Результат:
java.awt.Rectangle[x=0,y=1,width=9,height=2]
java.awt.Rectangle[x=0,y=1,width=31,height=2]
Высота должна быть намного больше, поскольку она поворачивается под углом 45 градусов (ширина должна быть равна высоте).
Любая помощь приветствуется.