Java Получить простые координаты для текста в TextLayout

У меня есть функция, которая извлекает форму строки:

private Shape getTextShape(String str, Font font) {
    BufferedImage bufferImage = new BufferedImage(2,2,BufferedImage.TYPE_INT_RGB);
    Graphics2D g2d = bufferImage.createGraphics();
    FontRenderContext frc = g2d.getFontRenderContext();
    TextLayout tl = new TextLayout(str, font, frc);
    return tl.getOutline(null);
}

Как только я получу объект Shape строки, я хочу координаты, которые можно использовать для рисования строки:

Font font = new Font(null, Font.PLAIN, 10);
                Shape shape = getTextShape("A",font);
                ArrayList<DPoint> points = new ArrayList<DPoint>();
                PathIterator pathIterator = shape.getPathIterator(null, 5.0d);  
                float[] coords = new float[2];  
                while (!pathIterator.isDone()) {  
                    pathIterator.currentSegment(coords);  
                    points.add(new DPoint(coords[0], coords[1]));  
                    pathIterator.next();  
                } 

Проблема в точках ArrayList - это точки, которые пересекают границу строки. Есть ли способ получить только координаты, которые рисует строку, используя простой однолинейный сегмент? Не координаты, которые составляют контур строки.

0 ответов

Другие вопросы по тегам