Cocoa 2D图形:Quartz,Core Image或Core Animation?

xAp*_*ple 5 cocoa core-animation core-graphics objective-c quartz-graphics

我已经阅读了几个小时的文档,关于在objective-c cocoa应用程序中绘制二维图形.似乎有几种不同的技术都特定于某些任务.我的理解是以下技术可以做到以下几点.如果我错了,请纠正我.

  • Quartz 2D:用于将形状,文本和图像绘制到屏幕的主库.
  • 核心图形:这是包含Quartz的框架的名称.这可以用作Quartz的同义词.
  • QuartzGL:Quartz的GPU加速模式,默认情况下不启用,不一定能更快地在屏幕上绘制内容.
  • OpenGL:最低级别的库,以更多代码行为代价直接与显卡对话.更适合3D图形.
  • 核心图像:用于显示图像和文本的库,但不是用于绘制形状基元的库.
  • 核心动画:用于自动动画对象的库.显然不适合移动大量物体.也不是连续动画的对象.
  • QuickTime:除了视频之外还显示图像和文本的库,但可能不适合绘制原始形状.

我想要做的是为某些特定类型的数据创建一个浏览器.视图不会非常复杂,包括在特定位置绘制矩形.但是,用户应该能够通过向左或向右拖动视图来移动,并且此移动应该是流动的.这是一个非常接近我想要做的例子:

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

你会推荐什么样的绘图技术我开始编码?

Lin*_*ios 5

你想要Quartz.除非您绘制大量数据,否则任何Mac(我假设Mac不是iOS)都应该轻松处理.它简单,高效,可能会让您到达目的地.对于拖动动作,您可能会使用Core Animation图层来管理它.

注意:最终的所有内容都由AppKit(Mac)或UIKit(iOS)处理,最终由Core Animation处理.如果你正在做图形,你会在某些时候遇到Core Animation,因为它管理所有显示的内容.

注意:如果要绘制那么多数据,可以使用OpenGL,但即便如此,在开始显示之前不需要太多,可能需要数百万个顶点或复杂的可视化.