首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当轮廓上的第一个点偏离曲线时,如何解释freetype字形轮廓

当轮廓上的第一个点偏离曲线时,如何解释freetype字形轮廓
EN

Stack Overflow用户
提问于 2010-08-12 16:08:45
回答 1查看 1.3K关注 0票数 2

实际上,我正在开发一个渲染器,它可以将freetype字形转换为折线来控制激光打标系统。我遇到的问题是,我不知道如何正确地处理从曲线点开始的轮廓(99.9%从曲线点开始!)。我已经搜索了很长一段时间,但我找不到任何有用的信息。

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-07 16:01:33

FreeType使用三种类型的点:曲线上,二次控制点(也称为‘圆锥’)和三次控制点。将二次控制点与其两侧的曲线上点分组,以形成定义二次Bézier样条所需的三个点。三次控制点必须成对出现,并与任意一侧的曲线上点组合在一起,以组成三次贝塞尔样条所需的四个点。

但是,只有二次点的简写表示法。当二次点彼此相邻时,在它们之间插入曲线上的控制点。还有另一种约定,如果闭合路径从一个二次点开始,则检查路径的最后一个点,如果它是二次,则在它们之间插入一个曲线上的点,并采用该路径从该曲线上的点开始;如果最后一个点不是二次控制点,则将其本身用作起点。

如果您想确切地了解这是如何完成的,请查看FreeType源代码。函数FT_Outline_Decompose遍历路径并将其转换为一系列这两种类型的直线和曲线。它在这个文件中:

http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/src/base/ftoutln.c

特别有趣的部分以下面的注释开始(再次注意,“conic”在本文中的意思与“quadratic”相同):

代码语言:javascript
复制
/* first point is conic control.  Yes, this happens. */
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3465809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档