二维计算机图形
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
此条目没有列出任何参考或来源。 (2011年2月5日) |
二维计算机图形(2D Computer Graphics),也简称为二维 CG,是基于计算机的数字图像的产生—主要是从二维模型(例如二维几何模型,文本,和数字图像)产生,并且使用只适用这些模型的技术。该词也用于指代这些模型本身。采用该技术的计算机科学的分支称为二维计算机图形学[来源请求]。
二维计算机图形主要用于本来采用传统印刷和绘制技术的那些应用场合,例如字体、地图、工程制图、广告、等等。在那些应用中,二维图像不仅仅是现实世界物体的一个表示,它本身是有附加含义的独立个体;因而二维模型在那些应用中更为实用,因为它们给出了比三维计算机图形更为直接的控制(三维图形更象摄影而非打印)。
在诸如桌面发布、工程、和商务这样的很多领域,基于二维计算机图形的文档的表述比相应的数字图像可能会小得多—经常只有1/1000 或者更小。该表示法也更灵活,因为它可以在不同的图像分辨率进行绘制以适应不同的输出设备。因而,文档和插图经常采用二维图形文件存储和传输。
二维计算机图形于1950年年开始,基于矢量图形设备。它们在接下来的数十年间被光栅设备大量替代。PostScript语言和X Window System协议是该领域里程碑式的发展。
二维图形技术
二维图形模型可以是如下这些的组合:几何模型(也称为向量图形),数字图像(也称为光栅图形),需要排版的文本(由内容、字体和大小、颜色、和方向定义),数学函数和方程,等等。这些组件可以通过象平移、旋转、缩放这样的二维几何变换来修改和操作。
在面向对象图形中,图像通过一个有自绘制方法—一个用任意的算法来赋予图像像素色彩值的例程—的对象来描述。复杂的模型可以通过将更简单的对象组合起来得到,可以采用面向对象编程的范式。
直接绘制
创建一个复杂图像的一个简易办法是从一块空白画布开始—填满单一背景色的光栅图(像素数组—也称为位图)—然后通过正确的次序“画”,“漆”或者“贴”上简单的色块。特别的有,画布可以是计算机显示器的帧缓存。
有些程序会直接设置像素色彩值,但多数会依赖一些二维图形库以及(或者)机器的图形卡,它们通常会实现下列操作:
- 将一个给定的数字图像以一个给定的偏移贴到画布上;
- 在给定的位置和角度将一个字符串以给定的字体写如帧缓存;
- 绘制一个简单的几何图形,例如用三个定点定义的三角形,或者给定圆心和半径的圆;
- 绘制一条线段、圆弧、或者用给定粗细的虚拟笔绘制简单曲线。
扩充色彩模型
文本、形状和线条使用用户指定的色彩绘制。很多库和卡提供色彩梯度,它对于产生平滑变化的背景、阴影效果、等等都很实用(参看Gouraud明暗图。像素色彩也可以从纹理中获取,例如从一个数字图像中(这样就可以模拟刮擦网目调(screentone)和以前只有卡通片中才有的“棋盘格喷漆”)。
用给定色彩绘制一个像素通常会取代其原先的色彩。但是,很多系统支持用透明和透过色彩绘制,它只会修改原先的像素值。
两个色彩也可以用更花哨的方法组合,例如通过计算它们的比特异或。这个技术被称为反色或者色彩翻转,并经常在图形用户界面中采用,用于高亮显示、钉钉板(rubber-band drawing)、以及其它临时绘制—因为再次以同样的色彩绘制相同的图形会恢复原始的像素值。
层次
二维计算机图形采用的模型经常不提供三维形状,也不提供光照、阴影、反射、折射、等等这样的三维光学效果。但是,它们通常会有多个层次的模型(概念上就是墨水、纸、或者胶片组成的层次;可以是不透明、透明、或者半透明—并且以特定次序叠加。该次序通常用单个数字定义(该层次的深度,或者说离观察者的距离)。
分层模型有时称为2 1/2维计算机图形。它们使得模拟传统的基于胶片和纸的草图和印刷技术成为可能;并使得用户能够不对其它层次产生任何影响地编辑任意一层。因此,它们在多数图形编辑器中得到采用。分层模型使得复杂图像的反走样变得更好,并且为诸如榫接和奇偶规则的特殊技术提供了一个正确的模型。
分层模型也用于允许用户在察看或打映文档时限制不需要的信息,例如地图上的公路或者铁路、集成电路布线图的特定加工层次、商务信件的手写注释等等。
在分层模型中,目标图像通过“绘制”或者“粘贴”每个层次到虚拟画布上产生,次序是按深度递减。概念上,每一层首先独自绘制,产生所需分辨率的数字图像,然后在画布上一个像素一个像素地描绘。当然,层次全透明的部分无须绘制。绘制和描绘可以并行的进行,也就是说,每个层次的像素在绘制进程中一产生就可以描绘到画布上。
包含复杂几何体的层次(例如文本或者多边形)可以分解为更简单的元素(分别是字符或者线段),然后作为分离的层次以某种次序绘制。但是,这个办法可能在两个元素重叠在同一个像素时产生不良的走样这样的人工因素。
参看可移植文档格式#层次。
二维图形硬件
现代计算机图形卡几乎全部采用光栅技术显示,把整个屏幕分成像素的矩形点阵,这是因为基于光栅的图形硬件和矢量图形硬件相比要低价。多数图形硬件对于位图传送操作和精灵绘制有内部支持。专门用于位图传送的协处理器称为传送器芯片。
1970年代晚期和1980年代早期的用于8位游戏平台和家用机的经典二维图形芯片包括:
二维图形软件
很多图形用户界面(GUI),包括Mac OS,微软视窗,或者X窗口系统,主要基于二维图形概念。这些软件提供了和计算机交互的视觉环境,并且常常包括某种形式的视窗管理器来帮助用户从概念上区分不同的应用程序。 单个软件应用程序的典型用户界面也是本质上二维的,部分因为最普通的输入设备(例如鼠标)被限制于做二维的运动。
二维图形在打印机、绘图仪、线切割机等等外围设备的控制中殊为重要。它们也用于早期的视频游戏和计算机游戏中;并且依然在棋牌类游戏中使用,例如接龙、象棋、麻将、等等。
二维图形编辑器或者说绘图程序是应用程序级的软件,用于图像、流程图、插图等的创建,它采用二维图形体素的直接操纵实现(通过鼠标,绘图版,或者类似的设备)。这些编辑器一般提供二维几何体素以及数字图象;有些甚至支持过程化模型。插图通常内部表示为分层模型,经常会有一个等级结构以方便编辑。这些编辑器通常输出图形文件,其中层和体素分别以其原始形式保存。MacDraw,是于1984年在麦金塔系列计算机上创建的,它是这类程序的一个早期的例子;现代的例子有商用产品Adobe IllustratorAdobe Animate 和CorelDraw,以及免费编辑器xfig。也有很多二维图形编辑器专用于特定的制图,例如电气、电子和大规模集成电路线路图、地形图、计算机字体、等等。
图像编辑器是专用于数字图像的操作的,主要通过自由手绘和信号处理操作。他们主要采用直接绘制的范型,其中用户控制虚拟笔、刷、以及其他自由手动艺术设备来将色彩绘于虚拟画布上。有些图像编辑器支持多层模型;但是,为了支持象模糊这样的信号处理操作,每个层通常表示为一个数字图像。所以,任何编辑器提供的几何体素直接被转换成像素并描到画布上。光栅图形编辑器这个名称有时被用来强调该方法和一般也能处理矢量图形的编辑器的不同。最早的流行的图形编辑器有苹果公司的MacPaint,MacDraw的伴侣软件。现代的例子有免费的GIMP编辑器,商用产品Photoshop和Paint Shop Pro。这类软件也包括很多专门化的编辑器—用于医药、遥感、数字摄影、等等。
参看
|
|