ベクタ形式

ベクタ形式（ベクタけいしき、vector graphics）は、コンピュータグラフィックスなどにおいて、画像を円や直線などのような解析幾何的な「図形」の集まりとして表現する形式である。平面をスキャンし、その各点の濃淡の集まりによって画像を表現する「ラスタ形式」（ビットマップ画像）と対置される。それを描画する操作として（仮想の）絵筆を動かすようなスタイルになることから、ドロー形式、ドローグラフィックなどとも呼ばれる。

座標

ラスタ形式が通常、データの順序によって座標を間接的に示すのと異なり、ベクタ形式はオブジェクトごとに座標を明示的に指定するものが多い。

直交座標と極座標

縦横の位置で表す「直交座標」と、方向と距離で表す「極座標」がある。極座標のほうが便利な場合もあり、たとえば一般の回転角についてなど、厳密な結果を保存するために極座標が必要なこともあるが、通常は直交座標のほうが扱いやすい。また円弧の指定などでも併用される。

絶対座標と相対座標

常にグローバルな原点をベースとする「絶対座標」と、他オブジェクトからの位置関係や、最終参照位置との相対で表す「相対座標」がある。
たとえば、LOGOなどの「タートルグラフィックス」では、もともと、コンピュータから制御される、実体を持ったロボット（右の写真を参照）を制御するというモデルをベースとしていたこともあり、相対座標が基本である。
この2種類もやはり併用されることも多い。全体に対する（グローバルな）絶対座標によりあるオブジェクト（図形のグループ）の原点（座標系）を指定し、そのグループ内の図形はその（ローカルな）座標系を使って定義する、といった感じである。そのようにすると、たとえば、ローカルな座標系に対し移動や変換を掛けるだけで、そのグループ自体には干渉することなくその全体を移動や変形させることができる。

プリミティブと複合

複数の図形のグループ化や、グループ化にとどまずステンシルとしての使用など複数の図形を組み合わせる方法と、それらの基になるプリミティブが用意されていることが多い。

線と面

日常的に、あるいは数学等でも無意識に混同していることが（それで特に困らない場合もあって）多いが、たとえば、中身のある「円盤」とその辺（エッジ）のみである「円周」は異なるものであり、ベクタグラフィックでは「内側」のある図形であればその内側を塗りつぶすか否かの選択がある。また、辺についてはゼロでない太さを指定すれば目に見える図形となる。以下の文ではこれらを識別できていないことがある。

パス

点で結ばれた線で図形を表す。結ばれた線の終点が始点と重なった、四角や円、多角形などの閉じた図形の内部の領域を「面」と呼ぶ。点の座標と、線の属性（線の太さ、色、破線、実線など）、線で囲まれた面の属性（色や、パターンなど）、で表現される。点、線、面のそれぞれのさまざまな性質、たとえば、線の起終点の位置、曲線であればその曲がり方、太さ、色、それら線に囲まれた面の色、などの変化のしかたなどを数値で表す。SVGでは、任意のアウトラインを表現するために、このプリミティブを大量のデータをともなって多用することを考慮したデータ形式（path要素のd属性の値）となっている。

文字

文字（ないし文字列）もオブジェクトとして扱えることが多い。文字自身の文字コードと座標の他、フォント名、サイズ、色、変形方法などが指定できることが多い。サイズには他のオブジェクト同様の、座標値やミリ単位の他に、ポイントなど文字として扱いやすい単位も使えることが多い。

ビットマップ

ビットマップ画像もひとつのオブジェクトとして扱うことができるものも多い。描かれる座標と縦横の表示上のサイズ（または縦横の解像度や拡大率）を持つ。場合によっては、描画方向（回転角度や反転軸）、アフィン変換などの変形の情報を持つこともある。ビットマップデータは、埋込み方式のものもあれば、外部のファイルなどを参照する方式もある。大きな画像データなどでは後者の方法が扱えたほうが取り回しが良いが、ファイル1個に必要な全てのデータが入っていない不便もある。

変換

多くのドローソフトあるいはデータ形式では、これらのオブジェクトに対し、拡大縮小・回転などを掛けることができる。一般化してアフィン変換としているものが多い。共通部分や差分を取り出す、いわゆるブーリアン演算も付いているものが多い。グラデーションや透明度（アルファ、あるいは不透明度opacity）などを扱えるドローソフトやグラフィックフォーマットもある。透明度を含んだ合成に関する詳細はアルファチャンネルの記事を参照。
ベクタイメージは、デバイス非依存の図形・画像を記述するのに優れている。ラスタライズや印刷の処理プログラム等を各デバイス向けに作ることができ、それぞれの描画指示のもととなる図形情報だけをデータとして扱うことができるからである。このような考え方からPostScriptやPDFといったページ記述言語の描画モデルはベクタベースである。
3次元コンピュータグラフィックスでは3次元空間上の多角形（ポリゴン）や曲面等として形状を作成する。これは2次元図形であるベクタイメージを作成するとき、基本図形を組み合わせて複雑な図形イメージを作ることと非常に似ている。この3次元の図形イメージを透視図法などで2次元のビットマップに変換する作業をレンダリングと呼ぶが、これは、形状や位置のほかに、光のあたり具合なども計算しなければならないので、2次元のラスタライズの処理に比べはるかに複雑である。そのためゲームなどの速度を要するレンダリングでは、曲面を用いずに平面であるポリゴンの集まりで物体を表現するのが普通である。

フォーマット

Macintoshで使われるQuickDraw、DTPで使われるPostScript、CADで使われるHP-GLなどがある。PostScriptやHP-GLなど「図形処理言語」と呼ばれるものは、形状表現だけではなくプログラミング言語的な機能も持つものがある（特に、PostScriptはほとんど汎用言語並みの能力がある）。アプリケーションだけでなく、プリンタ内部にもそれらの言語処理系が用意され、スピーディにラスタライズできる機種がある。

ベクタ形式のラスタ化

ベクタ形式のイメージデータは容易にラスタ形式に変換できる。多くの場合、OSにその機能のAPIがあるので、アプリケーションはその機能を呼び出すだけでよい。ディスプレイの何倍もの画素数であっても、内部に仮想フレームバッファを設定すれば可能となるが、そのためには大きなメモリが必要である。

ラスタ形式のベクタ化

逆は一般に難しい。なぜなら、逆問題だからである。一部の高度なソフトにはベクタ化の機能を持つものもあるが、必ずしも万能ではない。2016年現在でも、新しい手法の提案などが学会等での研究発表で見られる分野である。

ディスプレイ

ラスタースキャンディスプレイにはラスタライズして表示される。
1950〜1980年代のコンピュータでは、ラスタースキャンでの高精細な表示は高価につき（ラスタースキャンに必要なフレームバッファを構成できる性能と容量のメモリなどのため）難しいことから、図形の表示目的に、ベクタースキャンディスプレイが用いられていた（また当時はプロッターも活用された）。CADなどで使われた。ベクタースキャンでは、スキャンの速さを変えることでも輝度を変えることができる。これに対しラスタースキャンでは、ブラウン管の電子銃は表示面を均等に走査するのであって、輝度は電子銃からの電子線の強さを変調することで表現している。

紙への出力

プリンターの多くもディスプレイ同様、ラスタスキャンを行っている。それゆえアウトラインフォントのテキストやベクタイメージを印刷するときは、OS上もしくはプリンターの内部で、高解像度にラスタライズされてから印刷している。
プロッターは、ベクタ形式のデータを直接印刷する。これはペンなどを移動させて作図しており、図形処理言語が座標を指定して作図することからX-Yプロッタとも呼ばれる。プロッターは設計図面の印刷などに用いられる。