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