2011-12-21 210 views
1

我是CGPath概念的新手,對Bezier曲線有一個體面的想法。 我正在創建一個使用視圖的小型免費手繪圖程序。 在drawRect中,我不斷從一個數組中繪製一組記錄。 當我的鼠標移動時,我向該數組添加一個新行並刷新視圖。 再次調用drawrect並再次繪製記錄的一組線。使用CGPath有什麼好處?

我正在閱讀有關CGPath,它說它在內部做了類似於我正在做的事情。 存儲一組線和貝塞爾曲線。

如果我使用CGPath,那麼是否有任何性能改進?

回答

0

希望這回答你的問題關於CGPath。

你可能不想這麼輕易失去你的路,尤其是如果它 描繪你想使用一遍又一遍複雜的場景。對於這個 的原因,Quartz提供了兩種數據類型來創建可重複使用的路徑CGPathRef和CGMutablePathRef 。

創建路徑部分中的參考。 http://developer.apple.com/library/IOS/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/dq_paths.html#//apple_ref/doc/uid/TP30001066-CH211-SW1

+0

它沒有完全回答我的問題。 – 2011-12-22 12:51:48

+0

如果您重複使用CGPath(如撫摸和填充路徑),則會有一些性能提升。例如,如果不使用CGPath,比如只使用CGContextStrokePath,「Quartz使用圖形狀態的線寬和筆觸顏色來繪製路徑。作爲調用此函數時的副作用,Quartz會清除當前路徑。」 - Apple iOS SDK文檔。 – 2011-12-22 14:11:00

+0

非常感謝,看來我將不得不習慣通過文檔走了很多:) – 2011-12-26 05:23:15