freetype 解析字体轮廓
作者:互联网
解析说明
- 编译 freetype 文件,生成 lib 文件,配置到项目中
- 导入头文件,配置相关对象(library,face等)
- 通过字体轮廓 outline 对象拿到每个关键点
- ttf 字体绘制时只使用到了线段和二维贝塞尔曲线,因此得到关键点后需要判断每个点的类型。
- 关键点分为端点和控制点,两个相邻的端点表示一条线段,端点之间有一个控制点时表示一条二维贝塞尔曲线,一个端点后跟两个控制点,也表示二维贝塞尔曲线,且要在两个控制点的中点处额外添加一个端点,进行绘制(绘制二维贝塞尔曲线时,要求是两个端点一个控制点)。
- 首先是判断该轮廓的起点,若是端点,可直接遍历该轮廓,进入循环判断;若是控制点,则要判断第二个点,第二点是端点,则起点从第二点开始,遍历轮廓;若第二点也是控制点,以第一、二点的中点作为起点,往后遍历轮廓。
- 然后是对轮廓的每个点进行遍历,判断该点的类型,与前面的端点配合组成线段或曲线。
- 最后是轮廓终点的判断,要与起点连起来,组成封闭曲线。
标签:freetype,解析,曲线,贝塞尔,控制点,字体,端点,遍历,轮廓 来源: https://www.cnblogs.com/pursue-lss/p/16463024.html