5

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

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

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

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

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

4

1 回答 1

5

你想要石英。除非您绘制大量数据,否则任何 Mac(我假设 Mac 不是 iOS)都应该轻松处理它。它简单、高效,并且可能会将您带到您需要去的地方。对于拖动运动,您可能会使用 Core Animation 层来管理它。

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

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

于 2012-06-06T19:08:44.493 回答