矢量图形如何作为光栅图形显示“实时”?

时间:2018-04-14 10:01:43

标签: vector-graphics

所以我的显示器正在使用光栅图形,因此装满了像素。

但是,我听说Adobe Illustrator使用矢量图形。

那么如何在我的基于像素的显示器上“实时”显示矢量图形呢?

this one这样的文章,矢量和光栅图形完全不同?那么为什么他们会互相展示 - 就像他们是一样的?

1 个答案:

答案 0 :(得分:1)

Adob​​e Illustrator是一个"矢量程序"只是意味着它旨在帮助用户使用向量...就像Audacity,例如,帮助用户使用声音,或记事本让用户使用字符。

就其表示图形的方式而言,Adobe Illustrator与任何其他程序在操作系统(OS)和/或硬件的期望方面没有区别。

采取以下三个例子:

enter image description here

enter image description here

enter image description here

我们可以使用" +"用于显示栅格和矢量之间差异的符号:

RASTER:一个3 x 3像素的黑白光栅" +"符号:

0 1 0
1 1 1
0 1 0  

VECTOR:与Vector相同的符号:

[draw a line from point ( 1/3 X, 1/2 Y ) to point ( 2/3 X, 1/2 Y )]
[draw a line from point ( 1/2 X, 1/3 Y ) to point ( 1/2 X, 2/3 Y )]

这些是抽象表示 - 它们仍然需要编码存储显示

你可以直观地看到光栅的编码,存储和显示方式 - 作为一个离散的数值矩阵......马赛克,如果你愿意的话。

另一方面,矢量被编码并存储为一组指令。 x和y坐标存储为可用的总画布空间的分数(相对于绝对值)...因为画布空间的尺寸尚不清楚...这就是为什么你可以无限制地扩展矢量而不会丢失分辨率。

现在......如果一个矢量将显示在实际的"矢量显示中"监视器(非常罕见),理论上你可以直接将矢量指令发送到监视器。但是......正如你所问:"如果你在传统显示器上显示一个矢量(像素马赛克)会发生什么?"

而且......答案就是:再次:当任何程序说明任何其他抽象概念时,会发生同样的事情。

但是......矢量最终会出现在屏幕上,所以这里有一个最小的例子:

使用" plus符号"从上面的例子来看,想象一个非常可怕的显示器,分辨率只有3 x 3像素。操作系统会对程序说(可能是Illustrator):"我需要你的光栅输出为3 x 3像素宽。"

所以程序会这样做:

1)从点(1/3 X,1/2 Y)到点(2/3 X,1/2 Y)绘制一条线......但是将这些点转换为该3 x 3像素矩阵内的点...并通过填充第一个像素,最后一个像素以及中间的所有像素来绘制线条。

2)对第二条指令也这样做。

3)将得到的3 x 3像素矩阵交给OS。

PS - 你问他们如何能够展示彼此。"传统的显示器可以显示已经转换为像素的矢量,但我不认为它是通过反过来完成的。