天天看点

《iOS 6核心开发手册(第4版)》——1.9节秘诀:平滑绘图

本节书摘来自异步社区《ios 6核心开发手册(第4版)》一书中的第1章,第1.9节秘诀:平滑绘图,作者 【美】erica sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.9 秘诀:平滑绘图

ios 6核心开发手册(第4版)

依赖于使用的设备和涉及的并发处理数量,捕获用户姿势可能产生比想要的更粗糙的结果。触摸事件通常受cpu要求以及握手协议限制。平滑算法可能通过在点之间进行插补操作来抵消这些限制。图1-4演示了由粒状输入导致的棱角类型,以及可代之以应用的平滑效果。

《iOS 6核心开发手册(第4版)》——1.9节秘诀:平滑绘图

图1-4 可以实时应用catmull-rom平滑,改进触摸事件之间的弧度。

这里显示的图像基于完全相同的姿势输入,其中分别显示了应用和未应用平滑两种效果

catmull-rom样条插值在关键点之间创建连续的曲线。该算法确保所提供的每个初始点都仍然是最终曲线的一部分,得到的路径将保持原始路径的形状。可以选择在每一对参考点之间插入点的数量,需要在处理能力与更好的平滑效果之间进行折衷。添加的点越多,消耗的cpu资源也越多。在使用本章附带的示例代码时可以看到,一点点的平滑都要经历较长的时间,甚至在更新的设备上也是如此。最新的ipad的响应速度是如此之快,以至于它很难在一开始就绘制出锯齿状特别突出的线条。

秘诀1-8演示了如何从现有的贝塞尔曲线路径中提取点,然后应用样条插值,创建平滑的结果。catmull-rom一次使用4个点,使用在那些点之间指定的粒度,计算第二个点和第三个点之间的中间值。

秘诀1-8提供了一个示例,其中只显示了可能添加到应用程序中的一类实时的几何处理。可以用类似的方式应用计算几何领域中的许多其他的算法。

《iOS 6核心开发手册(第4版)》——1.9节秘诀:平滑绘图
《iOS 6核心开发手册(第4版)》——1.9节秘诀:平滑绘图

继续阅读