样条记录

样条记录表示 TrueType 使用的二次曲线(即二次双样线)。 样条记录以上一条记录中的最后一个点开头(或者对于轮廓中的第一条记录,以起始点开头)。 对于第一条样条记录,记录中的起始点和最后一个点位于字形轮廓上。 对于所有其他样条记录,只有最后一个点位于字形轮廓上。 样条记录中的所有其他点都脱离字形轮廓,必须呈现为 b 样条的控制点。

轮廓中的最后一条样条或折线记录始终以轮廓的起点结尾。 这种排列可确保关闭每个轮廓。

由于 b-spline 需要三个点(一个点离轮廓上的两个点之间的字形轮廓),因此当样条记录包含多个离曲线点时,必须执行一些计算。

例如,如果样条记录包含三个点(A、B 和 C),并且它不是第一条记录,则 A 和 B 点不在字形轮廓下。 若要解释点 A,请使用当前位置(始终位于字形轮廓上)和点 A 和 B 之间的字形轮廓上的点。若要在 A 和 B 之间查找中点(M),可以执行以下计算。

M = A + (B A)/2

根据 TrueType 字体中使用的样条格式的定义,样条记录中连续脱轮廓点之间的中点是字形轮廓上的点。

如果当前位置由 P 指定,则此样条记录定义的两个二次样条是(P、A、M)和(M、B、C)。