【问题标题】:Core Animation or OpenGL ES?核心动画还是 OpenGL ES?
【发布时间】:2010-10-25 03:28:04
【问题描述】:

我想做以下事情:

点击屏幕并在点击的点周围绘制 3 个 cricle。 使用 Core Animation 还是 OpenGL ES 更好?

我从哪里开始?

【问题讨论】:

  • OpenGL 中没有空间。此外,在 iPhone 上,它是 OpenGL ES(嵌入式系统)。我已经编辑了你的问题。

标签: iphone cocoa-touch opengl-es drawing core-animation


【解决方案1】:

学习 OpenGL ES 的优势在于,您投入学习它的时间将在未来的 iPhone 应用程序和其他设备上为您提供良好的服务。

在 OpenGL ES 中,没有内置的方法来绘制圆,因此请使用正弦和余弦从线段中构建圆。

【讨论】:

  • 好的,OpenGL ES 看起来很有希望。下次我会试试的,我有几个小时的免费时间。
【解决方案2】:

我的经验是:我的应用程序变得越复杂,我就越意识到我应该使用 OpenGL ES 来做我想做的事情。

因此,对于您的情况,如果您所描述的就是全部,那么 Core Graphics 可以解决问题。但是,我猜它不仅仅是三个圆圈。

完全没有使用 OpenGL 的经验,ES 的学习曲线大约是 20 天。

因此,我的建议是:OpenGL ES 几乎适用于所有基于帧到帧图形的应用

【讨论】:

  • 酷,20 天就可以了。您是只使用 Apple 文档,还是有什么书可以推荐?
  • 我推荐红皮书 (glprogramming.com/red)。接下来,查看来自 Khronos (khronos.org/opengles) 的 OpenGL 页面。当然还有值得推力的谷歌。
【解决方案3】:

Core Graphics 绝对更简单,更适合 2D。 OpenGL ES 是为 3D 设计的,但也可以用于 2D。两者都可以使用,所以如果您已经知道一个,请使用它。应该没那么重要。

我已经了解 OpenGL,所以即使是 2D,我也倾向于使用 OpenGL ES,但如果您以前没有使用过,请使用 Core Graphics。

【讨论】:

  • 为什么 Core 图形在 2D 上比 OpenGL ES 更好?
【解决方案4】:

如前所述,Core Graphics 框架可能是您想要的。一个好的方法是继承 UIView,然后覆盖 drawRect:touchesEnded:withEvent: 这两个方法。

当 UIView 上的触摸事件结束时,您可以从传递给 touchesEnded:withEvent: 的事件中获取最后一次触摸的点,并以某种方式将其存储在子类 UIView 的实例中。

然后,在您的 drawRect: 实现中,您将获得存储的最后一个接触点,并使用对 CGContextAddEllipseInRect 的三个调用在其周围绘制三个圆圈,如下所述:Quartz 2D Programming Guide: Paths(需要注册为 Apple 开发人员)。

【讨论】:

  • 哇,超级方法和文档开始了!谢谢。
【解决方案5】:

这最好用 Quartz 2D(也称为 Core Graphics)来完成

Apple's Quartz programming guide

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多