Мой текст ограничивающий прямоугольник - PullRequest
1 голос
/ 09 апреля 2011

Из следующего кода мы можем получить ограничивающий прямоугольник нашего текста:

Graphics2D twoD = (Graphics2D) g;
FontRenderContext frc = twoD.getFontRenderContext();
Rectangle2D textBound = myFont.getStringBounds(myText, frc);

, но в основном учебнике по Java говорится, что

прямоугольник имеет свое происхождениена базовой линии строки, а верхняя y-координата прямоугольника отрицательна.

Что это значит, почему верхняя y-координата отрицательна?

И любаябольше разъяснений к этой концепции высоко ценится?

Спасибо

1 Ответ

3 голосов
/ 09 апреля 2011

Когда вы измеряете текст, нет понятия, где вы его рисуете. Поэтому они принимают несколько произвольное решение, но я полагаю, что разумное решение заключается в том, что точка (0, 0) находится на базовой линии текста, слева от первого символа.

Это хорошо, потому что если бы вы сказали

void drawSomeText(Graphics g, String sample) {
    g.drawString(sample, 0, 0);
}

это поместится в поле, в котором будет отображаться размер текста.

Учитывая, что всплытие текста становится все более и более отрицательным, в то время как спусковые устройства занимают положительное y пространство.

...