編集(ベクターイメージから転送)この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。graphics)は、コンピュータグラフィックスなどにおいて、画像を円や直線などのような解析幾何的な「図形」の集まりとして表現する表現形式である。平面をスキャンし、その各点の濃淡の集まりによって画像を表現する「ビットマップ画像」(ラスター形式)と対置される。それを描画する操作として(仮想の)絵筆を動かすようなスタイルになることから、ドローグラフィック、ドローグラフィックなどとも呼ばれる。1]、データの順序によって座標を間接的に示すのと異なり、ベクター画像はオブジェクトごとに座標を明示的に指定するものが多い。縦横の位置で表す「直交座標」と、方向と距離で表す「極座標」がある。極座標のほうが便利な場合もあり、たとえば一般の回転角についてなど、厳密な結果を保存するために極座標が必要なこともあるが、通常は直交座標のほうが扱いやすい。円弧の指定などでも併用される。常にグローバルな原点をベースとする「絶対座標」と、他オブジェクトからの位置関係や、最終参照位置との相対で表す「相対座標」がある。LOGOなどの「タートルグラフィックス」では、もともと、コンピュータから制御される、実体を持ったロボット(右の写真を参照)を制御するというモデルをベースとしていたこともあり、相対座標が基本である。この2種類もやはり併用されることも多い。全体に対する(グローバルな)絶対座標によりあるオブジェクト(図形のグループ)の原点(座標系)を指定し、そのグループ内の図形はその(ローカルな)座標系を使って定義する、といった感じである。そのようにすると、たとえば、ローカルな座標系に対し移動や変換を掛けるだけで、そのグループ自体には干渉することなくその全体を移動や変形させることができる。複数の図形のグループ化や、ステンシルとしての使用など複数の図形を組み合わせる方法と、それらの基になるプリミティブが用意されていることが多い。日常的に、あるいは数学等でも無意識に混同していることが(それで特に困らない場合もあって)多いが、たとえば、中身のある「円盤」とその辺(エッジ)のみである「円周」は異なるものであり、ベクタグラフィックでは「内側」のある図形であればその内側を塗りつぶすか否かの選択がある。辺についてはゼロでない太さを指定すれば目に見える図形となる。以下の文ではこれらを識別できていないことがある。プリミティブ編集プリミティブの例としては、ライン(線分)やポリゴン(多角形)、サークル(円)、カーブ(円弧、円の一部)などがある。高機能なアプリケーションにおいてはベジェ曲線を自由に操作できる。IllustratorとCorelDRAWがある。円や楕円ベジェ曲線ベジェ曲線によって囲まれた図形テキスト(特にアウトラインフォントを用いる場合は、それぞれの文字はベジェ曲線によって形作られる。)これ以外にもスプライン曲線などの図形が基本図形として使えるアプリケーションもある。ビットマップもオブジェクトとして扱えるようになっている場合が多い。点で結ばれた線で図形を表す。結ばれた線の終点が始点と重なった、四角や円、多角形などの閉じた図形の内部の領域を「面」と呼ぶ。点の座標と、線の属性(線の太さ、色、破線、実線など)、線で囲まれた面の属性(色や、パターンなど)、で表現される。点、線、面のそれぞれのさまざまな性質、たとえば、線の起終点の位置、曲線であればその曲がり方、太さ、色、それら線に囲まれた面の色、などの変化のしかたなどを数値で表す。SVGでは、任意のアウトラインを表現するために、このプリミティブを大量のデータをともなって多用することを考慮したデータ形式(path要素のd属性の値)となっている。文字(ないし文字列)もオブジェクトとして扱えることが多い。文字自身の文字コードと座標の他、フォント名、サイズ、色、変形方法などが指定できることが多い。サイズには他のオブジェクト同様の、座標値やミリ単位の他に、ポイントなど文字として扱いやすい単位も使えることが多い。ビットマップ編集ビットマップ画像もひとつのオブジェクトとして扱うことができるものも多い。描かれる座標と縦横の表示上のサイズ(または縦横の解像度や拡大率)を持つ。場合によっては、描画方向(回転角度や反転軸)、アフィン変換などの変形の情報を持つこともある。ビットマップデータは、埋込み方式のものもあれば、外部のファイルなどを参照する方式もある。大きな画像データなどでは後者の方法が扱えたほうが取り回しが良いが、ファイル1個に必要な全てのデータが入っていない不便もある。多くのドローソフトあるいはデータ形式では、これらのオブジェクトに対し、拡大縮小・回転などを掛けることができる。一般化してアフィン変換としているものが多い。共通部分や差分を取り出す、いわゆるブーリアン演算も付いているものが多い。グラデーションや透明度(アルファ、あるいは不透明度opacity)などを扱えるドローソフトやグラフィックフォーマットもある。透明度を含んだ合成に関する詳細はアルファチャンネルの記事を参照。ベクタイメージは、デバイス非依存の図形・画像を記述するのに優れている。ラスタライズや印刷の処理プログラム等を各デバイス向けに作ることができ、それぞれの描画指示のもととなる図形情報だけをデータとして扱うことができるからである。このような考え方からPostScriptやPDFといったページ記述言語の描画モデルはベクタベースである。3次元コンピュータグラフィックスでは3次元空間上の多角形(ポリゴン)や曲面等として形状を作成する。これは2次元図形であるベクタイメージを作成するとき、基本図形を組み合わせて複雑な図形イメージを作ることと非常に似ている。この3次元の図形イメージを透視図法などで2次元のビットマップに変換する作業をレンダリングと呼ぶが、これは、形状や位置のほかに、光のあたり具合なども計算しなければならないので、2次元のラスタライズの処理に比べはるかに複雑である。そのためゲームなどの速度を要するレンダリングでは、曲面を用いずに平面であるポリゴンの集まりで物体を表現するのが普通である。フォーマット編集macOSで使われるQuickDraw、DTPで使われるPostScript、CADで使われるHP-GLなどがある。PostScriptやHP-GLなど「図形処理言語」と呼ばれるものは、形状表現だけではなくプログラミング言語的な機能も持つものがある(特に、PostScriptはほとんど汎用言語並みの能力がある)。アプリケーションだけでなく、プリンタ内部にもそれらの言語処理系が用意され、スピーディにラスタライズできる機種がある。アプリケーション編集ドローソフトと呼ばれる。以下には、ドローソフトの機能も備える汎用のグラフィックソフトを含む。詳細は「ラスタライズ」を参照ベクター画像のイメージデータは容易にビットマップ画像に変換できる。多くの場合、OSにその機能のAPIがあるので、アプリケーションはその機能を呼び出すだけでよい。ディスプレイの何倍もの画素数であっても、内部に仮想フレームバッファを設定すれば可能となるが、そのためには大きなメモリが必要である。