我应该使用哪种算法来更改/修改曲线

时间:2011-12-31 12:29:59

标签: iphone quartz-2d cgpath

我创建了一个使用UIBezierPath绘制多条曲线的应用程序。现在我正在尝试在其中实现修改功能。要修改特定曲线,我可以做的一件事就是再次绘制所有曲线;我还没有实现这一点。但是我认为当曲线数量增加时这个算法不会非常有效,因为我必须存储数组中的所有点,并且每次进行修改时我都必须运行循环来绘制每条曲线。

我正在寻找更有效的算法。如果有人可以提供示例代码,将会很有帮助。

2 个答案:

答案 0 :(得分:0)

重绘曲线,直到出现使用Instruments测量的性能问题。如果再次发生这种情况,请使用Instruments来确定优化的最佳方法。

很容易陷入花费时间进行永不需要的优化。最初,花时间思考创建一个“干净”的代码要好得多。

答案 1 :(得分:0)

您可以将单个曲线表示为UIBezierPath,并通过为每条曲线创建一个CAShapeLayer并将形状图层的path属性指定给相应的CGPath属性来单独绘制它们。贝松的道路。要更新单个曲线,您只需操作一个贝塞尔曲线路径和相应的形状图层path属性。