跳转到内容

OpenSCAD 用户手册/WIP/文本度量

来自维基教科书,开放世界中的开放书籍

textmetrics

[编辑 | 编辑源代码]

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 维度。

textmetrics() 函数返回的信息。

示例输出(为了可读性而重新格式化)

 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() 返回有关指定字体和大小的信息。

fontmetrics() 的参数是大小和字体名称。

参数

size 字体大小 font 字体名称

返回值

fontmetrics() 的返回值是一个具有以下属性的对象

nominal 一个具有 ascent 和 descent 属性的对象,描述字体的“通常”升高和下降。对于大多数字体,这将是字母的大写字母的升高和带下降的字母的小写字母的下降。

max 一个具有 ascent 和 descent 属性的对象,描述字体的最大升高和下降。

interline 作为正数给出字体的设计行间距。

font 一个具有 family 和 style 成员的对象,给出所选字体的名称和样式。这些可能与提供的名称不同,如果指定的字体不可用,或者如果指定了像“sans”或“serif”这样的通用名称,或者如果只指定了样式。

华夏公益教科书