为什么任何轮廓字体格式都不使用四阶或更高阶的贝塞尔曲线?
Why doesn't any outline font formats use Bézier curve of 4th order or higher?
TrueType 使用二阶,OpenType 使用三阶。为什么不更高?
是不是渲染的time/space复杂度太高了?在那种情况下,我想知道它们在大 O 表示法中的复杂性。
你不能设计更高阶的贝塞尔曲线,这仍然是创建字体最重要的方面。具有间接影响曲线的浮动控制点会使工作更难,而不是更容易。因此,虽然使用三次曲线而不是二次曲线有 objective 的价值(更好的弧近似、更简洁的曲线表达式等),但使用四次(或更高)比三次曲线没有明显的好处。事实上,quadratic/cubic 可以依赖的某些属性不适用于四次或以上,因此在设计阶段需要缓慢且 cpu 密集的算法,使它们 objective 更糟跟...共事。因此,没有人提出允许它们的系统。
至于复杂度:曲线阶数是它的复杂度。二次曲线的复杂度为 O(t²),三次曲线为 O(t³),四次曲线为 O(t⁴),等等("t" 是时间参数,因为这就是贝塞尔曲线的计算方式)
TrueType 使用二阶,OpenType 使用三阶。为什么不更高?
是不是渲染的time/space复杂度太高了?在那种情况下,我想知道它们在大 O 表示法中的复杂性。
你不能设计更高阶的贝塞尔曲线,这仍然是创建字体最重要的方面。具有间接影响曲线的浮动控制点会使工作更难,而不是更容易。因此,虽然使用三次曲线而不是二次曲线有 objective 的价值(更好的弧近似、更简洁的曲线表达式等),但使用四次(或更高)比三次曲线没有明显的好处。事实上,quadratic/cubic 可以依赖的某些属性不适用于四次或以上,因此在设计阶段需要缓慢且 cpu 密集的算法,使它们 objective 更糟跟...共事。因此,没有人提出允许它们的系统。
至于复杂度:曲线阶数是它的复杂度。二次曲线的复杂度为 O(t²),三次曲线为 O(t³),四次曲线为 O(t⁴),等等("t" 是时间参数,因为这就是贝塞尔曲线的计算方式)