5

Ho letto per diverse ore ora documentation sul disegno di grafica bidimensionale in un'applicazione cacao oggettivo-c. Sembra che ci siano diverse tecnologie tutte specifiche per determinati compiti. La mia comprensione è che le seguenti tecnologie fanno le seguenti cose. Per favore correggimi se sbaglio.Grafica 2D Cocoa: Quartz, Core Image o Core Animation?

  • Quartz 2D: la libreria primaria per disegnare forme, testo e immagini sullo schermo.
  • Grafica principale: questo è il nome del framework che contiene Quarzo. Questo può essere usato come sinonimo di Quartz.
  • QuartzGL: una modalità di accelerazione GPU per Quartz che non è abilitata per impostazione predefinita e non necessarily faster per disegnare oggetti sullo schermo.
  • OpenGL: la libreria di livello più basso, parla direttamente alla scheda grafica al costo di più righe di codice. Più adatto per la grafica 3D.
  • Immagine principale: una libreria per la visualizzazione di immagini e testo, ma non tanto per il disegno di primitive di forma.
  • Animazione core: una libreria per l'animazione automatica degli oggetti. Apparentemente non adatto per moving large numbers of objects. Né per continuous animation of objects.
  • QuickTime: una libreria che a quanto pare fa anche immagini e testo oltre al video, ma probabilmente non va bene per disegnare forme primitive.

Quello che mi piacerebbe fare è creare un browser per alcuni tipi specifici di dati. La vista non sarebbe molto complicata e consisterebbe nel disegnare rettangoli in posizioni specifiche. Tuttavia, l'utente dovrebbe essere in grado di muoversi trascinando la vista verso sinistra o destra e questo movimento dovrebbe essere fluido. Ecco un esempio che è molto vicino a quello che sto cercando di fare:

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

Quale tecnologia di disegno VUOI Consiglierei di iniziare la codifica con?

risposta

5

Si desidera il quarzo. A meno che il tuo grafico non contenga quantità di dati, qualsiasi Mac (presumo che Mac non sia iOS) dovrebbe gestirlo facilmente. È facile, efficiente e probabilmente ti porterà dove devi andare. Per il movimento di trascinamento, probabilmente lo gestirai con i livelli dell'anima core.

Nota: tutto alla fine viene gestito da AppKit (Mac) o UIKit (iOS) e, infine, Core Animation. Se stai facendo grafica, ad un certo punto incontrerai Core Animation, poiché gestisce tutto ciò che viene visualizzato.

Nota: Se si Rappresentazione grafica che quantità di dati, è possibile utilizzare OpenGL, ma anche allora, la necessità di non dovrebbe essere troppo fino a quando si inizia la visualizzazione, probabilmente molti milioni di vertici o visualizzazioni complesse.

Problemi correlati