5

我一直在閱讀幾個小時,現在documentation關於在objective-c可可應用程序中繪製二維圖形。似乎有幾種不同的技術都針對特定的任務。我的理解是,以下技術可以做到以下幾點。如果我錯了,請糾正我。可可二維圖形:石英,核心圖像或核心動畫?

  • Quartz 2D:用於在屏幕上繪製形狀,文本和圖像的主庫。
  • 核心圖形:這是包含Quartz的框架的名稱。這可以用作Quartz的同義詞。
  • QuartzGL:Quartz的GPU加速模式,默認情況下不啓用,而不是necessarily faster,用於在屏幕上繪製東西。
  • OpenGL:最低級別的庫,以更多代碼行爲代價直接與顯卡交談。更適合3D圖形。
  • 核心圖像:用於顯示圖像和文本的庫,但不是繪製形狀圖元的庫。
  • 核心動畫:用於自動動畫對象的庫。顯然不適用於moving large numbers of objects。也不適用於continuous animation of objects
  • QuickTime:一種庫,除了視頻之外,它顯然也可以處理圖像和文本,但可能不適合繪製原始形狀。

我想要做的是爲某些特定類型的數據創建瀏覽器。該視圖不會很複雜,並且將包括在特定位置繪製矩形。但是,用戶應該能夠通過向左或向右拖動視圖來移動,並且該移動應該是流暢的。這裏是一個非常接近一個例子我想要做:

http://jbrowse.org/ucsc/hg19/

,你會怎麼推薦拉絲工藝的我開始編碼?

回答

5

你想要石英。除非你繪製大量的數據,否則任何Mac(我假設Mac不是iOS)都應該輕鬆處理它。這很容易,高效,並可能會讓你需要去的地方。對於拖動動作,您可能會使用Core Animation圖層進行管理。

注意:最後所有內容都由AppKit(Mac)或UIKit(iOS)處理,最終由Core Animation處理。如果你正在做圖形,你會在某個時候遇到核心動畫,因爲它管理着顯示的所有內容。注意:如果你正在繪製那麼多的數據,你可以使用OpenGL,但即使如此,直到你開始顯示,可能需要數百萬個頂點或複雜的可視化,這個需求不應該太多。