sky*_*ar7 3 java graphics swing awt java-2d
在核心Java书中,它说
getStringBounds方法返回的矩形的宽度是字符串的水平范围.矩形的高度是上升,下降和前导的总和.矩形的原点位于字符串的基线处.矩形的顶部y坐标是负的.因此,您可以获得字符串宽度,高度和上升,如下所示:
double stringWidth = bounds.getWidth();
double stringHeight = bounds.getHeight();
double ascent = -bounds.getY();
Run Code Online (Sandbox Code Playgroud)
当说矩形的原点位于字符串的基线时,作者的意思是什么,而顶部的y坐标是上升?
字符串的边界矩形从哪里开始?
用测试字符串我得到以下内容:
w: 291.0
h: 91.265625
x:0.0
y:-72.38671875
descent: 15.8203125
leading: 3.0585938
Run Code Online (Sandbox Code Playgroud)
这意味着矩形原点位于前导而不是基线,我对此是否正确?
这意味着边界的坐标位于零Y坐标位于字符串基线且正Y坐标向下的空间中.在下图中,黑点对应于零Y:
因此,负bounds.getY()
(上升)对应于最顶部的坐标.正bounds.getHeight() + bounds.getY()
(下降+前导)将对应于此坐标空间中的最低坐标.