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,但即使如此,直到你开始显示,可能需要数百万个顶点或复杂的可视化,这个需求不应该太多。