矢量图形是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。矢量图形与使用像素表示图像的位图不同。
所有的现代计算机显示器都要将矢量图形转换成栅格图像的格式,包含屏幕上每个像素数值的栅格图像保存在内存中。
从计算机发展的最初1950年代一直到1980年代,曾经使用过一种不同类型的矢量图形系统显示器。在这些系统中CRT显示器的电子束直接逐段生成所需图形,屏幕其它部分保持为黑的状态。为了达到没有闪烁或者接近没有闪烁的效果,这个过程每秒要重复很多次。这种显示系统可以生成分辨率非常高的艺术线条,并且不需要栅格系统生成同样分辨率所需要的对于当时来说非常巨大的内存空间。这种基于矢量的显示器称为X-Y显示器。
矢量图形显示器的最初应用之一是US SAGE防空系统。矢量图形系统只有在1999年美国的空管中出现过故障,现在依然在军队以及一些特殊系统中使用。另外,1963年,计算机图形学先驱Ivan Sutherland在MIT Lincoln Laboratory的TX-2上使用矢量系统运行他的Sketchpad程序。
后来的矢量图形系统包括Digital的GT40 。有一个名为Vectrex的家庭游戏系统使用了矢量图形,另外还有“Asteroids”以及“Space wars”这样的游乐中心游戏也使用了矢量图形。另外值得一提的是Tektronix 4014,尽管它的显示是静态的。
如今矢量图形这个术语主要用于二维计算机图形学领域。它是艺术家能够在栅格显示器上生成图像的几种方式之一。另外几种方式包括文本、多媒体以及三维渲染。实质上而言,所有当今的三维渲染都是二维矢量图形技术的扩展。工程制图领域的绘图仪仍然直接在图纸上绘制矢量图形。
例如,程序绘制一个半径为的圆所需的主要信息是:
这种绘制图比位图的优越之处有:
这只是其中的一部分,另外还有各种各样用于不同应用程序的曲线,如“Catmull-Rom样条”、非均匀有理B样条等。
通常位图图像也是一个元对象,从概念上来看它同矩形的表现类似。
矢量图形编辑器通常可以旋转、平移、镜像、拉伸、扭曲矢量图形,通常可以进行仿射变换,改变深度位置并且将图元与复杂物体合并。更加复杂的变换包括封闭形状的集合运算(并集、补集、交集等)。
矢量图形非常适合于与设备无关的简单或者合成的制图或者不需要实现真实感的场合。例如,“PostScript”以及PDF的页面描述语言就使用了矢量图形模型。
矢量艺术线条是打印领域中的一项关键技术。因为艺术线条是从一系列数学点得到的,所以无论如何缩放艺术线条打印结果质量都非常高。例如,将同一个矢量标识图打印到名片上或者放大到广告牌上,都可以得到同样的图像质量。与此不同的是,如果位图从名片大小放大到广告版的尺寸,那么图像细节将会变得非常模糊。
在三维计算机图形学中,矢量表面表示非常常见,而位图可以用作表面纹理、高度场数据以及凸凹纹理映射等特殊目的。在低端系统中,在应用程序中用简单的多边形网格表示几何细节,在这些场合交互帧率或者简单性都是非常重要的。在高端系统中,如果希望通过牺牲渲染时间的方法换取更好的图像质量及精度,那么就可以使用贝塞尔曲面、NURBS或者细分曲面等平滑表示方法。但是,我们也可以用“Phong shading”这样的算法从多边形网格实现一个平滑曲面。