OpenSCAD 用户手册/WIP/文本度量
textmetrics()
返回有关文本大小和定位的信息,这些信息将应用于文本,如果文本的布局如其参数中指定的那样。
参数
textmetrics()
的参数与 text()
的参数完全相同。
返回值
textmetrics()
的返回值是一个具有以下属性的对象
position
一个 [x,y] 对,表示最小的包围文本的框的左下角。
size
一个 [x,y] 对,表示该框的大小。
ascent
文本基线到文本最高点的垂直距离(通常为正数)。
descent
文本基线到文本最低点的垂直距离(通常为零或负数)。
offset
一个 [x,y] 对,表示从原点到文本基线起点的距离。此值通常为 [0,0],但在使用非默认对齐时可能非零。
advance
一个 [x,y] 对,表示从当前文本的起点到下一个文本的起点的距离。通俗地说,它表示在开始下一个文本之前笔应该移动多远。此值仅在默认对齐情况下直接有用 - 水平文本左对齐/基线对齐和垂直文本居中/顶部对齐。
注意:与任何数组一样,可以使用对象式的 ".x" 或 ".y" 来引用 [x,y] 对中的两个条目。因此,可以使用 obj.size[0] 或 obj.size.x 来获取文本的 X 维度。
示例输出(为了可读性而重新格式化)
ECHO: { position = [2.2784, -5.7728]; size = [87.0362, 24.8832]; ascent = 19.1104; descent = -5.7728; offset = [0, 0]; advance = [89.5186, 0]; }
示例
echo(textmetrics(text="A",size=10));
fontmetrics()
返回有关指定字体和大小的信息。
fontmetrics()
的参数是大小和字体名称。
参数
size
字体大小 font
字体名称
返回值
fontmetrics()
的返回值是一个具有以下属性的对象
nominal
一个具有 ascent 和 descent 属性的对象,描述字体的“通常”升高和下降。对于大多数字体,这将是字母的大写字母的升高和带下降的字母的小写字母的下降。
max
一个具有 ascent 和 descent 属性的对象,描述字体的最大升高和下降。
interline
作为正数给出字体的设计行间距。
font
一个具有 family 和 style 成员的对象,给出所选字体的名称和样式。这些可能与提供的名称不同,如果指定的字体不可用,或者如果指定了像“sans”或“serif”这样的通用名称,或者如果只指定了样式。