《《iPhone开发基础教程(电子版下载)》.pdf

《《iPhone开发基础教程(电子版下载)》.pdf

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《《iPhone开发基础教程(电子版下载)》.pdf

12.1 图形世界的两个视图 285 1 第 12 章 2 使用Quartz 和OpenGL 绘图 3 4 5 到目前为止,本书中的所有应用程序都是通过UIKit框架中的视图和控件来构造的。借助 这些常备组件,我们可以执行许多操作,并且可以构造各式各样的应用程序界面。但 6 是,如果不能高瞻远瞩,某些应用程序会无法完全实现。例如,有时应用程序需要能够进行自定 义绘图。幸而,我们可以依靠两个不同的库来满足我们的绘图需要。一个库是Quartz 2D ,它是 7 Core Graphics框架的一部分;另一个库是OpenGL ES,它是跨平台的图形库。OpenGL ES是跨平 台图形库OpenGL 的简化版。OpenGL ES是OpenGL的一个子集,OpenGL ES是专门为iPhone之类 8 的嵌入式系统(因此缩写为字母“ES ”)设计的。本章将介绍这两个功能强大的图形环境。我们 将在这两种环境中构建示例应用程序,并尝试了解什么时候使用哪个环境。 9 12.1 图形世界的两个视图 10 尽管Quartz和OpenGL有许多共性,但它们之间存在明显差别。Quartz是一组函数、数据类型 以及对象,专门设计用于直接在内存中对视图或图像进行绘制。 11 Quartz将正在绘制的视图或图像视为一个虚拟的画布,并遵循所谓的绘画者模型。这只是一 种奇特的方式,之所以这么说,是因为应用绘图命令的方式很大程度上与将颜料应用于画布的方 12 式相同。如果绘画者将整个画布涂为红色,然后将画布的下半部分涂为蓝色,那么画布将变为一 半红色、一半蓝色或紫色。如果颜料是不透明的,应该为蓝色,如果颜料是半透明的,应该为紫 13 色。 Quartz 的虚拟画布采用相同的工作方式。如果将整个视图涂为红色,然后将视图下半部分涂 14 为蓝色,你将拥有一个一半红色、一半蓝色或紫色的视图,这取决于第二个绘图操作是完全不透 明的还是部分透明的。每个绘图操作都将被应用于画布,并且处于之前所有绘图操作之上。 另一方面,OpenGL ES 以状态机的形式实现。这个概念可能有点不好理解,因为不能将其归 15 结为一个简单的比喻,如在虚拟画布上绘画。OpenGL ES不允许执行直接影响视图、窗口或图像 的操作,它维护一个虚拟的三维世界。当向这个世界中添加对象时,OpenGL会跟踪所有对象的 16 状态。虽然OpenGL ES没有提供虚拟画布,但是却提供了一个进入其世界的虚拟窗口。可以向该 世界中添加对象并定义虚拟窗口相对于该世界的位置。然后,OpenGL根据配置方式以及各种对 17

文档评论(0)

qspd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档