如何在iOS中基于4个点绘制平滑的形状?

时间:2015-11-06 01:41:24

标签: ios cocoa-touch geometry core-graphics uibezierpath

我正在使用Sketch绘制如下图所示的分享 基本上,形状有4个控制点,我想将这些点连接成一个形状顺利

我尝试了UIBezierPath,但似乎API对我不起作用。例如,图片中显示的右点,我需要实际交叉它的线,而我拖动这四个点中的每一个,我可以得到一个平滑的形状,我怎么能实现呢? / p>

1 个答案:

答案 0 :(得分:3)

你想要一种叫做Catmull-Rom样条的东西。这是一种样条曲线,其中所有控制点都位于曲线上。

Catmull-Rom样条线将面临的问题是,对于某些控制点,您可以在曲线中引入您不想要的循环或扭结。

我在github上有一个名为RandomBlobs的项目,演示了如何执行此操作。

Here is a Youtube video显示应用的输出:

(感谢Erica Sadun,该技术的杰出“iOS Developers' Cookbook”系列的作者。并且是免责声明。我是她的几本书中的技术审稿人之一,但我这样做是因为我真的喜欢她的写作并希望提供帮助。)