2012-04-09 88 views
1

我需要創建一個小繪圖/繪畫應用程序,所以我轉向Beginning IPad Development for IPhone Developers: Mastering the IPad SDK By Jack Nutting, Dave Wooldridge, David Mark提高繪圖性能(用於Dudel應用程序)

這很不錯。架構很強大。但是,繪圖應用程序(Dudel)在性能方面不太好。有兩個主要問題(對於我來說,目前):

  1. 最重要:在一段時間後圖形放緩。原因:drawRect每次都被調用,用於所有路徑。
  2. 用鉛筆工具繪圖不光滑。原因:它使用addLineToPoint:而不是(可能是)addQuadCurveToPoint:
  3. 沒有橡皮擦控制。但這實際上不是問題,因爲我們可以選擇白色作爲繪畫去給橡皮擦一個錯覺。但是,如果有更好的實現,我很有興趣知道。

問:

是否有解決方案,在那裏,解決了這些問題,並提供一個簡單而有效的繪圖應用程序?

注意:我還需要撤銷/重做功能。

+0

您是否爲您的Point 1找到解決方案? – 2013-07-08 21:15:54

+1

我設法改善了性能,但需要額外的成本。每次添加新路徑時都不重繪。相反,我繪製了先前繪製的圖像的已拍攝圖像。 – Mustafa 2013-07-10 07:01:44

回答

1

讓我試着一個接一個地回答你的問題。

用鉛筆工具繪圖不光滑。原因:它使用addLineToPoint:而不是(可能是)addQuadCurveToPoint :.

你說的是真的.IOS設備在定義的時間間隔內尋找觸摸。如果你快速移動你的手,很可能你會失去很少的接觸點。因此使用線連接點導致難看的尖峯。

我們可以通過curve fitting算法來平滑曲線。但是,圖中的一些調整可以導致質量的可測量提高。 Here就是一個例子。

橡皮擦控制

如果你知道你可以使用它作爲畫筆顏色給橡皮擦感的背景色。如果你不知道的背景,你可以使用

CGContextSetBlendMode(context, kCGBlendModeClear); 

撤銷/重做

可以使用NSUndoManager