优化UIBezierPath绘图

时间:2013-05-18 18:19:17

标签: ios core-graphics drawrect uibezierpath quartz-core

我有一个问题,我希望社区中的某个人可能有一些专业知识。我正在制作一个绘图应用程序。进入它的功能和原因是太多了,但是在每次触摸动作:withEvent时,必须进行重新计算近似贝塞尔曲线的过程,然后重新绘制。近似算法使得在任何给定时刻,三次曲线可以变成二次曲线并且返回。因此,整个曲线的边界框可以相当大地改变点到点。     天真的方法是简单地采用贝塞尔曲线的边界并将其传递给setNeedsDisplayInRect:,这显然比简单地调用setNeedsDisplay要好得多,但是当我分析代码时,当然,在drawRect中花费了大量的时间。 。这带来了问题,但我希望减少这个问题。

现在,如果UIBezierPath内部的笔划调用具有足够的开销,则可能无法实现最小化需要重新绘制的矩形的体积。情况就是这样,简单地使用天真的方法就成了最好的选择。这是可能性#1。      然而,我希望尝试的是创建一种算法,该算法最小化完全覆盖贝塞尔路径的一组矩形的总体积。换句话说,不是一次调用setNeedsDisplayInRect,而是调用它几次。 rects的联合完全覆盖了UIBezierPath。我希望我能在LaTex中更正式地写出来,但是我想减少我需要重绘的区域,但需要注意的是整个bezier路径是这些rects联合的一部分。     想想多米诺骨牌。如果我可以从各种形状和大小的无限多米诺骨牌中进行选择,我将如何计算覆盖任意贝塞尔曲线的多米诺骨牌集合,使得多米诺骨牌的体积最小。

0 个答案:

没有答案