(57)【特許請求の範囲】
【請求項１】
メモリアドレスが連続する方向を示すＸ軸と前記Ｘ軸に交差する方向を示すＹ軸からなる２次元座標系に対応するメモリを用いて図形を描画する図形描画装置において、
一連の２次元の頂点座標が入力されると、当該頂点座標と、当該頂点座標のＸ座標値を先頭の頂点座標のＸ座標値に変換した仮想頂点座標とを、前記頂点座標ごとに前記メモリ上に生成する生成手段と、
部分図形の作成対象となる２つの頂点座標を、先頭から順次連続する２つの頂点座標に設定するとともに、末尾の頂点座標まで設定された後に、前記部分図形の作成対象となる２つの頂点座標を、先頭および末尾の頂点座標に設定する設定手段と、
前記設定手段によって設定された２つの頂点座標とその仮想頂点座標とに囲まれた部分図形を前記メモリ上に描画する描画処理を行う描画手段と、
を備えることを特徴とする図形描画装置。
【請求項２】
前記描画手段は、前記描画処理によって描画された部分図形にすでに作成済みの部分図形の一部または全部が重複する場合には重複する部分を前記メモリ上から消去する消去処理により、前記一連の２次元の頂点座標を頂点とする図形を出力することを特徴とする請求項１に記載の図形描画装置。
【請求項３】
前記頂点座標が入力される都度、前記連続する２つの頂点座標を結んだ線分が前記メモリ上にあらかじめ設定されたクリッピング領域の境界線と交差するか否かを判定する判定手段を備え、
前記生成手段は、前記判定手段によって前記連続する２つの頂点座標を結んだ線分と前記境界線とが交差すると判定された場合に、前記連続する２つの頂点座標のうちの少なくともいずれか一方の頂点座標に基づいて、前記クリッピング領域の境界線上に新たな頂点座標（以下、「実効頂点座標」という）と当該実効頂点座標における仮想頂点座標を生成し、
前記設定手段は、前記生成手段によって生成された実効頂点座標を、当該実効頂点座標の元となった頂点座標の代わりとして部分図形の作成対象となる２つの頂点座標のうち一方の頂点座標に設定し、
前記描画手段は、前記設定手段によって設定された部分図形の作成対象となる前記実効頂点座標を含む２つの頂点座標とその仮想頂点座標とに囲まれた部分図形を描画することを特徴とする請求項１または２に記載の図形描画装置。
【請求項４】
前記生成手段は、前記判定手段によって前記連続する２つの頂点座標を結んだ線分と前記境界線とが交差すると判定された場合に、当該連続する２つの頂点座標を結んだ線分と、前記クリッピング領域の境界線との交点座標を前記実効頂点座標として生成することを特徴とする請求項３に記載の図形描画装置。
【請求項５】
前記生成手段は、前記判定手段によって前記先頭の頂点座標を含む連続した２つの頂点座標を結んだ線分と前記境界線とが交差すると判定された場合に、前記交点座標を前記先頭の頂点座標に代わる頂点座標とし、入力された頂点座標または生成された前記交点座標のＸ座標値を前記実効頂点座標のＸ座標値に変換することによって前記仮想頂点座標を生成することを特徴とする請求項４に記載の図形描画装置。
【請求項６】
前記生成手段は、前記判定手段によって前記先頭の頂点座標を含む連続した２つの頂点座標を結んだ線分と前記境界線とが交差すると判定された場合に、前記クリッピング領域内の任意の座標を前記先頭の頂点座標の代わりとし、入力された頂点座標または生成された前記交点座標のＸ座標値を前記先頭の頂点座標の代わりとされた座標のＸ座標値に変換することによって前記仮想頂点座標を生成することを特徴とする請求項４に記載の図形描画装置。
【請求項７】
コンピュータが、メモリアドレスが連続する方向を示すＸ軸と前記Ｘ軸に交差する方向を示すＹ軸からなる２次元座標系に対応するメモリを用いて図形を描画する図形描画方法において、
前記コンピュータが有する生成手段が、一連の２次元座標が入力されると、当該頂点座標と、当該頂点座標のＸ座標値を先頭の頂点座標のＸ座標値に変換した仮想頂点座標とを、前記頂点座標ごとに前記メモリ上に生成し、
前記コンピュータが有する設定手段が、部分図形の作成対象となる２つの頂点座標を、先頭から順次連続する２つの頂点座標に設定するとともに、末尾の頂点座標まで設定された後に、前記部分図形の作成対象となる２つの頂点座標を、先頭および末尾の頂点座標に設定し、
前記コンピュータが有する描画手段が、設定された前記２つの頂点座標とその仮想頂点座標とに囲まれた部分図形を前記メモリ上に描画する描画処理を行うことを特徴とする図形描画方法。
【請求項８】
メモリアドレスが連続する方向を示すＸ軸と前記Ｘ軸に交差する方向を示すＹ軸からなる２次元座標系に対応するメモリを用いてコンピュータに図形を描画させる図形描画プログラムにおいて、
一連の２次元の頂点座標が入力されると、前記一連の２次元の頂点座標のうち、先頭の頂点座標から順次に頂点座標と、当該頂点座標のＸ座標値を先頭の頂点座標のＸ座標値に変換した仮想頂点座標と、を１組ずつ前記メモリ上に生成させる生成工程と、
部分図形の作成対象となる２つの頂点座標を、先頭から順次連続する２つの頂点座標に設定させるとともに、末尾の頂点座標まで設定された後に、前記部分図形の作成対象となる２つの頂点座標を、先頭および末尾の頂点座標に設定させる設定工程と、
前記設定工程によって設定された２つの頂点座標とその仮想頂点座標とに囲まれた部分図形を前記メモリ上に描画する描画処理を行う描画工程と、
を含むことを特徴とする図形描画プログラム。
【請求項９】
請求項８に記載の図形描画プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータグラフィックスなどにおいて、メモリアドレスが連続する方向を示すＸ軸とＸ軸に交差する方向を示すＹ軸からなる２次元座標系に対応するメモリを用いて図形を描画する図形描画装置、図形描画方法、図形描画プログラム、および該プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
従来、たとえば、コンピュータグラフィックスなどにおいて、描画される図形の形状を記憶するステンシルバッファがある。このようなステンシルバッファ領域上に、所望の図形を描画する技術には、たとえば、頂点座標ストリームから入力された一連の頂点座標に対して、先頭の頂点座標として入力された頂点座標を共有する三角形を、頂点座標が入力される都度に、排他的論理和演算を用いて順次描画することによって、最終的に描画の対象となる図形（以下、「対象図形」という）を構成する技術がある。
【０００３】
また、頂点座標ストリームから頂点座標が入力される都度に、連続する２つの頂点座標によって構成される対象図形の輪郭線の辺を、一辺ずつ順次描き込んでいき、描き込まれた一辺上からステンシルバッファ領域上の一端側までの短冊状の図形を排他的論理和演算を用いて順次描画することによって、対象図形を構築する技術が公知である（たとえば、下記特許文献１、２を参照。）。
【０００４】
【特許文献１】特開２００１−２０９８１２号公報
【特許文献２】特開平１０−１８８０１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術において、対象図形を構成するすべての三角形は、上述したように先頭の頂点座標を共有するために、ある三角形においては先頭の頂点座標と他の頂点座標とが遠くに離れて配置され、描画の際に多数の走査線が関与してしまうという問題があった。
【０００６】
多数の走査線が関与した場合には、各走査線上の画素に対応するメモリアドレスが大きく異なるため、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）からバーストアクセスを用いてステンシルバッファへの効率的なデータ転送がおこなうことができず、描画速度の低下を招くという問題があった。また、たとえば、多数の走査線が関与する三角形が多く描画される場合には、何度も走査線を往復して描画することになるため、その都度にＶＲＡＭへのランダムアクセスが発生し、描画速度の低下を招くという問題があった。
【０００７】
また、上記の特許文献１または２に開示された技術では、メモリアドレスが連続する方向に描画していくため、上記の問題の発生は抑えられるものの、関与する走査線においては当該走査線の一端側まで処理をおこなうため、描画処理が必要以上に広範囲に及び、描画速度が低下するという問題があった。さらに、この技術を用いた場合には、公知の技術のために詳細な説明は省略するが、別途にスキャンラインアルゴリズムと呼ばれる専用の機構を実装する必要があり、製品のコスト高につながるという問題があった。
【０００８】
この発明は、上述した従来技術の問題点を解決するため、ＶＲＡＭおよびステンシルバッファ間の効率的なデータ転送を可能とするとともに、ＶＲＡＭへのランダムアクセスを低減させ、さらに描画処理の対象となる領域を極力小さくすることにより、描画速度の向上を図ることができる図形描画装置、図形描画方法、図形描画プログラムおよび該プログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、この発明にかかる図形描画装置は、メモリアドレスが連続する方向を示すＸ軸と前記Ｘ軸に交差する方向を示すＹ軸からなる２次元座標系に対応するメモリを用いて図形を描画する図形描画装置において、一連の２次元座標が入力されると、当該頂点座標と、当該頂点座標のＸ座標値を先頭の頂点座標のＸ座標値に変換した仮想頂点座標とを、頂点座標ごとにメモリ上に生成し、部分図形の作成対象となる２つの頂点座標を、先頭から順次連続する２つの頂点座標に設定するとともに、末尾の頂点座標まで設定された後に、部分図形の作成対象となる２つの頂点座標を、先頭および末尾の頂点座標に設定し、設定された２つの頂点座標とその仮想頂点座標とに囲まれた部分図形をメモリ上に描画することを特徴とする。
【００１０】
また、描画された部分図形にすでに作成済みの部分図形の一部または全部が重複する場合には重複する部分をメモリ上から消去することにより、一連の２次元の頂点座標を頂点とする図形を出力することとしてもよい。
【００１１】
この発明によれば、連続した２つの頂点および当該頂点座標に対して生成された仮想頂点座標を有する部分図形によって対象図形を構成するため、描画の際に関与する走査線を連続する２つの頂点座標間にある走査線だけに抑えることができる。また、メモリアドレスが連続する方向に対して平行な辺を有する部分図形により対象図形を構成するため、それぞれの部分図形においてメモリアドレスが連続する方向への画素の比率が高まり、描画速度を向上させることができる。なお、部分図形とは、対象図形を構成する図形であって三角形または四角形である。
【００１２】
また、上記の発明において、頂点座標が入力される都度、連続する２つの頂点座標を結んだ線分がメモリ上にあらかじめ設定されたクリッピング領域の境界線と交差するか否かを判定し、連続する２つの頂点座標を結んだ線分と境界線とが交差する場合に、連続する２つの頂点座標のうちの少なくともいずれか一方の頂点座標に基づいて、クリッピング領域の境界線上に実効頂点座標と、当該実効頂点座標における仮想頂点座標を生成し、生成された実効頂点座標を、当該実効頂点座標の元となった頂点座標の代わりとしてもよい。
【００１３】
この発明によれば、入力された頂点座標がクリッピング領域に含まれない場合においても上記の発明の効果を得ることができる。
【００１４】
また、上記の発明において、連続する２つの頂点座標を結んだ線分と境界線とが交差すると判定された場合に、当該連続する２つの頂点座標を結んだ線分と、クリッピング領域の境界線との交点座標を実効頂点座標として生成することとしてもよい。
【００１５】
この発明によれば、実効頂点座標を境界線上に生成することにより、クリッピング領域内に含まれる対象図形をより正確に描画することができるとともに上記の発明の効果を得ることができる。
【００１６】
また、上記の発明において、先頭の頂点座標を含む連続した２つの頂点座標を結んだ線分と境界線とが交差すると判定された場合に、交点座標を先頭の頂点座標に代わる頂点座標とし、入力された頂点座標または生成された交点座標のＸ座標値を実効始点座標のＸ座標値に変換することによって仮想頂点座標を生成することとしてもよい。
【００１７】
この発明によれば、先頭の頂点座標がクリッピング領域内に含まれない場合においても実効始点座標を生成することにより、上記の発明の効果を得ることができる。
【００１８】
また、上記の発明において、クリッピング領域内の任意の座標を実効始点座標とすることとしてもよい。
【００１９】
この発明によれば、クリッピング領域内における最適な座標を実効始点座標とすることで、より少ない処理で上記の発明の効果を得ることができる。
【発明の効果】
【００２０】
この発明の図形描画装置、図形描画方法、図形描画プログラム、および該プログラムを記録した記録媒体によれば、ＶＲＡＭおよびステンシルバッファ間の効率的なデータ転送を可能とし、ＶＲＡＭへのランダムアクセスを低減させ、描画速度を向上できるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明にかかる図形描画装置の好適な実施の形態を詳細に説明する。以下に示す実施の形態１〜３では、図形描画装置は、入力された頂点座標に対し、頂点座標ストリーム中に存在しない頂点座標である仮想頂点座標を便宜的に生成し、仮想頂点座標を頂点として含んだ部分図形を形成し、当該部分図形を頂点座標が入力される都度に順次描画することによって対象図形を構成する。これにより、各部分図形において、メモリアドレスが連続する画素が多く含まれるため、効率的な描画が可能となる。
【００２２】
なお、以下に示す実施の形態１〜３では、頂点Ｖnの頂点座標は（Ｖnx，Ｖny）であらわすものとする。同様に交点座標のＣnにおいても（Ｃnx，Ｃny）であらわすものとする。
【００２３】
（実施の形態１）
（実施の形態１にかかる図形描画装置による対象図形の描画）
まず、この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れについて説明する。図１−１〜１−８は、この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その１）〜（その８）である。図１−１〜１−８においては、頂点座標ストリームから一連の頂点座標として、頂点Ｖ0〜Ｖ6の頂点座標が順次入力された場合の描画の流れを示したものである。
【００２４】
図１において、メモリアドレスが連続する方向を示すＸ軸とＸ軸に交差（たとえば、直交）する方向を示すＹ軸からなる２次元座標系に対応するステンシルバッファ領域１００に対する対象図形の描画に際して、まず、図形描画装置には、頂点座標ストリームから頂点座標入力インターフェースを介して、先頭の頂点座標として（Ｖ0x，Ｖ0y）が入力され、続いて中間頂点座標として（Ｖ1x，Ｖ1y）が入力される。
【００２５】
このとき、図形描画装置は、先頭の頂点座標（Ｖ0x，Ｖ0y）を始点座標（Ｖ0x，Ｖ0y）、中間頂点座標（Ｖ1x，Ｖ1y）を中間頂点座標（Ｖ1x，Ｖ1y）として設定する。つぎに、図形描画装置は、始点座標（Ｖ0x，Ｖ0y）および中間頂点座標（Ｖ1x，Ｖ1y）に基づいて仮想頂点Ｖ1’の仮想頂点座標（Ｖ0x，Ｖ1y）を生成する。すなわち、仮想頂点Ｖ1’は、始点座標（Ｖ0x，Ｖ0y）とＸ座標を同じくし、中間頂点座標（Ｖ1x，Ｖ1y）とＹ座標を同じくする座標上に生成される。図形描画装置は、仮想頂点Ｖ1’を生成したのち、Ｖ0、Ｖ1、Ｖ1’を頂点に有する部分図形をステンシルバッファ領域１００上に描画する（図１−１）。
【００２６】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ2x，Ｖ2y）が入力されると、図形描画装置は、始点座標（Ｖ0x，Ｖ0y）および中間頂点座標（Ｖ2x，Ｖ2y）に基づいて仮想頂点Ｖ2’の仮想頂点座標（Ｖ0x，Ｖ2y）を生成する。すなわち、仮想頂点Ｖ2’は、始点座標（Ｖ0x，Ｖ0y）とＸ座標を同じくし、中間頂点座標（Ｖ2x，Ｖ2y）とＹ座標を同じくする座標上に生成される。図形描画装置は、仮想頂点Ｖ2’を生成したのち、Ｖ1、Ｖ1’、Ｖ2’、Ｖ2を頂点に有する部分図形をステンシルバッファ領域１００上に描画する（図１−２）。
【００２７】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ3x，Ｖ3y）が入力されると、図形描画装置は、始点座標（Ｖ0x，Ｖ0y）および中間頂点座標（Ｖ3x，Ｖ3y）に基づいて仮想頂点Ｖ3’の仮想頂点座標（Ｖ0x，Ｖ3y）を生成する。すなわち、仮想頂点Ｖ3’は、始点座標（Ｖ0x，Ｖ0y）とＸ座標を同じくし、中間頂点座標（Ｖ3x，Ｖ3y）とＹ座標を同じくする座標上に生成される。図形描画装置は、仮想頂点Ｖ3’を生成したのち、Ｖ2、Ｖ2’、Ｖ3’、Ｖ3を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域１Ａにおいては、偶数個の図形が重複するため、図形が消去される（図１−３）。
【００２８】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ4x，Ｖ4y）が入力されると、図形描画装置は、始点座標（Ｖ0x，Ｖ0y）および中間頂点座標（Ｖ4x，Ｖ4y）に基づいて仮想頂点Ｖ4’の仮想頂点座標（Ｖ0x，Ｖ4y）を生成する。すなわち、仮想頂点Ｖ4’は、始点座標（Ｖ0x，Ｖ0y）とＸ座標を同じくし、中間頂点座標（Ｖ4x，Ｖ4y）とＹ座標を同じくする座標上に生成される。図形描画装置は、仮想頂点Ｖ4’を生成したのち、Ｖ3、Ｖ3’、Ｖ4’、Ｖ4を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域１Ｂにおいては、偶数個の図形が重複するため、図形が消去される（図１−４）。
【００２９】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ5x，Ｖ5y）が入力されると、図形描画装置は、始点座標（Ｖ0x，Ｖ0y）および中間頂点座標（Ｖ5x，Ｖ5y）に基づいて仮想頂点Ｖ5’の仮想頂点座標（Ｖ0x，Ｖ5y）を生成する。すなわち、仮想頂点Ｖ5’は、始点座標（Ｖ0x，Ｖ0y）とＸ座標を同じくし、中間頂点座標（Ｖ5x，Ｖ5y）とＹ座標を同じくする座標上に生成される。図形描画装置は、仮想頂点Ｖ5’を生成したのち、Ｖ4、Ｖ4’、Ｖ5’、Ｖ5を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域１Ｃにおいては、偶数個の図形が重複するため、図形が消去される（図１−５）。
【００３０】
つぎに、同様にして、図形描画装置に一連の頂点座標の末尾の頂点座標（Ｖ6x，Ｖ6y）が入力されると、図形描画装置は、（Ｖ6x，Ｖ6y）を末尾の頂点座標と判別したのち、始点座標（Ｖ0x，Ｖ0y）および中間頂点座標（Ｖ6x，Ｖ6y）に基づいて仮想頂点Ｖ6’の仮想頂点座標（Ｖ0x，Ｖ6y）を生成する。すなわち、仮想頂点Ｖ6’は、始点座標（Ｖ0x，Ｖ0y）とＸ座標を同じくし、中間頂点座標（Ｖ6x，Ｖ6y）とＹ座標を同じくする座標上に生成される。図形描画装置は、仮想頂点Ｖ6’を生成したのち、Ｖ5、Ｖ5’、Ｖ6’、Ｖ6を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域１Ｄにおいては、偶数個の図形が重複するため、図形が消去される（図１−６）。
【００３１】
つぎに、図形描画装置は、末尾の頂点座標であると判別された（Ｖ6x，Ｖ6y）までの入力が終了した場合、終点座標として設定された（Ｖ0x，Ｖ0y）を再び入力する。図形描画装置は、終点座標（Ｖ0x，Ｖ0y）が入力されると、終点座標（Ｖ0x，Ｖ0y）および末尾の頂点座標（Ｖ6x，Ｖ6y）およびその仮想頂点座標（Ｖ0x，Ｖ6y）に基づいて、Ｖ6、Ｖ6’、Ｖ0を頂点に有する最後の部分図形（詳細は後述する）を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域１Ｅにおいては、偶数個の図形が重複するため、図形が消去される（図１−７）。
【００３２】
以上に説明したように、実施の形態１の図形描画装置において、入力された頂点座標から、仮想頂点Ｖ1’〜Ｖ6’を生成し、頂点Ｖ0〜Ｖ6および仮想頂点Ｖ1’〜Ｖ6’に基づいて部分図形をステンシルバッファ領域１００上に頂点座標が入力される都度に順次描画していくことにより、頂点Ｖ0〜Ｖ6を頂点として有する対象図形がステンシルバッファ領域１００上に描画されることとなる（図１−８）。
【００３３】
（コンピュータ装置のハードウェア構成）
つぎに、この発明の実施の形態１にかかるコンピュータ装置のハードウェア構成について説明する。図２は、この発明の実施の形態１にかかるコンピュータ装置のハードウェア構成を示す説明図である。
【００３４】
図２において、コンピュータ装置２００は、コンピュータ本体２１０と、入力装置２２０と、出力装置２３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク２４０に接続可能である。
【００３５】
コンピュータ装置２００は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、コンピュータ装置２００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク２１１，フラッシュメモリから構成される。メモリは、ＣＰＵのワークエリアとして使用される。
【００３６】
また、メモリには、各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク２１１は、ディスクドライブによりデータのリード／ライトが制御される。また、光ディスク２１１およびフラッシュメモリは、コンピュータ本体２１０に対して着脱自在である。インターフェースは、入力装置２２０からの入力、出力装置２３０からの出力、ネットワーク２４０に対する送受信の制御をおこなう。
【００３７】
また、入力装置２２０としては、キーボード２２１、マウス２２２、スキャナ２２３などがある。キーボード２２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス２２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ２２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体２１０内のメモリに格納される。なお、スキャナ２２３にＯＣＲ機能を持たせてもよい。
【００３８】
また、出力装置２３０としては、ディスプレイ２３１、プリンタ２３２、スピーカ２３３などがある。ディスプレイ２３１は、カーソル、アイコン、あるいはツールボックスなどをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ２３２は、画像データや文書データを印刷する。また、スピーカ２３３は、効果音や読み上げ音などの音声を出力する。
【００３９】
上述した図形描画装置およびステンシルバッファは、たとえば、コンピュータ本体２１０内部に設けられたグラフィックスＬＳＩおよびメモリによって実現され、コンピュータ本体２１０にインストールされたアプリケーションによって生成された一連の頂点座標に基づいて、ディスプレイ２３１に表示される画像などの形状を記憶する。
【００４０】
（実施の形態１の図形描画装置の機能的構成）
つぎに、この発明にかかる実施の形態１について説明する。まず、この発明の実施の形態１にかかる図形描画装置の機能的構成について説明する。図３は、この発明の実施の形態１にかかる図形描画装置の機能的構成を示すブロック図である。図３に示すように、実施の形態１の図形描画装置３００は、頂点種別判定部３０１と、先頭座標バッファ３０２と、先頭座標再利用部３０３と、頂点座標バッファ３０４と、生成部３１０と、設定部３２０と、描画部３３０とを備える。
【００４１】
図形描画装置３００は、たとえば、アプリケーションによって生成された複数の２次元の頂点座標からなる一連の頂点座標が頂点座標ストリーム３４０として、頂点座標入力インターフェース３５０を介して図形描画装置３００に順次入力されると、当該一連の頂点座標に基づいた対象図形をステンシルバッファ３６０のステンシルバッファ領域上に描画する機能を有する。具体的には、たとえば、図１−１〜１−８に示したように、頂点座標ストリーム３４０から頂点座標として、Ｖ0〜Ｖ6の頂点座標が順次入力された場合には、当該Ｖ0〜Ｖ6を頂点に有する図形をステンシルバッファ３６０のステンシルバッファ領域１００上に描画する。
【００４２】
頂点種別判定部３０１は、入力された頂点座標から当該頂点座標における頂点の種別を判別する機能を有する。頂点の種別としては、具体的に、たとえば、先頭の頂点座標、中間頂点座標、末尾の頂点座標がある。先頭の頂点座標は、入力された一連の頂点座標のうちの先頭となる頂点座標である。先頭の頂点座標は、たとえば、図１−１〜１−８中、Ｖ0であらわされた頂点の頂点座標である。
【００４３】
末尾の頂点座標は、入力された一連の頂点座標のうちの末尾となる頂点座標である。末尾の頂点座標は、たとえば、図１−７および図１−８中、Ｖ6であらわされた頂点の頂点座標である。
【００４４】
中間頂点座標とは、入力された一連の頂点座標のうちの先頭の頂点座標および末尾の頂点座標以外の頂点座標である。中間頂点座標は、たとえば、図１−１〜１−８中、Ｖ1〜Ｖ5であらわされた頂点の頂点座標である。すなわち、頂点種別判定部３０１は、入力された頂点座標ごとに、当該頂点座標が、先頭の頂点座標、中間頂点座標、末尾の頂点座標のうちのいずれに該当するかを判別する。
【００４５】
頂点種別判定部３０１は、具体的には、たとえば、一連の頂点座標が各種のコマンドに挟まれて入力される場合には、開始コマンド（たとえば、ｂｅｇｉｎなどのコマンド）や終了コマンド（たとえば、ｅｎｄなどのコマンド）をトリガとすることによって判別することができる。また、一連の頂点座標が配列として入力される場合には、配列インデックスの開始値と終了値とカウンタとを組み合わせることによって判別することとしてもよい。また、頂点種別判定部３０１は、頂点の種別として、後述する実効始点座標も判別できることとしてもよい。
【００４６】
頂点種別判定部３０１は、入力された頂点座標における頂点の種別を判別したのち、当該頂点座標を判別された結果に基づいて、先頭座標バッファ３０２および設定部３２０へ出力する。すなわち、先頭の頂点座標であると判別された頂点座標（たとえば、Ｖ0の頂点座標）は、先頭座標バッファ３０２へ出力されるとともに設定部３２０へ出力され、中間頂点座標（たとえば、Ｖ1〜Ｖ5の頂点座標）は、設定部３２０へ出力される。
【００４７】
先頭座標バッファ３０２は、頂点種別判定部３０１によって先頭の頂点座標であると判別された頂点座標を記憶する機能を有する。先頭座標バッファ３０２に記憶された先頭の頂点座標は、対象図形の描画処理が完了するまで保持される。先頭座標バッファ３０２は、該当する頂点座標を記憶したのち、当該頂点座標を先頭座標再利用部３０３へ出力する。また、先頭座標バッファ３０２は、先頭の頂点座標を記憶するとともに、後述する実効始点座標（たとえば、図５−１〜５−９中のＣ0、図８−１〜８−６中のＶ-1の座標）も記憶することとしてもよい。
【００４８】
先頭座標再利用部３０３は、頂点種別判定部３０１によって先頭の頂点座標と判別された頂点座標に対し、当該先頭の頂点座標を再利用する頂点座標として生成する機能を有する。先頭座標再利用部３０３に入力された先頭の頂点座標は、後述する終点座標生成部３２３へ出力される。
【００４９】
頂点座標バッファ３０４は、入力された一連の頂点座標を、頂点座標ごとに記憶する機能を有する。頂点座標バッファ３０４に記憶される頂点座標は、頂点座標が入力されるごとに書き換えられる。具体的には、入力された頂点座標に対し、一つ前に入力された頂点座標（以下、「前回頂点座標」という）が記憶される。具体的には、たとえば、頂点座標としてＶ2の頂点座標が新たに入力されてきた場合には、頂点座標バッファ３０４にはＶ2の前回頂点であるＶ1の頂点座標が記憶されている。
【００５０】
生成部３１０は、一連の頂点座標が入力されると、当該頂点座標と、当該頂点座標のＸ座標値を先頭の頂点座標のＸ座標値に変換した仮想頂点座標とを、頂点座標ごとにメモリ上に生成する機能を有する。生成部３１０は、具体的には、たとえば、頂点座標ストリーム３４０から入力された一連の頂点座標に基づいて、一連の頂点座標から頂点座標ごとに、頂点座標とその仮想頂点座標を生成する。
【００５１】
生成部３１０は、具体的には、仮想頂点座標生成部３１１によって構成される。仮想頂点座標生成部３１１は、後述する設定部３２０に設けられたＸ座標バッファ３２４に記憶された先頭の頂点座標のＸ座標（たとえば、Ｖ0X）、およびＹ座標バッファ３２５に記憶された中間頂点座標のＹ座標（たとえば、Ｖ1y）に基づいて、仮想頂点座標を生成し、生成した仮想頂点座標を設定部３２０へ出力する機能を有する。具体的には、たとえば、入力された頂点座標に対し、当該頂点座標における仮想頂点座標を、入力された頂点座標のＸ座標を先頭の頂点座標のＸ座標に変換することによって生成する。
【００５２】
より具体的には、たとえば、生成部３１０は、図１−１〜１−８で示したように、一連の頂点座標としてＶ0〜Ｖ6の頂点座標が入力されてきた場合に、Ｖ0〜Ｖ6の頂点座標および仮想頂点Ｖ1’〜Ｖ6’の仮想頂点座標をステンシルバッファ３６０のステンシルバッファ領域１００上に生成する。
【００５３】
設定部３２０は、部分図形の作成対象となる２つの頂点座標を、先頭から順次連続する２つの頂点座標に設定するとともに、末尾の頂点座標まで設定された後に、部分図形の作成対象となる２つの頂点座標を、先頭および末尾の頂点座標に設定する機能を有する。設定部３２０は、具体的には、たとえば、描画される部分図形の頂点となる２つの頂点座標とその仮想頂点座標とを関連づけて設定し、描画部３３０へ出力する。
【００５４】
設定部３２０は、具体的には、生成部３１０によって生成された頂点座標とその仮想頂点座標とを受け付けた場合に、当該頂点座標を始点座標・中間頂点座標・終点座標のいずれかとして設定するとともに、当該頂点座標と連続する頂点座標とそれらの仮想頂点座標とを関連づけて設定し、関連づけたのちに描画部３３０へ出力する。
【００５５】
また、設定部３２０は、入力された一連の頂点座標に応じた部分図形がすべて描画されたのちに、先頭の頂点座標と末尾の頂点座標とを関連づけて設定することにより、最後の部分図形の頂点座標を設定する。最後の部分図形とは、終点座標（すなわち、始点座標）と、末尾の頂点座標と、当該末尾の頂点座標の仮想頂点座標とを頂点に有する部分図形である。
【００５６】
より具体的には、たとえば、設定部３２０は、図１−１〜１−８で示したように、部分図形の作成対象となる２つの頂点座標としてＶ0から順次、Ｖ0とＶ1、Ｖ1とＶ2、Ｖ2とＶ3、といったように関連づけて設定し、末尾の頂点座標であるＶ6まで設定されたのちには、Ｖ6とＶ0とを関連づけて設定する。
【００５７】
設定部３２０は、具体的には、始点座標生成部３２１と、中間頂点座標生成部３２２と、終点座標生成部３２３と、Ｘ座標バッファ３２４と、Ｙ座標バッファ３２５と、頂点ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，Ｆｉｒｓｔ  Ｏｕｔ）３２６とによって構成される。
【００５８】
始点座標生成部３２１は、入力された頂点座標から始点座標を生成する機能を有する。始点座標とは、具体的に、対象図形の描画の際に基準となる頂点の頂点座標である。始点座標生成部３２１は、具体的には、たとえば、入力された頂点座標の先頭の頂点座標に対し、当該頂点座標を始点座標と設定することによって、始点座標を生成する。始点座標生成部３２１は、始点座標を生成したのち、当該始点座標を頂点ＦＩＦＯ３２６へ出力する。
【００５９】
中間頂点座標生成部３２２は、中間頂点座標を生成する機能を有する。中間頂点座標とは、具体的に、対象図形の頂点座標のうち、始点座標以外の他の頂点座標である。中間頂点座標生成部３２２は、具体的には、たとえば、入力された頂点座標のうちの先頭の頂点座標以外の頂点座標に対し、中間頂点座標と設定することによって、中間頂点座標を生成する。中間頂点座標生成部３２２は、中間頂点座標を生成したのち、当該中間頂点座標を頂点ＦＩＦＯ３２６へ出力する。
【００６０】
終点座標生成部３２３は、入力された頂点座標から終点座標を生成する機能を有する。終点座標とは、具体的に、対象図形の描画処理において、最後に入力される頂点座標であり、始点座標と同一となる座標である。終点座標生成部３２３は、具体的には、たとえば、先頭座標再利用部３０３から入力された頂点座標に対し、終点座標と設定することによって、終点座標を生成する。終点座標生成部３２３は、終点座標を生成したのち、当該終点座標を頂点ＦＩＦＯ３２６へ出力する。
【００６１】
Ｘ座標バッファ３２４は、始点座標のＸ座標を記憶する機能を有する。具体的には、メモリアドレスが連続する方向を示すＸ軸に対する始点座標のＸ座標を記憶する。Ｙ座標バッファ３２５は、中間頂点座標のＹ座標を記録する機能を有する。具体的には、Ｘ軸に直交する方向を示すＹ軸に対する中間頂点座標のＹ座標を記憶する。
【００６２】
頂点ＦＩＦＯ３２６は、各座標生成部３１１、３２１〜３２３から入力された各頂点座標を格納するとともに、格納された当該頂点座標を所定のタイミングで描画部３３０へ出力する機能を有する。頂点ＦＩＦＯ３２６に格納された頂点座標は、具体的には、たとえば、描画の開始指示があった場合に、格納された順に描画部３３０へ出力される。より具体的には、たとえば、描画される部分図形の頂点となる頂点座標とその仮想頂点座標を入力または生成された順に格納し、描画される部分図形の作成対象となる頂点座標とその仮想頂点座標とがすべて揃った場合に、当該頂点座標とその仮想頂点座標とを関連づけて、描画部３３０へ出力する。
【００６３】
より具体的には、たとえば、頂点ＦＩＦＯ３２６は、図１−２に示した部分図形を描画する場合には、頂点座標としてＶ1とＶ2の頂点座標、および仮想頂点座標としてＶ1’とＶ2’の仮想頂点座標がすべて揃ったタイミングで、これらの頂点座標および仮想頂点座標を描画部３３０へ出力する。
【００６４】
描画部３３０は、描画処理と消去処理とにより図形を出力する機能を有する。描画処理は、設定部３２０よって設定された２つの頂点座標とその仮想頂点座標とに囲まれた部分図形をメモリ上に描画する処理である。消去処理は、描画処理によって描画された部分図形にすでに作成済みの部分図形の一部または全部が重複する場合に重複する部分をメモリ上から消去する処理である。
【００６５】
たとえば、描画処理および消去処理は排他的論理和演算に基づいておこなわれ、描画処理によって描画された部分図形において、奇数回の重複する領域は描画されるとともに、偶数回の領域は消去処理によって消去される。
【００６６】
より具体的には、たとえば、描画部３３０は、図１−３で示したように、設定部３２０によって関連づけられて入力された連続する２つの頂点座標（たとえば、Ｖ2とＶ3の頂点座標）とその仮想頂点座標（たとえば、Ｖ2’とＶ3’の仮想頂点座標）とを頂点に有する部分図形を描画するとともに、重複する部分（たとえば、１Ａ）をステンシルバッファ３６０のステンシルバッファ領域１００上から消去する。
【００６７】
描画部３３０は、具体的には、図形描画部３３１と、画素論理演算部３３２とによって構成される。図形描画部３３１は、頂点ＦＩＦＯ３２６に格納された頂点座標およびその仮想頂点座標から、当該頂点座標とその仮想頂点座標とによって囲まれた部分図形を描画する機能を有する。具体的には、たとえば、設定部３２０によって関連づけられた頂点座標とその仮想頂点座標とから、当該頂点座標とその仮想頂点座標とを頂点に有する閉多角形をステンシルバッファ３６０のステンシルバッファ領域１００上に描画する。
【００６８】
画素論理演算部３３２は、図形描画部３３１によって描画された部分図形に対し、排他的論理和演算をおこなう機能を有する。画素論理演算部３３２は、演算された結果を図形描画部３３１へ出力することにより、図形描画部３３１は、演算された結果に基づいた描画をおこなう。具体的には、図形描画部３３１によって描画された複数の部分図形において、奇数回部分図形が重複した領域では当該重複した領域に対応した図形が描画され、偶数回部分図形が重複した領域では当該重複した領域に対応した図形が消去される。
【００６９】
（実施の形態１の図形描画装置の処理手順）
つぎに、この発明の実施の形態１にかかる図形描画装置３００の処理手順について説明する。図４は、この発明の実施の形態１にかかる図形描画装置の処理手順を示すフローチャートである。図４に示すフローチャートは、たとえば、アプリケーションから対象図形の描画の指示を受け付けた場合に開始される。
【００７０】
図形描画装置３００は、まず、頂点座標が入力されるまで待機する（ステップＳ４０１：Ｎｏのループ）。具体的には、たとえば、アプリケーションによって生成された頂点座標ストリーム３４０から頂点座標入力インターフェース３５０を介して、図形描画装置３００に頂点座標が入力されるまで待機する。
【００７１】
ステップＳ４０１において、頂点座標が入力された場合（ステップＳ４０１：Ｙｅｓ）、当該頂点座標を記憶する（ステップＳ４０２）。具体的には、図形描画装置３００は、入力された頂点座標を頂点座標バッファ３０４に記憶する。
【００７２】
つぎに、入力された頂点座標が一連の頂点座標のうちの先頭の頂点座標であるか否かを判定する（ステップＳ４０３）。具体的には、図形描画装置３００は、入力された頂点座標から頂点種別判定部３０１によって当該頂点座標の種別を判別することにより判定する。ステップＳ４０３において、入力された頂点座標が先頭の頂点座標であった場合（ステップＳ４０３：Ｙｅｓ）にはステップＳ４０４へ進み、先頭の頂点座標でなかった場合（ステップＳ４０３：Ｎｏ）にはステップＳ４０８へ進む。
【００７３】
ステップＳ４０３において、入力された頂点座標が先頭の頂点座標であると判定された場合（ステップＳ４０３：Ｙｅｓ）には、当該先頭の頂点座標を記憶する（ステップＳ４０４）。具体的には、図形描画装置３００は、頂点種別判定部３０１によって先頭の頂点座標として判別された頂点座標を先頭座標バッファ３０２に記憶する。
【００７４】
ステップＳ４０４において、先頭の頂点座標を記憶したのち、記憶された先頭座標から始点座標を生成する（ステップＳ４０５）。具体的には、図形描画装置３００は、先頭座標バッファ３０２に記憶された先頭の頂点座標から、始点座標生成部３２１によって始点座標を生成する。より具体的には、たとえば、先頭の頂点座標が（Ｖ0x，Ｖ0y）であった場合には、（Ｖ0x，Ｖ0y）を始点座標として、始点座標（Ｖ0x，Ｖ0y）を生成する。
【００７５】
ステップＳ４０５において、始点座標を生成したのち、生成した始点座標のＸ座標を記憶する（ステップＳ４０６）。具体的には、図形描画装置３００は、始点座標生成部３２１によって生成された始点座標のＸ座標をＸ座標バッファ３２４に記憶する。より具体的には、たとえば、始点座標が（Ｖ0x，Ｖ0y）である場合には、始点座標（Ｖ0x，Ｖ0y）のＸ座標Ｖ0xがＸ座標バッファ３２４に記憶されることとなる。
【００７６】
ステップＳ４０６において、始点座標のＸ座標を記憶したのち、始点座標を頂点ＦＩＦＯに格納する（ステップＳ４０７）。具体的には、図形描画装置３００は、始点座標のＸ座標をＸ座標バッファ３２４に記憶したのち、始点座標を頂点ＦＩＦＯ３２６へ出力し、当該始点座標を頂点ＦＩＦＯ３２６に格納する。より具体的には、たとえば、始点座標が（Ｖ0x，Ｖ0y）である場合には、当該始点座標（Ｖ0x，Ｖ0y）が頂点ＦＩＦＯ３２６に格納されることとなる。
【００７７】
ステップＳ４０３において、入力された頂点座標が先頭の頂点座標でないと判定された場合（ステップＳ４０３：Ｎｏ）には、当該頂点座標から中間頂点座標を生成する（ステップＳ４０８）。具体的には、図形描画装置３００は、先頭の頂点座標でないと判定された頂点座標から中間頂点座標生成部３２２によって中間頂点座標を生成する。より具体的には、たとえば、先頭の頂点座標でないと判定された頂点座標が（Ｖ1x，Ｖ1y）である場合には、先頭の頂点座標でないと判定された頂点座標（Ｖ1x，Ｖ1y）から中間頂点座標（Ｖ1x，Ｖ1y）を生成する。
【００７８】
ステップＳ４０８において、中間頂点座標を生成したのち、生成した中間頂点座標のＹ座標を記憶する（ステップＳ４０９）。具体的には、図形描画装置３００は、中間頂点座標生成部３２２によって生成された中間頂点座標のＹ座標をＹ座標バッファ３２５に記憶する。より具体的には、たとえば、中間頂点座標が（Ｖ1x，Ｖ1y）である場合には、中間頂点座標（Ｖ1x，Ｖ1y）のＹ座標Ｖ1yがＹ座標バッファ３２５に記憶されることとなる。
【００７９】
ステップＳ４０９において、中間頂点座標のＹ座標を記憶したのち、中間頂点座標を頂点ＦＩＦＯに格納する（ステップＳ４１０）。具体的には、図形描画装置３００は、中間頂点座標のＹ座標をＹ座標バッファ３２５に記憶したのち、中間頂点座標を頂点ＦＩＦＯ３２６へ出力し、当該中間頂点座標を頂点ＦＩＦＯ３２６に格納する。より具体的には、たとえば、中間頂点座標が（Ｖ1x，Ｖ1y）である場合には、当該中間頂点座標（Ｖ1x，Ｖ1y）が頂点ＦＩＦＯ３２６に格納されることとなる。
【００８０】
ステップＳ４０７およびステップＳ４１０において、始点座標および中間頂点座標が頂点ＦＩＦＯに格納されたのち、始点座標のＸ座標と中間頂点座標のＹ座標とから仮想頂点座標を生成する（ステップＳ４１１）。具体的には、図形描画装置３００は、Ｘ座標バッファ３２４に記憶された始点座標のＸ座標と、Ｙ座標バッファ３２５に記憶された中間頂点座標のＹ座標とから、仮想頂点座標生成部３１１によって仮想頂点座標を生成する。より具体的には、たとえば、Ｘ座標バッファ３２４に記憶されたＸ座標がＶ0xであり、Ｙ座標バッファ３２５に記憶されたＹ座標がＶ1yである場合には、仮想頂点Ｖ1’の仮想頂点座標（Ｖ0x，Ｖ1y）が生成されることとなる。
【００８１】
ステップＳ４１１において、仮想頂点座標を生成したのち、生成された仮想頂点座標を頂点ＦＩＦＯに格納する（ステップＳ４１２）。具体的には、図形描画装置３００は、Ｘ座標バッファ３２４に記憶されたＸ座標と、Ｙ座標バッファ３２５に記憶されたＹ座標とから仮想頂点座標生成部３１１によって仮想頂点座標を生成し、当該仮想頂点座標を頂点ＦＩＦＯ３２６へ出力することにより、当該仮想頂点座標を頂点ＦＩＦＯ３２６に格納する。より具体的には、たとえば、仮想頂点座標が（Ｖ0x，Ｖ1y）である場合には、当該仮想頂点座標（Ｖ0x，Ｖ1y）が頂点ＦＩＦＯ３２６に格納されることとなる。
【００８２】
ステップＳ４１２において、頂点ＦＩＦＯに格納されている頂点座標から部分図形を描画する（ステップＳ４１３）。具体的には、図形描画装置３００は、頂点ＦＩＦＯ３２６に格納された部分図形の作成対象となる連続する２つの頂点座標と、その仮想頂点座標を描画部３３０へ出力することによって、描画部３３０により、ステンシルバッファ３６０のステンシルバッファ領域上に部分図形を描画する。より具体的には、たとえば、頂点ＦＩＦＯ３２６に格納されている頂点座標が、（Ｖ0x，Ｖ0y）、（Ｖ1x，Ｖ1y）、（Ｖ0x，Ｖ1y）である場合には、Ｖ0、Ｖ1、Ｖ1’を頂点に有する部分図形がステンシルバッファ領域１００上に描画されることとなる。
【００８３】
ステップＳ４１３において、部分図形を描画したのち、すべての頂点座標が入力されたか否かを判定する（ステップＳ４１４）。具体的には、図形描画装置３００は、頂点種別判定部３０１によって末尾の頂点座標と判別された頂点座標が入力された場合に、すべての頂点座標が入力されたと判定する。
【００８４】
ステップＳ４１４において、すべての頂点座標が入力されたと判定された場合（ステップＳ４１４：Ｙｅｓ）には、最後の部分図形を描画する（ステップＳ４１５）。最後の部分図形を描画したのち、一連の処理を終了する。具体的には、最後の部分図形は、終点座標生成部３２３によって生成された終点座標と、末尾の頂点座標と、当該頂点座標の仮想頂点座標とに基づいて描画される。すべての頂点座標が入力されていないと判定された場合（ステップＳ４１４：Ｎｏ）には、ステップＳ４０１に戻り、同様の処理を繰り返す。
【００８５】
以上、説明したように、実施の形態１の図形描画装置３００によれば、対象図形の描画に際して、頂点座標ストリーム３４０には存在しない仮想頂点Ｖ1’〜Ｖ6’の仮想頂点座標を便宜的に生成し、連続した２つの頂点座標および当該頂点座標に対して生成された仮想頂点座標を有する部分図形によって対象図形を構成するため、描画の際に関与する走査線を連続する２つの頂点座標間にある走査線だけに抑えることができ、メモリアドレスが連続する画素の比率を高めＶＲＡＭへのランダムアクセスを減らし、描画速度を向上させることができる。
【００８６】
（実施の形態２）
つぎに、この発明にかかる実施の形態２について説明する。実施の形態２においては、対象図形中にクリッピングが発生した場合における描画について説明する。なお、上述した実施の形態１と同一の構成については同一符号とし、説明を省略する。
【００８７】
クリッピングとは、公知の技術であるため詳細な説明は省略するが、特定された範囲の領域内（たとえば、特定された矩形の内部の領域）のみを描画の対象とする技術である。たとえば、入力された頂点座標が特定された範囲、すなわち、クリッピング領域に含まれない場合は、クリッピング領域の境界線を越えて、ラインをクリッピング領域外に引いたりすることはなく、クリッピング領域に含まれる箇所のみが描画される。
【００８８】
（実効頂点座標について）
実施の形態２において、図形描画装置は、たとえば、入力された一連の頂点座標のうち、クリッピング領域外となる頂点座標に対し、実効頂点座標を生成し、生成された実効頂点座標に基づいて描画をおこなう。
【００８９】
具体的には、入力された一連の頂点座標のうち、先頭の頂点座標がクリッピング領域外であった場合には、実施の形態１における始点座標の代わりとして実効始点座標を生成し、他の頂点座標がクリッピング領域外であった場合には、実施の形態１の中間頂点座標の代わりとして実効中間頂点座標を生成する。
【００９０】
実効始点座標は、たとえば、ステンシルバッファ領域上に設定されたクリッピング領域に初めて含まれる頂点座標と、当該頂点座標の直前の頂点座標とに基づいて算出されるクリッピング領域の境界線上の座標である。より具体的には、たとえば、クリッピング領域に初めて含まれる頂点座標と、当該頂点座標における前回頂点座標とを結んだ線分と、クリッピング領域の境界線との交点座標である。
【００９１】
実効中間頂点座標は、たとえば、ステンシルバッファ領域上に設定されたクリッピング領域と、連続する２つの頂点座標とに基づいて算出されるクリッピング領域の境界線上の座標である。より具体的には、クリッピング領域の境界線と、連続する２つの頂点座標を結んだ線分との交点座標である。
【００９２】
終点座標は、実効始点座標と同一の座標として設定される。すなわち、ステンシルバッファ上に設定されたクリッピング領域に初めて含まれる頂点座標と、当該頂点座標の直前の頂点座標とに基づいて算出されるクリッピング領域の境界線上の座標である。より具体的には、たとえば、ステンシルバッファ上に設定されたクリッピング領域に初めて含まれる頂点座標と、当該頂点座標の直前の頂点座標とを結んだ線分と、クリッピング領域の境界線との交点座標である。
【００９３】
なお、先頭の頂点座標がクリッピング領域に含まれず、実効始点座標が生成された場合において、図形描画装置は、入力された一連の頂点座標のうち、末尾の頂点座標が入力されたと判別された場合に、つぎの頂点座標として先頭の頂点座標を入力し、最後に入力される頂点座標として終点座標が入力される。すなわち、実施の形態２においては、最後の部分図形は、先頭の頂点座標、当該先頭の頂点座標に対する仮想頂点座標、終点座標を頂点に有する部分図形となる。
【００９４】
（実施の形態２の図形描画装置における描画）
つぎに、この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れについて説明する。図５−１〜５−９は、この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その１）〜（その９）である。図５に示すように、実施の形態２おいては、ステンシルバッファ領域１００上にあらかじめクリッピング領域５００が設定されている。
【００９５】
まず、図形描画装置には、頂点座標ストリームから頂点座標入力インターフェースを介して、Ｖ0〜Ｖ2の頂点座標が順次入力されるが、いずれもクリッピング領域５００外の座標であり、Ｖ3の頂点座標（Ｖ3x，Ｖ3y）によって、初めて頂点座標がクリッピング領域５００内に含まれる座標となる。このとき、図形描画装置は、Ｖ2とＶ3とを結んだ線分と、クリッピング領域５００の境界線５００ａとの交点Ｃ0の交点座標（Ｃ0x，Ｃ0y）を算出し、実効始点座標（Ｃ0x，Ｃ0y）として設定し、（Ｃ0x，Ｃ0y）のＸ座標をＸ座標バッファ３２４に記憶する。
【００９６】
つぎに、図形描画装置は、実効始点座標（Ｃ0x，Ｃ0y）および中間頂点座標（Ｖ3x，Ｖ3y）に基づいて仮想頂点Ｖ3’の仮想頂点座標（Ｃ0x，Ｖ3y）を生成する。すなわち、仮想頂点座標（Ｃ0x，Ｖ3y）は、実効始点座標（Ｃ0x，Ｃ0y）とＸ座標を同じくし、中間頂点座標（Ｖ3x，Ｖ3y）とＹ座標を同じくする座標である。図形描画装置は、仮想頂点座標（Ｃ0x，Ｖ3y）を生成したのち、Ｃ0、Ｖ3’、Ｖ3を頂点に有する部分図形をステンシルバッファ領域１００上に描画する（図５−１）。
【００９７】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ4x，Ｖ4y）が入力される。ここで、（Ｖ4x，Ｖ4y）はクリッピング領域５００外の座標であるため、図形描画装置は、Ｖ3とＶ4とを結んだ線分と、境界線５００ａとの交点Ｃ1の交点座標（Ｃ1x，Ｃ1y）を算出し、交点座標（Ｃ1x，Ｃ1y）を実効中間頂点座標（Ｃ1x，Ｃ1y）として生成する。実効中間頂点座標（Ｃ1x，Ｃ1y）を生成したのち、（Ｃ1x，Ｃ1y）のＹ座標をＹ座標バッファ３２５に記憶する。つぎに、図形描画装置は、実効始点座標（Ｃ0x，Ｃ0y）および実効中間頂点座標（Ｃ1x，Ｃ1y）に基づいて仮想頂点Ｃ1’の仮想頂点座標（Ｃ0x，Ｃ1y）を生成する。
【００９８】
すなわち、仮想頂点座標（Ｃ0x，Ｃ1y）は、実効始点座標（Ｃ0x，Ｃ0y）とＸ座標を同じくし、実効中間頂点座標（Ｃ1x，Ｃ1y）とＹ座標を同じくする座標である。図形描画装置は、仮想頂点Ｃ1’の仮想頂点座標（Ｃ0x，Ｃ1y）を生成したのち、Ｖ3、Ｖ3’、Ｃ1’、Ｃ1を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域５Ａにおいては、偶数個の図形が重複するため、図形が消去される（図５−２）。
【００９９】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ5x，Ｖ5y）が入力される。ここで、（Ｖ5x，Ｖ5y）はクリッピング領域５００外の座標であるため、図形描画装置は、Ｖ4とＶ5とを結んだ線分と、境界線５００ａとの交点Ｃ2の交点座標（Ｃ2x，Ｃ2y）および交点Ｃ3の交点座標（Ｃ3x，Ｃ3y）をそれぞれ算出する。（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）を算出したのち、交点座標（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）を実効中間頂点座標（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）として生成し、実効中間頂点座標（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｃ0x，Ｃ0y）および実効中間頂点座標（Ｃ2x，Ｃ2y）および実効中間頂点座標（Ｃ3x，Ｃ3y）に基づいて、仮想頂点のＣ2’、Ｃ3’の仮想頂点座標（Ｃ0x，Ｃ2y）、（Ｃ0x，Ｃ3y）をそれぞれ生成する。
【０１００】
すなわち、仮想頂点座標（Ｃ0x，Ｃ2y）は実効始点座標（Ｃ0x，Ｃ0y）とＸ座標を同じくし実効中間頂点座標（Ｃ2x，Ｃ2y）とＹ座標を同じくする座標であり、仮想頂点座標（Ｃ0x，Ｃ3y）は実効始点座標（Ｃ0x，Ｃ0y）とＸ座標を同じくし実効中間頂点座標（Ｃ3x，Ｃ3y）とＹ座標を同じくする座標である。図形描画装置は、仮想頂点座標（Ｃ0x，Ｃ2y）および（Ｃ0x，Ｃ3y）を生成したのち、Ｃ2、Ｃ2’、Ｃ3’、Ｃ3を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域５Ｂにおいては、偶数個の図形が重複するため、図形が消去される（図５−３）。
【０１０１】
つぎに、同様にして、図形描画装置に中間頂点座標（Ｖ6x，Ｖ6y）が入力される。ここで、（Ｖ6x，Ｖ6y）はクリッピング領域５００内の座標であるため、頂点座標がクリッピング領域５００外からクリッピング領域５００内に流入する。図形描画装置は、Ｖ5とＶ6とを結んだ線分と、境界線５００ａとの交点Ｃ4の交点座標（Ｃ4x，Ｃ4y）を算出する。（Ｃ4x，Ｃ4y）を算出したのち、実効中間頂点座標（Ｃ4x，Ｃ4y）を生成し、（Ｃ4x，Ｃ4y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｃ0x，Ｃ0y）および実効中間頂点座標（Ｃ4x，Ｃ4y）に基づいて、仮想頂点Ｃ4’の仮想頂点座標（Ｃ0x，Ｃ4y）を生成する。
【０１０２】
すなわち、仮想頂点座標（Ｃ0x，Ｃ4y）は、実効始点座標（Ｃ0x，Ｃ0y）とＸ座標を同じくし、実効中間頂点座標（Ｃ4x，Ｃ4y）とＹ座標を同じくする座標である。図形描画装置は、仮想頂点座標（Ｃ0x，Ｃ4y）を生成したのち、Ｃ3、Ｃ3’、Ｃ4’、Ｃ4を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図５−４）。
【０１０３】
つぎに、実効始点座標（Ｃ0x，Ｃ0y）および中間頂点座標（Ｖ6x，Ｖ6y）に基づいて、仮想頂点Ｖ6’の仮想頂点座標（Ｃ0x，Ｖ6y）を生成する。すなわち、仮想頂点座標（Ｃ0x，Ｖ6y）は、実効始点座標（Ｃ0x，Ｃ0y）とＸ座標を同じくし、中間頂点座標（Ｖ6x，Ｖ6y）とＹ座標を同じくする座標である。図形描画装置は、仮想頂点座標（Ｃ0x，Ｖ6y）を生成したのち、Ｃ4、Ｃ4’、Ｖ6’、Ｖ6を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図５−５）。
【０１０４】
つぎに、図形描画装置は、末尾の頂点座標であると判別された（Ｖ6x，Ｖ6y）までの入力が終了した場合、再び、（Ｖ0x，Ｖ0y）を入力する。ここで、（Ｖ0x，Ｖ0y）はクリッピング領域５００外の座標であるため、図形描画装置は、Ｖ6とＶ0とを結んだ線分と、境界線５００ａとの交点Ｃ5の交点座標（Ｃ5x，Ｃ5y）を算出する。（Ｃ5x，Ｃ5y）を算出したのち、実効中間頂点座標（Ｃ5x，Ｃ5y）を生成し、（Ｃ5x，Ｃ5y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｃ0x，Ｃ0y）および中間頂点座標（Ｃ5x，Ｃ5y）に基づいて、仮想頂点Ｃ5’の仮想頂点座標（Ｃ0x，Ｃ5y）を生成する。
【０１０５】
また、Ｖ6とＶ0とを結んだ線分は、Ｃ0（図５−６では、Ｃ0はＣ2’と重複しているため図示していない）からＹ軸方向に伸ばした直線と交差するため、図形描画装置は、Ｖ6とＶ0とを結んだ線分と、Ｃ0からＹ軸方向に伸ばした直線との交点Ｒ0の交点座標も算出する。図形描画装置は、仮想頂点Ｃ5’を生成、交点Ｒ0の交点座標を算出したのち、Ｖ6、Ｖ6’、Ｒ0を頂点に有する部分図形と、Ｃ5、Ｃ5’、Ｒ0を頂点に有する部分図形とを排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域５Ｃにおいては、偶数個の図形が重複するため、図形が消去される（図５−６）。
【０１０６】
つぎに、図形描画装置は、Ｖ0から、Ｘ軸方向に境界線５００ａと交差するまで伸ばした線分と、境界線５００ａとの交点Ｃ6の交点座標（Ｃ6x，Ｃ6y）を算出する。（Ｃ6x，Ｃ6y）を算出したのち、実効中間頂点座標（Ｃ6x，Ｃ6y）を生成し、（Ｃ6x，Ｃ6y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｃ0x，Ｃ0y）および中間頂点座標（Ｃ6x，Ｃ6y）に基づいて、仮想頂点Ｃ6’の仮想頂点座標（Ｃ0x，Ｃ6y）を生成する。図形描画装置は、仮想頂点座標（Ｃ0x，Ｃ6y）を生成したのち、Ｃ5、Ｃ5’、Ｃ6’、Ｃ6を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図５−７）。
【０１０７】
つぎに、図形描画装置は、Ｖ1から、Ｘ軸方向に境界線５００ａと交差するまで伸ばした線分と、境界線５００ａとの交点Ｃ7の交点座標（Ｃ7x，Ｃ7y）を算出する。（Ｃ7x，Ｃ7y）を算出したのち、実効中間頂点座標（Ｃ7x，Ｃ7y）を生成し、（Ｃ7x，Ｃ7y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｃ0x，Ｃ0y）および中間頂点座標（Ｃ7x，Ｃ7y）に基づいて、仮想頂点Ｃ7’の仮想頂点座標（Ｃ0x，Ｃ7y）を生成する。図形描画装置は、仮想頂点座標（Ｃ0x，Ｃ7y）を生成したのち、Ｃ6、Ｃ6’、Ｃ7’、Ｃ7を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図５−８）。
【０１０８】
つぎに、図形描画装置は、公知の技術のため詳細な説明は省略するが、Ｖ2における幾何学的な処理に基づいて、Ｃ8の座標（Ｃ8x，Ｃ8y）を算出する。（Ｃ8x，Ｃ8y）を算出したのち、実効中間頂点座標（Ｃ8x，Ｃ8y）を生成し、（Ｃ8x，Ｃ8y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｃ0x，Ｃ0y）および中間頂点座標（Ｃ8x，Ｃ8y）に基づいて、仮想頂点Ｃ8’の仮想頂点座標（Ｃ0x，Ｃ8y）を生成する。図形描画装置は、仮想頂点座標（Ｃ0x，Ｃ8y）を生成したのち、Ｃ7、Ｃ7’、Ｃ8’、Ｃ8を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図５−９）。
【０１０９】
以上に説明したように、実施の形態２の図形描画装置において、入力された頂点座標から、実効頂点座標を生成するとともに、当該実効頂点座標に対する仮想頂点座標を生成することによって、Ｖ0〜Ｖ6を頂点として有する対象図形のうちのクリッピング領域５００内に含まれた領域が描画されることとなる。
【０１１０】
（実施の形態２の図形描画装置の機能的構成）
つぎに、この発明の実施の形態２にかかる図形描画装置の機能的構成について説明する。図６は、この発明の実施の形態２にかかる図形描画装置の機能的構成を示すブロック図である。図６に示すように、実施の形態２の図形描画装置６００は、実施の形態１の図形描画装置３００にクリッピング処理部６１０が組み合わされて構成される。すなわち、実施の形態２の図形描画装置６００は、頂点種別判定部３０１と、先頭座標バッファ３０２と、先頭座標再利用部３０３と、頂点座標バッファ３０４と、生成部３１０と、設定部３２０と、描画部３３０と、クリッピング処理部６１０とを備える。
【０１１１】
クリッピング処理部６１０は、クリップ判定部６１１と、判定結果バッファ６１２と、交点座標算出部６１３とによって構成される。クリップ判定部６１１は、入力された頂点座標に対し、当該頂点座標がクリッピング領域に含まれるか否かを判定する機能を有する。クリップ判定部６１１によって判定された判定結果は、判定結果バッファ６１２へ出力され、判定された頂点座標は、交点座標算出部６１３へ出力される。すなわち、頂点座標ストリーム３４０から頂点座標入力インターフェース３５０を介して入力された頂点座標は、まず、頂点種別判定部３０１によって頂点の種別が判別されたのち、つぎに、クリップ判定部６１１によって、クリッピング領域に含まれるかを判定される。
【０１１２】
判定結果バッファ６１２は、クリップ判定部６１１によって判定された判定結果を記憶する機能を有する。判定結果バッファ６１２に記憶される判定結果は、図形描画装置６００による部分図形の描画処理が１サイクルするごとに書き換えられる。
【０１１３】
公知の技術のために、詳細な説明は省略するが、クリップ判定部６１１によって判定された判定結果および判定結果バッファ６１２に記憶された前回頂点座標の判定結果によって、交点座標があるか否かを判定する。交点座標が存在する場合、判定結果は、連続する２つの頂点座標に対し、それぞれ判定結果が異なる場合、連続する２つの頂点座標に対して、判定結果が双方ともクリッピング領域外と判定された場合の３つの場合がある。
【０１１４】
交点座標算出部６１３は、交点座標を算出する機能を有する。交点座標とは、たとえば、クリッピング領域の境界線と、連続する２つの頂点座標を結んだ線分との交点の座標である。また、交点座標は、頂点座標からＸ軸方向またはＹ軸方向へ伸ばした直線と、クリッピング領域の境界線との交点の座標であってもよい。
【０１１５】
（実施の形態２の図形描画装置の処理手順）
つぎに、この発明の実施の形態２にかかる図形描画装置６００の処理手順について説明する。図７は、この発明の実施の形態２にかかる図形描画装置の処理手順を示すフローチャートである。図７に示すフローチャートは、たとえば、アプリケーションから対象図形の描画の指示を受け付けた場合に開始される。
【０１１６】
図形描画装置６００は、まず、頂点座標が入力されるまで待機する（ステップＳ７０１：Ｎｏのループ）。具体的には、たとえば、アプリケーションによって生成された頂点座標ストリーム３４０から頂点座標入力インターフェース３５０を介して、図形描画装置６００に頂点座標が入力されるまで待機する。
【０１１７】
ステップＳ７０１において、頂点座標が入力された場合（ステップＳ７０１：Ｙｅｓ）には、当該頂点座標を記憶する（ステップＳ７０２）。具体的には、図形描画装置６００は、入力された頂点座標を頂点座標バッファ３０４に記憶する。
【０１１８】
つぎに、入力された頂点座標が一連の頂点座標のうちの先頭の頂点座標であるか否かを判定する（ステップＳ７０３）。具体的には、図形描画装置６００は、入力された頂点座標から頂点種別判定部３０１によって当該頂点座標の種別を判別することによって判定する。ステップＳ７０３において、入力された頂点座標が先頭の頂点座標であった場合（ステップＳ７０３：Ｙｅｓ）にはステップＳ７０４へ進み、先頭の頂点座標でなかった場合（ステップＳ７０３：Ｎｏ）にはステップＳ７１１へ進む。
【０１１９】
ステップＳ７０３において、入力された頂点座標が先頭の頂点座標であると判定された場合（ステップＳ７０３：Ｙｅｓ）には、当該先頭の頂点座標を記憶する（ステップＳ７０４）。具体的には、図形描画装置６００は、頂点種別判定部３０１によって先頭の頂点座標として判別された頂点座標を先頭座標バッファ３０２に記憶する。より具体的には、先頭の頂点座標が（Ｖ0x，Ｖ0y）であった場合には、先頭の頂点座標（Ｖ0x，Ｖ0y）を先頭座標バッファ３０２に記憶する。
【０１２０】
ステップＳ７０４において、先頭の頂点座標を記憶したのち、当該先頭の頂点座標がクリッピング領域に含まれるか否かを判定する（ステップＳ７０５）。具体的には、図形描画装置６００は、入力された頂点座標から頂点種別判定部３０１によって先頭の頂点座標であると判別された頂点座標に対して、クリップ判定部６１１によって当該先頭の頂点座標がクリッピング領域内に含まれる座標であるか否かを判定する。ステップＳ７０５において、先頭の頂点座標がクリッピング領域に含まれると判定された場合（ステップＳ７０５：Ｎｏ）にはステップＳ７０６へ進み、含まれないと判定された場合（ステップＳ７０５：Ｙｅｓ）にはステップＳ７０１へ戻る。
【０１２１】
ステップＳ７０５において、先頭の頂点座標がクリッピング領域に含まれると判定された場合（ステップＳ７０５：Ｎｏ）には、前回頂点座標がクリッピング領域に含まれるか否かを判定する（ステップＳ７０６）。具体的には、図形描画装置６００は、判定結果バッファ６１２に記憶された前回頂点座標の判定結果に基づいて判定する。ステップＳ７０６において、前回頂点座標がクリッピング領域に含まれると判定された場合（ステップＳ７０６：Ｎｏ）にはステップＳ７０８へ進み、含まれないと判定された場合（ステップＳ７０６：Ｙｅｓ）にはステップＳ７０７へと進む。なお、入力された頂点座標が先頭の頂点座標の場合には、前回頂点座標が存在しないため、前回頂点座標がクリッピング領域に含まれると解釈して、ステップＳ７０８へと進む。
【０１２２】
ステップＳ７０６において、前回入力された頂点座標がクリッピング領域内に含まれないと判定された場合（ステップＳ７０６：Ｙｅｓ）には、交点座標を算出する（ステップＳ７０７）。具体的には、図形描画装置６００は、入力された頂点座標と前回頂点座標との少なくともいずれか一方に基づいて交点座標算出部６１３によって交点座標を算出する。より具体的には、たとえば、図形描画装置６００は、入力された頂点座標と前回頂点座標とを結んだ線分と、境界線５００ａとの交点座標を算出する。
【０１２３】
ステップＳ７０６およびステップＳ７０７において、入力された先頭の頂点座標または算出された交点座標から、実効始点座標を生成する（ステップＳ７０８）。具体的には、図形描画装置６００は、入力された先頭の頂点座標または算出された交点座標から、入力された先頭の頂点座標または算出された交点座標を始点座標生成部３２１へ入力することにより、実効始点座標を生成する。より具体的には、先頭の頂点座標がクリッピング領域に含まれると判定された場合には、当該先頭の頂点座標を実効始点座標として生成し、先頭の頂点座標がクリッピング領域内に含まれないと判定された場合には、ステップＳ７０７において算出された交点座標を実効始点座標として生成する。
【０１２４】
ステップＳ７０８において、実効始点座標が生成されたのち、生成した実効始点座標のＸ座標を記憶する（ステップＳ７０９）。具体的には、図形描画装置６００は、始点座標生成部３２１によって生成された実効始点座標のＸ座標をＸ座標バッファ３２４に記憶する。より具体的には、たとえば、実効始点座標が（Ｃ0x，Ｃ0y）である場合には、実効始点座標（Ｃ0x，Ｃ0y）のＸ座標Ｃ0xがＸ座標バッファ３２４に記憶されることとなる。なお、この際に、生成された実効始点座標（Ｃ0x，Ｃ0y）自体も先頭座標バッファ３０２に記憶する。
【０１２５】
ステップＳ７０９において、実効始点座標のＸ座標を記憶したのち、実効始点座標を頂点ＦＩＦＯに格納する（ステップＳ７１０）。具体的には、図形描画装置６００は、実効始点座標のＸ座標をＸ座標バッファ３２４に記憶したのち、実効始点座標を頂点ＦＩＦＯ３２６へ出力し、当該実効始点座標を頂点ＦＩＦＯ３２６に格納する。より具体的には、たとえば、実効始点座標（Ｃ0x，Ｃ0y）である場合には、当該実効始点座標（Ｃ0x，Ｃ0y）が頂点ＦＩＦＯ３２６に格納されることとなる。
【０１２６】
ステップＳ７０３において、先頭の頂点座標でないと判定された場合（ステップＳ７０３：Ｎｏ）には、すでに実効始点座標があるか否かを判定する（ステップＳ７１１）。具体的には、図形描画装置６００は、先頭座標バッファ３０２にすでに実効始点座標に該当する頂点座標が記憶されているか否かによって判定する。ステップＳ７１１において、すでに実効始点座標があると判定された場合（ステップＳ７１１：Ｙｅｓ）にはステップＳ７１２へと進み、実効始点座標がないと判定された場合には（ステップＳ７１１：Ｎｏ）ステップＳ７０５へと進む。
【０１２７】
ステップＳ７１１において、すでに実効始点座標があると判定された場合（ステップＳ７１１：Ｙｅｓ）には、入力された頂点座標がクリッピング領域内に含まれるか否かを判定する（ステップＳ７１２）。具体的には、図形描画装置６００は、入力された頂点座標に対して、クリップ判定部６１１によって判定する。ステップＳ７１２において、入力された頂点座標がクリッピング領域に含まれると判定された場合（ステップＳ７１２：Ｎｏ）にはステップＳ７１５へ進み、含まれないと判定された場合（ステップＳ７１２：Ｙｅｓ）にはステップＳ７１３へと進む。
【０１２８】
ステップＳ７１２において、頂点座標がクリッピング領域内に含まれない（ステップＳ７１２：Ｙｅｓ）と判定された場合には、交点座標があるか否かを判定する（ステップＳ７１３）。具体的には、図形描画装置６００は、入力された頂点座標に対するクリップ判定部６１１によって判定された判定結果および判定結果バッファ６１２に記憶された前回頂点座標の判定結果に基づいて、判定する。交点座標があると判定された場合（ステップＳ７１３：Ｙｅｓ）にはステップＳ７１４へ進み、交点座標がないと判定された場合（ステップＳ７１３：Ｎｏ）にはステップＳ７０１へ戻る。
【０１２９】
ステップＳ７１３において、交点座標があると判定された場合（ステップＳ７１３：Ｙｅｓ）には、交点座標を算出する（ステップＳ７１４）。具体的には、図形描画装置６００は、入力された頂点座標と前回頂点座標のうちの少なくともいずれか一方の頂点座標と、境界線５００ａとに基づいて交点座標を算出する。より具体的には、入力された頂点座標と前回頂点座標とを結んだ線分と境界線５００ａとの交点座標とを算出する。
【０１３０】
ステップＳ７１４において、交点座標を算出したのち、交点座標を実効中間頂点として生成する（ステップＳ７１５）。具体的には、図形描画装置６００は、交点座標算出部６１３によって算出された交点座標を中間頂点座標生成部３２２へ出力し、算出された交点座標から中間頂点座標生成部３２２によって実効中間頂点座標を生成する。
【０１３１】
ステップＳ７１２およびステップＳ７１４において、入力された頂点座標または算出された交点座標から、実効中間頂点座標を生成する（ステップＳ７１５）。具体的には、図形描画装置６００は、入力された頂点座標または算出された交点座標を中間頂点座標生成部３２２へ入力することにより、実効中間頂点座標を生成する。より具体的には、入力された頂点座標がクリッピング領域に含まれると判定された場合には、当該頂点座標を実効中間頂点座標として生成し、入力された頂点座標がクリッピング領域内に含まれないと判定された場合には、ステップＳ７１４において算出された交点座標を実効中間頂点座標として生成する。
【０１３２】
ステップＳ７１５において、実効中間頂点座標が生成されたのち、生成した実効中間頂点座標のＹ座標を記憶する（ステップＳ７１６）。具体的には、図形描画装置６００は、中間頂点座標生成部３２２によって生成された実効中間頂点座標のＹ座標をＹ座標バッファ３２５に記憶する。より具体的には、たとえば、実効中間頂点座標が（Ｃ1x，Ｃ1y）である場合には、実効中間頂点座標（Ｃ1x，Ｃ1y）のＹ座標Ｃ1yがＹ座標バッファ３２５に記憶されることとなる。
【０１３３】
ステップＳ７１６において、実効中間頂点座標のＹ座標を記憶したのち、実効中間頂点座標を頂点ＦＩＦＯに格納する（ステップＳ７１７）。具体的には、図形描画装置６００は、実効中間頂点座標のＹ座標をＹ座標バッファ３２５に記憶したのち、実効中間頂点座標を頂点ＦＩＦＯ３２６へ出力し、当該実効中間頂点座標を頂点ＦＩＦＯ３２６に格納する。より具体的には、たとえば、実効中間頂点座標（Ｃ1x，Ｃ1y）である場合には、当該実効中間頂点座標（Ｃ1x，Ｃ1y）が頂点ＦＩＦＯ３２６に格納されることとなる。
【０１３４】
ステップＳ７１０およびステップＳ７１７において、実効始点座標および実効中間頂点座標が頂点ＦＩＦＯに格納されたのち、実効始点座標のＸ座標と実効中間頂点座標のＹ座標とから仮想頂点座標を生成する（ステップＳ７１８）。具体的には、図形描画装置６００は、Ｘ座標バッファ３２４に記憶された実効始点座標のＸ座標と、Ｙ座標バッファ３２５に記憶された実効中間頂点座標のＹ座標とから、仮想頂点座標生成部３１１によって仮想頂点座標を生成する。より具体的には、たとえば、Ｘ座標バッファ３２４に記憶されたＸ座標がＣ0xであり、Ｙ座標バッファ３２５に記憶されたＹ座標がＣ1yである場合には、仮想頂点Ｃ1’の仮想頂点座標（Ｃ0x，Ｃ1y）が生成されることとなる。
【０１３５】
ステップＳ７１８において、仮想頂点座標を生成したのち、生成された仮想頂点座標を頂点ＦＩＦＯに格納する（ステップＳ７１９）。具体的には、図形描画装置６００は、Ｘ座標バッファ３２４に記憶されたＸ座標と、Ｙ座標バッファ３２５に記憶されたＹ座標とから仮想頂点座標生成部３１１によって仮想頂点座標を生成し、当該仮想頂点座標を頂点ＦＩＦＯ３２６へ出力することにより、当該仮想頂点座標を頂点ＦＩＦＯ３２６に格納する。より具体的には、たとえば、仮想頂点座標が（Ｃ0x，Ｃ1y）である場合には、当該仮想頂点座標（Ｃ0x，Ｃ1y）が頂点ＦＩＦＯ３２６に格納されることとなる。
【０１３６】
ステップＳ７１９において、頂点ＦＩＦＯに格納されている頂点座標から部分図形を描画する（ステップＳ７２０）。具体的には、図形描画装置６００は、頂点ＦＩＦＯ３２６に格納された部分図形の作成対象となる連続する２つの頂点座標と、その仮想頂点座標を描画部３３０へ出力することによって、描画部３３０により、ステンシルバッファ３６０のステンシルバッファ領域上に部分図形を描画する。より具体的には、たとえば、頂点ＦＩＦＯ３２６に格納されている頂点が、Ｃ0、Ｃ1、Ｃ1’である場合には、Ｃ0、Ｃ1、Ｃ1’を頂点に有する部分図形がステンシルバッファ領域１００上に描画されることとなる。
【０１３７】
ステップＳ７２０において、部分図形を描画したのち、すべての頂点座標が入力されたか否かを判定する（ステップＳ７２１）。具体的には、図形描画装置６００は、頂点種別判定部３０１によって末尾の頂点座標と判別された頂点座標が入力された場合に、すべての頂点座標が入力されたと判定する。
【０１３８】
ステップＳ７２１において、すべての頂点座標が入力されたと判定された場合（ステップＳ７２１：Ｙｅｓ）には、最後の部分図形を描画する（ステップＳ７２２）。最後の部分図形を描画したのち、一連の処理を終了する。具体的には、最後の部分図形は、終点座標生成部３２３によって生成された終点座標（すなわち、実効始点座標）と、クリッピング領域内に初めて含まれる頂点座標の前回頂点座標と、当該前回頂点座標の仮想頂点座標とに基づいて描画される。すべての頂点座標が入力されていないと判定された場合（ステップＳ７２１：Ｎｏ）には、ステップＳ７０１に戻り、同様の処理を繰り返す。
【０１３９】
以上に説明したように、実施の形態２の図形描画装置６００によれば、対象図形がクリッピング領域外の頂点座標を有する場合においても、各種実効頂点座標を算出し、実効頂点座標を用いることにより、実施の形態１と同様の部分図形を描画することができるため、実施の形態１と同様の効果を得ることができる。
【０１４０】
（実施の形態３）
つぎに、本発明の実施の形態３について説明する。実施の形態２において、実効始点座標は、クリッピング領域内に初めて含まれる頂点座標と、当該頂点座標における前回頂点座標とに基づいて算出された交点座標を実効始点座標とした。実施の形態３においては、実効始点座標がクリッピング領域に含まれる任意の座標である場合の一例について説明する。なお、上述した実施の形態１および実施の形態２と同一の構成については同一符号とし、説明を省略する。
【０１４１】
まず、この発明の実施の形態３にかかる図形描画装置６００による対象図形の描画の流れについて説明する。図８−１〜８−６は、この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その１）〜（その６）である。まず、図形描画装置６００には、頂点座標ストリームから頂点座標入力インターフェースを介して、頂点座標としてＶ0〜Ｖ2の頂点座標が入力されるが、いずれもクリッピング領域５００外である。たとえば、このとき、図形描画装置６００は、Ｖ0の前に実効始点座標として（Ｖ-1x，Ｖ-1y）を追加する。（Ｖ-1x，Ｖ-1y）は、クリッピング領域５００に含まれる任意の座標であり、実施の形態３においては、一例として、境界線５００ａ上であり、（Ｖ0x，Ｖ0y）と同じＹ座標を有する座標とする。
【０１４２】
（Ｖ-1x，Ｖ-1y）が追加されると、（Ｖ-1x，Ｖ-1y）を実効始点座標として、実施の形態２と同様の手順で処理をおこなう。すなわち、（Ｖ3x，Ｖ3y）によって、初めて頂点がクリッピング領域５００内となる。このとき、図形描画装置６００は、Ｖ2とＶ3とを結んだ線分と、境界線５００ａとの交点Ｃ0の交点座標（Ｃ0x，Ｃ0y）を算出する。（Ｃ0x，Ｃ0y）を算出したのち、実効中間頂点座標（Ｃ0x，Ｃ0y）を生成し、（Ｃ0x，Ｃ0y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、（Ｖ-1x，Ｖ-1y）および（Ｃ0x，Ｃ0y）に基づいて、仮想頂点Ｃ0’の仮想頂点座標（Ｖ-1x，Ｃ0y）を生成する。
【０１４３】
すなわち、仮想頂点座標（Ｖ-1x，Ｃ0y）は、実効始点座標（Ｖ-1x，Ｖ-1y）とＸ座標を同じくし、実効中間頂点座標（Ｃ0x，Ｃ0y）とＹ座標を同じくする座標である。図形描画装置６００は、仮想頂点座標（Ｖ-1x，Ｃ0y）を生成したのち、Ｖ3、Ｖ3’、Ｃ0’、Ｃ0を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図８−１）。
【０１４４】
つぎに、同様にして、図形描画装置６００に中間頂点座標（Ｖ4x，Ｖ4y）が入力される。ここで、（Ｖ4x，Ｖ4y）はクリッピング領域５００外の座標であるため、図形描画装置３００は、Ｖ3とＶ4とを結んだ線分と、境界線５００ａとの交点Ｃ1の交点座標（Ｃ1x，Ｃ1y）を算出する。（Ｃ1x，Ｃ1y）を算出したのち、実効中間頂点座標（Ｃ1x，Ｃ1y）を生成し、（Ｃ1x，Ｃ1y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｖ-1x，Ｖ-1y）および実効中間頂点座標（Ｃ1x，Ｃ1y）に基づいて、仮想頂点Ｃ1’の仮想頂点座標（Ｖ-1x，Ｃ1y）を生成する。
【０１４５】
すなわち、仮想頂点座標（Ｖ-1x，Ｃ1y）は、実効始点座標（Ｖ-1x，Ｖ-1y）とＸ座標を同じくし、実効中間頂点座標（Ｃ1x，Ｃ1y）とＹ座標を同じくする座標である。図形描画装置６００は、仮想頂点座標（Ｖ-1x，Ｃ1y）を生成したのち、Ｖ3、Ｖ3’、Ｃ1’、Ｃ1を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域８Ａにおいては、偶数個の図形が重複するため、図形が消去される（図８−２）。
【０１４６】
つぎに、同様にして、図形描画装置６００に中間頂点座標（Ｖ5x，Ｖ5y）が入力される。ここで、（Ｖ5x，Ｖ5y）はクリッピング領域５００外の座標であるため、図形描画装置６００は、Ｖ4とＶ5とを結んだ線分と、境界線５００ａとの交点Ｃ2およびＣ3の交点座標（Ｃ2x，Ｃ2y）、（Ｃ3x，Ｃ3y）をそれぞれ算出する。（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）を算出したのち、実効中間頂点座標（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）を生成し、（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、（Ｖ-1x，Ｖ-1y）および（Ｃ2x，Ｃ2y）および（Ｃ3x，Ｃ3y）に基づいて、仮想頂点Ｃ2’およびＣ3’の仮想頂点座標（Ｖ-1x，Ｃ2y）および（Ｖ-1x，Ｃ3y）をそれぞれ生成する。
【０１４７】
すなわち、仮想頂点座標（Ｖ-1x，Ｃ2y）は実効始点座標（Ｖ-1x，Ｖ-1y）とＸ座標を同じくし実効中間頂点座標（Ｃ2x，Ｃ2y）とＹ座標を同じくする座標であり、仮想頂点座標（Ｖ-1x，Ｃ3y）は実効始点座標（Ｖ-1x，Ｖ-1y）とＸ座標を同じくし実効中間頂点座標（Ｃ3x，Ｃ3y）とＹ座標を同じくする座標である。図形描画装置６００は、仮想頂点座標（Ｖ-1x，Ｃ2y）および（Ｖ-1x，Ｃ3y）を生成したのち、Ｃ2、Ｃ2’、Ｃ3’、Ｃ3を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域８Ｂにおいては、偶数個の図形が重複するため、図形が消去される（図８−３）。
【０１４８】
つぎに、同様にして、図形描画装置６００に中間頂点座標（Ｖ6x，Ｖ6y）が入力される。ここで、（Ｖ6x，Ｖ6y）はクリッピング領域５００内の座標であるため、頂点座標がクリッピング領域５００外からクリッピング領域５００内に流入する。図形描画装置６００は、Ｖ5とＶ6とを結んだ線分と、境界線５００ａとの交点Ｃ4の交点座標（Ｃ4x，Ｃ4y）を算出する。（Ｃ4x，Ｃ4y）を算出したのち、実効中間頂点座標（Ｃ4x，Ｃ4y）を生成し、（Ｃ4x，Ｃ4y）のＹ座標をＹ座標バッファ３２５に記憶する。そして、実効始点座標（Ｖ-1x，Ｖ-1y）および実効中間頂点座標（Ｃ4x，Ｃ4y）に基づいて、仮想頂点Ｃ4’の仮想頂点座標（Ｖ-1x，Ｃ4y）を生成する。
【０１４９】
すなわち、仮想頂点座標（Ｖ-1x，Ｃ4y）は、実効始点座標（Ｖ-1x，Ｖ-1y）とＸ座標を同じくし、実効中間頂点座標（Ｃ4x，Ｃ4y）とＹ座標を同じくする座標である。図形描画装置６００は、仮想頂点座標（Ｖ-1x，Ｃ4y）を生成したのち、Ｃ3、Ｃ3’、Ｃ4’ 、Ｃ4を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図８−４）。
【０１５０】
つぎに、実効始点座標（Ｖ-1x，Ｖ-1y）および中間頂点座標（Ｖ6x，Ｖ6y）に基づいて、仮想頂点Ｖ6’の仮想頂点座標（Ｖ-1x，Ｖ6y）を生成する。すなわち、仮想頂点座標（Ｖ-1x，Ｖ6y）は、実効始点座標（Ｖ-1x，Ｖ-1y）とＸ座標を同じくし、中間頂点座標（Ｖ6x，Ｖ6y）とＹ座標を同じくする座標である。図形描画装置６００は、仮想頂点座標（Ｖ-1x，Ｖ6y）を生成したのち、Ｃ4、Ｃ4’、Ｖ6’、Ｖ6を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する（図８−５）。
【０１５１】
つぎに、図形描画装置６００は、最後の頂点座標であるＶ6の処理が終わった場合、終点座標として、再び、Ｖ0を入力する。図形描画装置６００は、Ｖ0が入力されると、終点座標（Ｖ0x，Ｖ0y）と中間頂点座標（Ｖ6x，Ｖ6y）とを結んだ線分と境界線５００ａとの交点Ｃ5の交点座標（Ｃ5x，Ｃ5y）を算出する。（Ｃ5x，Ｃ5y）が算出されると、図形描画装置６００は、実効中間頂点座標（Ｃ5x，Ｃ5y）を生成し、Ｃ5、Ｖ6’、Ｖ6を頂点に有する部分図形を排他的論理和演算に基づいてステンシルバッファ領域１００上に描画する。なお、領域８Ｃにおいては、偶数個の図形が重複するため、図形が消去される（図８−６）。
【０１５２】
以上に説明したようにして、入力された頂点座標から、当該頂点座標を頂点として有する対象図形のうちのクリッピング領域５００内に含まれた領域がステンシルバッファ領域１００上に描画される。
【０１５３】
実施の形態３においては、まず、最初の処理として、クリッピング領域５００内の任意の座標が取得され、取得された任意の座標を先頭の頂点座標として、図形描画装置６００に入力される点だけが実施の形態２と異なる点である。すなわち、クリッピング領域５００内の任意の座標が取得され、取得された任意の座標を先頭の頂点座標として、図形描画装置６００に入力され、以下は、実施の形態２と同一の処理となるために、処理手順の説明は省略する。
【０１５４】
取得される任意の座標は、アプリケーションにより決定され、決定された座標を取得することとしてもよいし、図形描画装置６００自身により描画がもっとも手順が少なくなると推定した座標を取得することとしてもよい。
【０１５５】
以上に説明したように、実施の形態３の図形描画装置６００によれば、実施の形態２と同様に、入力された頂点座標から、実効頂点座標を生成するとともに、当該実効頂点座標に対する仮想頂点Ｖ1’〜Ｖ6’を生成することによって、Ｖ0〜Ｖ6を頂点として有する対象図形のうちのクリッピング領域５００内に含まれた領域が描画されることとなる。
【０１５６】
また、実施の形態３の図形描画装置６００によれば、実効始点座標としてクリッピング領域５００内の最適な座標を設定することにより、対象図形を構築する部分図形の個数を減らすことができ、実施の形態２に比べ、より高速に対象図形を描画することができる。
【０１５７】
この発明によれば、連続した２つの頂点および当該頂点座標に対して生成された仮想頂点座標を有する部分図形によって対象図形を構築するため、描画の際に関与する走査線を連続する２つの頂点座標間にある走査線だけに抑えることができるため、ＶＲＡＭへのランダムアクセスを減らし、描画速度を向上させることができる。
【０１５８】
なお、本実施の形態で説明した図形描画方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
【産業上の利用可能性】
【０１５９】
以上のように、この発明にかかる図形描画装置、図形描画方法、図形描画プログラムおよび該プログラムを記録した記録媒体は、コンピュータグラフィックスなどにおいて図形を描画することに有用である。
【図面の簡単な説明】
【０１６０】
【図１−１】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その１）である。
【図１−２】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その２）である。
【図１−３】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その３）である。
【図１−４】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その４）である。
【図１−５】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その５）である。
【図１−６】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その６）である。
【図１−７】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その７）である。
【図１−８】この発明の実施の形態１にかかる図形描画装置による対象図形の描画の流れを示す説明図（その８）である。
【図２】この発明の実施の形態１にかかるコンピュータ装置のハードウェア構成を示す説明図である。
【図３】この発明の実施の形態１にかかる図形描画装置の機能的構成を示すブロック図である。
【図４】この発明の実施の形態１にかかる図形描画装置の処理手順を示すフローチャートである。
【図５−１】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その１）である。
【図５−２】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その２）である。
【図５−３】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その３）である。
【図５−４】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その４）である。
【図５−５】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その５）である。
【図５−６】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その６）である。
【図５−７】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その７）である。
【図５−８】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その８）である。
【図５−９】この発明の実施の形態２にかかる図形描画装置による対象図形の描画の流れを示す説明図（その９）である。
【図６】この発明のこの発明の実施の形態２にかかる図形描画装置の機能的構成を示すブロック図である。
【図７】この発明の実施の形態２にかかる図形描画装置の処理手順を示すフローチャートである。
【図８−１】この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その１）である。
【図８−２】この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その２）である。
【図８−３】この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その３）である。
【図８−４】この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その４）である。
【図８−５】この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その５）である。
【図８−６】この発明の実施の形態３にかかる図形描画装置による対象図形の描画の流れを示す説明図（その６）である。
【符号の説明】
【０１６１】
２００  コンピュータ装置
３００  図形描画装置
３０１  頂点種別判定部
３０２  先頭座標バッファ
３０３  先頭座標再利用部
３０４  頂点座標バッファ
３１０  生成部
３１１  仮想頂点座標生成部
３２０  設定部
３２１  始点座標生成部
３２２  中間頂点座標生成部
３２３  終点座標生成部
３２４  Ｘ座標バッファ
３２５  Ｙ座標バッファ
３２６  頂点ＦＩＦＯ
３３０  描画部
３３１  図形描画部
３３２  画素論理演算部
３４０  頂点座標ストリーム
３５０  頂点座標入力インターフェース
３６０  ステンシルバッファ
６００  図形描画装置
６１０  クリッピング処理部
６１１  クリップ判定部
６１２  判定結果バッファ
６１３  交点座標算出部
【図１−１】
0005034806.tif 000002
【図１−２】
0005034806.tif 000003
【図１−３】
0005034806.tif 000004
【図１−４】
0005034806.tif 000005
【図１−５】
0005034806.tif 000006
【図１−６】
0005034806.tif 000007
【図１−７】
0005034806.tif 000008
【図１−８】
0005034806.tif 000009
【図２】
0005034806.tif 000010
【図３】
0005034806.tif 000011
【図４】
0005034806.tif 000012
【図５−１】
0005034806.tif 000013
【図５−２】
0005034806.tif 000014
【図５−３】
0005034806.tif 000015
【図５−４】
0005034806.tif 000016
【図５−５】
0005034806.tif 000017
【図５−６】
0005034806.tif 000018
【図５−７】
0005034806.tif 000019
【図５−８】
0005034806.tif 000020
【図５−９】
0005034806.tif 000021
【図６】
0005034806.tif 000022
【図７】
0005034806.tif 000023
【図８−１】
0005034806.tif 000024
【図８−２】
0005034806.tif 000025
【図８−３】
0005034806.tif 000026
【図８−４】
0005034806.tif 000027
【図８−５】
0005034806.tif 000028
【図８−６】
0005034806.tif 000029