AGG参考手册中文.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AGG参考手册中文

AGG参考手册 前言 简介 …… Anti-Grain Geometry (AGG)是一个用标准的平台无关的C++开发的通用图形工具包。在把高质量二维图形作为关键的计算机程序中,它可以应用被应用于许多方面。例如,AGG可以用于渲染二维地图。AGG仅仅使用C++和标准C的函数,如memcpy,sin,cos,sqrt等。基本的算法甚至没有使用C++的标准模板库。因此,AGG能够在大量的应用程序中使用,包括嵌入式系统。 另一方面,AGG允许使用者替换图形库的任何部分,比如当它不能满足性能的要求时进行库的替换。使用者也可以根据需要添加其它的颜色空间。这一切的实现都是因为AGG广泛采用了C++的模板机制。 AGG不是一个结构紧密的图形库,且不容易使用。我认为AGG是一个“创建其它工具的工具”。这意味着AGG中没有“Graphics”对象或其它类似的结构,它包含了许多组织松散、能组合或是单独使用的算法。这些算法都有定义良好的接口,并且算法之间隐式或显式的依赖关系尽可能最小。 …… 大部分图形库都有一个包含成百上千方法的单独类,如GDI+中的“Graphics”。这个对象也可以隐式存在,如OpenGL。总之,所有常用的图形工具包,包括Java2D,DispalyPDF,SVG以及其它优秀的图形工具包都显式或隐式的含有这个类。这种做法简单而且非常适用于一些场合,但是去一直受到限制。它在简单的场合中性能很好,但至少我仍未遇到可以完全满足所有需求的图形库。此外,所有此种类型的库或标准都过于庞大。大部分功能从未被使用,而一些简单的操作却不能实现。图形引擎(或库)是一兆字节来计算的。如果使用最先进的SVG浏览器,它只在显示最简单的基元时表现良好。只要试图使用一些高级操作,如用不同的图形过滤器与SVG交互,将会发生内存泄露,甚至崩溃。这并不是因为它有不良设计,而是因为采取了极端复杂的设计。这种设计本身成为了不可能完成的任务,不能被人感知,,就像不能感知无穷大一样。 建议 AGG主要的目标是要打破上述的传统,展现其稳定、轻巧、灵活、自由的优点。它的基本概念开始似乎并不遵循惯例,非常接近于STL,但还是存在着很大的区别。STL是一个通用的C++工具,而AGG是C++图形库。STL作为一个方便的工具包直接在应用程序中使用,但我并不建议以同样的方式使用AGG。比较好的方法是针对需要处理的问题,对AGG进行轻量级的、面向问题的封装后再使用。这与GDI+又有什么不同呢?首先,可以完全控制封装后的AGG。AGG只是提供了一系列基本的算法和灵活的设计,使得算法间显式或隐式的联系都最小。使用者可以只定义接口、转换管道和输出格式,甚至可以模拟任何已经存在的图形接口的一部分。例如,使用AGG光栅化器来在屏幕上显示图形并直接调用Windows GDI来打印,并合并为一个单独的API。不信吗?下图是GDI+和AGG的渲染质量的比较。 但是最重要的是,如果设计足够灵活,程序将是完全可移植的。AGG还是一个可以将不同的输出合并为一个统一的API的工具。另外,在基于Web的应用程序中,可以使用AGG在服务器端生成栅格图像。而且AGG是完全跨平台的。 反走样和子像素精度 反走样是在低分辨率设备上显示图像时用于改善视觉质量的一种广为人知的技术。它基于人的视觉特性。看看下图,尝试猜测一下它表达的意思。 这是用反走样发生绘制的单词。根据Kotelnikov-Shannon定理,图像的最大频率远高于Shannon极限。 现在来看看正常大小的同一幅图,能够很容易地认出“stereo”这个词。然而,这两幅图是完全相同的。第一幅仅仅是第二副的放大版本。这个特性允许在累积经验的基础上重新构建缺失的信息。反走样并没有让你看得更清楚,只是让你的大脑更好得运转并重构丢失的信息。反走样的成果显而易见。如它使得我们可以绘制出更加详尽的地图。 但是关键并不是反走样本身,而是可以利用子像素精度的技术绘制基元。这对于线的视觉厚度尤其重要。首先,如果利用了子像素精度,即使只使用简单的Bresenham线插值法也可以获得比较好的效果。下图显示了使用简单的Bresenham插值后放大的结果。 如图中的(2)和(3),细的黑线就是需要插值的线。如果利用子像素精度,虽然线的起点和终点落在同一个像元中,但是会显示两种不同的像素集合。而且两条线有完全不同的切线,这是非常重要的。如果只使用经典的Bresenham插值算法而不考虑子像素精度,结果都会如图中的(1)。这在用短线段近似表示曲线时尤为重要。但是如果同时考虑反走样和子像素精度,能够获得更好的效果。观察下图的不同。 这三个螺旋形都是由短的直线段近似表示的。左边的那幅图采用的是规则的整数Bresenham,坐标与像素匹配(使用Winwow

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档