(57)【要約】本発明は図形・画像処理技術分野に関し、特に、複雑なパスを簡素化する技術に関するものである。本発明は、任意の複雑なパスを該パスによって記述された領域における簡単なパスへ簡素化させるための、複雑なパスの簡素化方法及び装置を提供する。複雑なパスの簡素化方法は、複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析するステップと、前記ベクトルリンクリストにおける前記ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割するステップと、前記ベクトルセグメントの全体から、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをその位置に基づいて連結して簡単なパスを得るステップとを含む。本発明の複雑なパスの簡素化方法では、複雑なパスのベクトルレベル演算が実現出来るように、ノードスキャニングによって、ベクトルレベルにおいて複雑なパスを該パスによって記述された領域における最も簡単なパスに簡素化させることを実現する。
2012503809.tif 000002
【特許請求の範囲】
【請求項１】
複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析するステップと、
前記ベクトルリンクリストにおける前記ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割するステップと、
前記ベクトルセグメントの全体から、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをそれぞれの位置に基づいて連結して簡単なパスを得るステップと
を含むことを特徴とする複雑なパスの簡素化方法。
【請求項２】
前記単調性を有するベクトルは、直線セグメントベクトル、及び/または、単調性を有する曲線セグメントベクトルを含むことを特徴とする請求項１に記載の複雑なパスの簡素化方法。
【請求項３】
前記ベクトルリンクリストにおける前記ベクトルのそれぞれについて他のベクトルとの交点を決定するステップを更に含んでおり、
前記決定するステップは、
前記ベクトルリンクリストにおける各ベクトルの端点に関する位置情報を得るステップと、
前記位置情報に基づいて前記端点の全てをソーティングし、順番に並ぶベクトルの端点のリストを得るステップと、
各ベクトルについて、前記ベクトルの端点のリストに基づいて、交差するベクトルを決定するとともに、交差する交点を求めるステップと
を含むことを特徴とする請求項１または請求項２に記載の複雑なパスの簡素化方法。
【請求項４】
前記位置情報は、直交する二つの座標方向における前記端点の座標値と、前記端点のベクトルにおける相対位置とを含み、
前記位置情報に基づいて前記端点の全てをソーティングするステップは、
何れかの座標方向における座標値に基づいて前記端点の全てをソーティングし、前記座標方向において同一の座標値を持つ端点が存在する場合、同一の座標値を持つ前記端点を、それぞれのベクトルにおける相対位置に基づいてソーティングするステップを含むことを特徴とする請求項３に記載の複雑なパスの簡素化方法。
【請求項５】
前記位置情報に基づいて前記端点の全てをソーティングするステップは、更に、
同一の座標値を持つ前記端点のベクトルにおける相対位置が同一である場合、座標値が同一であり、且つ相対位置が同一である各端点を、属するベクトルが現れる順に従ってソーティングするステップを含むことを特徴とする請求項４に記載の複雑なパスの簡素化方法。
【請求項６】
前記ベクトルセグメントの全体から、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出するステップは、
何れかの座標方向における座標値に基づいて全ての端点に対して順番付けを行い、該座標方向において同一の座標値を持つ端点が存在する場合、同一の座標値を持つ前記端点に対して、該座標方向と直交する座標方向における座標値に基づいて順番付けを行うステップと、
順番に従って、各端点に連結されるベクトルセグメントから前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出するステップと
を含むことを特徴とする請求項５に記載の複雑なパスの簡素化方法。
【請求項７】
何れかの座標方向における座標値に基づいて全ての端点に対して順番付けを行うステップは、
X軸方向における座標値が小さい順に、全ての端点に対して順番付けを行うステップを含むことを特徴とする請求項６に記載の複雑なパスの簡素化方法。
【請求項８】
各端点に連結される右側のベクトルセグメントから、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出することを特徴とする請求項７に記載の複雑なパスの簡素化方法。
【請求項９】
前記記述された領域の境界に位置するベクトルセグメントに対して判断を行うステップを更に含んでおり、
前記判断を行うステップは、
前記ベクトルセグメントによって分割された両側領域において、一方の領域が複雑なパスにより記述された領域の内側領域であり、且つ他方の領域が複雑なパスにより記述された領域の外側領域であるか否かを判断し、そうであると判断された場合に、前記ベクトルセグメントが前記複雑なパスにより記述された領域の境界に位置すると判定するステップを含むことを特徴とする請求項６に記載の複雑なパスの簡素化方法。
【請求項１０】
複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析するための解析手段と、
前記ベクトルリンクリストにおける前記ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割するための分割手段と、
全てのベクトルセグメントから、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをそれぞれの位置に基づいて連結して簡単なパスを得るための処理手段と
を含むことを特徴とする複雑なパスの簡素化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は図形・画像処理技術に関し、特に、複雑なパスを簡素化する技術に関するものである。
【背景技術】
【０００２】
図形・画像処理技術分野において、いわゆるパス(Path)とは、連結した直線セグメントベクトルや曲線セグメントベクトルから形成されたベクトルリンクリストである。ベクトルリンクリストが首尾連結したパスをクローズパスと称する。このようなクローズパスは、通常、特定のエンティティ（entity）と呼ばれる特定領域を記述するために用いられる。例えば、あるエンティティをある色で塗りつぶす場合、クローズパスで当該エンティティを記述し、このクローズパスは塗りつぶすべき領域の境界となる。または、あるエンティティを切り出す場合、同様にクローズパスで当該エンティティを記述し、このクローズパスは切り出すべき領域の境界となる。ところが、従来の技術では、パス内の各ベクトルの間の位置関係を考慮せず、単にベクトルが現れる順に基づいてパスを記述するため、得たパスは、通常、自己交差が存在する。自己交差が存在するクローズパスは、それにより記述された領域の最も簡単なパス（simple path）ではなく、余分なベクトルの記述もある。即ち、当該クローズパスを構成するベクトルの一部は、上記ベクトルにより記述された領域の境界に位置するのではなく、上記ベクトルにより記述された領域の内部に位置する。自己交差が存在するクローズパスを複雑なパスと称する。図１は、複雑なパスを示す。図１に示す複雑なパスは、首尾連結した五つの直線セグメントベクトルT0、T1、T2、T3、T4によって形成される。複雑なパスはベクトルレベルのパス演算に不便をもたらすことがある。それに対して、パスを構成するベクトルの全てがいずれも記述した領域の境界に位置するようなクローズパスを簡単なパスと称する。簡単なパスはそれにより記述された領域において最も簡単なパスである。
【０００３】
従来の図形・画像処理技術において、ラスタライゼーションビットマップ処理を採用して複雑なパスにより記述された領域を決定する。例えば、切り出すべき領域を記述する二つのパス（第一パス、第二パス）が前後にして重なり合ったクローズパスが複雑なパスとなる。この複雑なパスにより記述された切り出すべき領域は、前記二つのパスによってそれぞれ記述される領域の積集合である。以下のような方式で積集合を決定する。まず、第一パスに対して図形学上の相関関係アルゴリズムを採用して白黒ビットマップを作成する。ここで、黒い点（black point）は、当該点が記述した領域内にあることを表わし、白い点（white point）は、当該点が記述した領域外にあることを表わす。同様に、第二パスに対して白黒ビットマップを作成する。そして、この二つの白黒ビッドマップに対して積集合を求め、同一の位置における点が黒の場合にのみ、当該点は黒い点と確認される。このようにして、最終的に切り出すべき領域を決定する。勿論、必要に応じて二つの白黒ビットマップに対して和集合を求めることによって最終的に切り出すべき領域を決定してもいい。
【０００４】
しかし、図形・画像処理過程において、複雑なパスに対して処理を行った後でも、ラスタライズされたビットマップではなく、ベクトルによって特定の領域を記述することが要求される場合がある。例えば、トラッププロセス過程において、PDFファイルにおいて表示すべき対象が各エンティティによって記述され、また、トラップ効果を奏するように二つのエンティティの共通部分を特定の色で塗りつぶす必要があり、この共通部分も同様にPDFファイルにおけるエンティティ方式で記述する必要がある。そこで、前記共通部分に対してベクトルによる記述が実現されるように、これらのエンティティを記述するクローズパスに対してベクトルレベルでの演算を実行する必要がある。このベクトルレベルでの演算は計算幾何学上の相関アルゴリズムを用いて行うことが出来るが、ベクトルレベルでの演算が行われるクローズパスが簡単なパスであることはその前提条件である。それは、自己交差する複雑なパスは処理できないためである。しかしながら、実際の図形・画像処理過程において、エンティティを記述するクローズパスはその自由度が非常に高く、通常、複雑なパスとなる。従って、任意の複雑なパスを、それにより記述される領域における簡単なパスに簡素化することのできる解決案が要請されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】中華人民共和国１５４９２０７公開公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、任意の複雑なパスをこのパスにより記述された領域における簡単なパスへ簡素化することのできる複雑なパスの簡素化方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明によれば、複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析するステップと、前記ベクトルリンクリストにおける前記ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割するステップと、前記ベクトルセグメントの全体から、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをそれぞれの位置に基づいて連結して簡単なパスを得るステップとを含むことを特徴とする複雑なパスの簡素化方法を提供する。
【０００８】
本発明によれば、複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析するための解析手段と、前記ベクトルリンクリストにおける前記ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割するための分割手段と、ベクトルセグメントの全体から、前記複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをその位置に基づいて連結して簡単なパスを得るための処理手段とを含むことを特徴とする複雑なパスの簡素化装置を提供する。
【０００９】
本発明が提供する複雑なパスの簡素化方法及び装置において、複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析し、ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割し、ベクトルセグメントの全体から、複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、連結して簡単なパスを得る。本発明では、ノードスキャニングによって、ベクトルレベルにおいて複雑なパスをこのパスにより記述された領域における最も簡単なパスに簡素化させることで、複雑なパスに関するベクトルレベルでの演算ができるようになる。
【図面の簡単な説明】
【００１０】
【図１】従来の技術で複雑なパスを示す図である。
【図２】本発明に係る複雑なパスの簡素化方法を示すフローチャートである。
【図３】本発明の実施例において複雑なパスを簡素化する具体的な処理を示すフローチャートである。
【図４】本発明の実施例において、図１に示す複雑なパスにおける各ベクトルを交点に基づいてベクトルセグメントに分割する処理を示す図である。
【図５】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図６】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図７】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図８】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図９】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図１０】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図１１】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図１２】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図１３】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図１４】本発明の実施例において図４に示す各端点に対して順番に従って処理する形態を示す図である。
【図１５】本発明に係る複雑なパスの簡素化装置を示すブロック図である。
【発明を実施するための最良の形態】
【００１１】
従来の技術に存在する問題点に鑑み、本発明の実施例において、ノードスキャニングによって複雑なパスを記述された領域における最も簡単なパスに簡素化することで、複雑なパスに関するベクトルレベルでの演算ができる複雑なパスの簡素化方法を提供する。図２に示すように、本発明の実施例に係る複雑なパスの簡素化方法は以下のステップを含む。
Ｓ２０１：複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析する。
Ｓ２０２：ベクトルリンクリストにおけるベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割する。ここで、分割して得られたベクトルセグメントはそれぞれ交差せず、端点に連結される。
Ｓ２０３：ベクトルセグメントの全体において、当該複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをその位置に基づいて連結して簡単なパスを得る。
【００１２】
以下、本発明の実施例に係る複雑なパスの簡素化方法について詳細に説明する。図３に示すように、複雑なパスを簡素化する処理は具体的に以下のステップに沿いながら行われる。
【００１３】
Ｓ３０１：複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析する。
ここで、直線セグメントベクトルは単調性を具備するベクトルであるが、曲線セグメントベクトルは必ずしも単調性を具備しない。単調性を具備しない曲線セグメントベクトルは極値点及び／又は変曲点を具備するものである。ベクトルリンクリストにおける曲線セグメントベクトルに単調性があるように、つまり、変曲点がなく、且つ、二つの端点がベクトルの極値点となるように、単調性を具備しない曲線セグメントベクトルに対して極値点および変曲点で分割を行う必要がある。
【００１４】
Ｓ３０２：ベクトルリンクリストにおける各ベクトルの端点に関する位置情報を得る。ここで、端点の位置情報は、具体的に直交する二つの座標方向、つまりX軸方向及びY軸方向における端点の座標値と、端点のベクトルにおける相対位置とを含む。
ベクトルの二つの端点のうち、X軸方向における座標値が小さい方の端点を左端点とし、X軸方向における座標値が大きい方の端点を右端点とする。二つの端点がX軸方向において同じ座標値を持つ場合、Y軸方向における座標値が大きい方の端点を左端点としてもよい。端点が左端点であるかそれとも右端点であるかは、当該端点のベクトルにおける相対位置を特定することが出来る。
【００１５】
Ｓ３０３：位置情報に基づいて端点の全てをソーティングして、順番に並ぶベクトル端点のリストを得る。
全ての端点を、X軸方向における座標値によってソーティングすることができる。通常は座標値の小さい順にソーティングするが、X軸方向において同じ座標値を持つ各端点に対しては、左端点→右端点という順にソーティングする。
さらに、X軸方向において同じ座標値を持つと共に左端点か右端点となる各端点に対しては、属するベクトルが現れる順に従ってソーティングする。
【００１６】
Ｓ３０４：各ベクトルについて、ベクトル端点のリストに基づいて交差するベクトルを決定するとともに、交差する交点を求める。
ベクトル端点のリストにおいて、あるベクトルの左端点が他のベクトルの左端点と右端点との間に位置すると、当該二つのベクトルはX軸方向において重なり合うとともに、Y軸方向においても重なり合う場合、当該二つのベクトルが交差すると確認される。交差すると確認された全てのベクトルに対して交差する交点を求める。交点の計算方法は、具体的には、必要に応じて、直線セグメントベクトルと直線セグメントベクトルとの交点を求める計算方法、又は直線セグメントベクトルと曲線セグメントベクトルとの交点を求める計算方法、又は曲線セグメントベクトルと曲線セグメントベクトルとの交点を求める計算方法を採用することができる。
【００１７】
Ｓ３０５：ベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割する。
交点に基づいて、直線セグメントベクトルを複数の直線セグメントベクトルセグメントに分割し、曲線セグメントベクトルを複数の曲線セグメントベクトルセグメントに分割することができる。あるベクトルにN個の交点が存在する場合、交点に基づいて当該ベクトルを（N+1）個のベクトルセグメントに分割することができる。ベクトルセグメント毎に二つの端点だけが含まれるが、極端な場合として、交点が無い（０個の交点が存在する場合）ベクトルは、交点に基づく分割によって得たベクトルセグメントが当該ベクトル自身となる。分割して得られた各ベクトルセグメントは複雑なパスに関する最も基本的なベクトル記述を構成する。各ベクトルセグメントは端点に連結され、ベクトルセグメント間には交点が存在しない。
【００１８】
Ｓ３０６：何れかの座標方向（X軸方向、又はY軸方向）における座標値に基づいて、全ての端点に対して順番付けを行う。当該座標方向において同じ座標値を持つ端点に対しては、それと直交する座標方向（Y軸方向、又はX軸方向）における座標値に基づいて順番付けを行う。
X軸方向を例として説明すると、全ての端点に対して、X軸方向における座標値に基づいて順番付けを行うことが出来る。X軸方向において同じ座標値を持つ端点に対しては、さらに、Y軸方向における座標値に基づいて順番付けを行う。ここで、座標値の大きい順に順番付けを行ってもよいし、座標値の小さい順に順番付けを行ってもよい。
【００１９】
Ｓ３０７：順番に従って、各端点に連結されるベクトルセグメントから複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、境界ベクトルセグメントと称することが出来る。境界ベクトルセグメントの判定方法は具体的に以下のように説明する。
ベクトルセグメントによって分割された両側領域において、一方の領域が複雑なパスにより記述された領域の内側領域であり、且つ他方の領域が複雑なパスにより記述された領域の外側領域であるか否かを判断し、そうであると判断された場合に、当該ベクトルセグメントが複雑なパスにより記述された領域の境界に位置すると判定し、そうでないと判断された場合に、当該ベクトルセグメントは境界ベクトルセグメントではないと判定する。
上記の判定方法は塗りつぶしルール（fill-rule）に基づいて実行されるものである。現在の端点に関係するベクトルセグメントを三つのタイプに分けることが出来る。X軸方向における座標値に基づいて端点に対して順番付けを行う場合、X軸方向上において同じ座標値を持つ端点を同じ列における端点と称することができる。前記三つのタイプのベクトルセグメントは、ベクトルセグメントの終点が現在の列の端点となるタイプ（ａ）と、ベクトルセグメントの始点が現在の列の端点となるタイプ（ｂ）と、ベクトルセグメントの始点と終点がいずれも現在の列に位置しないタイプ（ｃ）とを含む。端点毎に境界ベクトルセグメントを判定する場合、端点に関係する三つのタイプのベクトルセグメントがその準拠となる。
【００２０】
Ｓ３０８：抽出された各ベクトルセグメントを、位置に基づいて連結して簡単なパスを得る。
抽出された各ベクトルセグメントを、その位置に基づいて時計回りまたは反時計周りに連結させることによって、最終的に複雑なパスにより記述された領域における簡単なパスを得ることができる。
【００２１】
本発明の実施例に係る複雑なパスの簡素化方法では、ベクトルレベルにおいて複雑なパスを、それにより記述された領域における最も簡単なパスに簡素化することができると共に、ソーティングされたベクトル端点のリストに基づいて二つのベクトルが交差するか否かを判断し、ベクトルが交差することが確認されると、その交点を求める。それにより、何れかの二つのベクトルが交差しているか否かを問わずに一概に交差演算（intersection Operation）を実行する弊害を無くして効率を向上することができる。
【００２２】
以下は、具体例を用いて本発明に係る技術案を詳しく説明する。図１に示す複雑なパスの簡素化を例とする。本発明に係る複雑なパスの簡素化処理の流れとしては、具体的に以下のような操作を順次に行う。
【００２３】
複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析する。直線セグメントベクトルはいずれも単調性を具備するため、解析して得られたベクトルリンクリストが複雑なパスそれ自身となる。
【００２４】
ベクトルリンクリストにおけるベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割する。図４に示すように、ベクトルリンクリストにおける各ベクトル間の交点はP0、P1、P2、P3、P4であり、これらの交点に基づいて各ベクトルをベクトルセグメントに分割する。すなわち、
T0を、他のベクトルとの交点P0、P1に基づいて、ベクトルセグメントL0、L1及びL2に分割する。
T1を、他のベクトルとの交点P2、P3に基づいて、ベクトルセグメントL3、L4及びL5に分割する。
T2を、他のベクトルとの交点P4、P0に基づいて、ベクトルセグメントL6、L7及びL8に分割する。
T3を、他のベクトルとの交点P1、P2に基づいて、ベクトルセグメントL9、L10及びL11に分割する。
T4を、他のベクトルとの交点P3、P4に基づいて、ベクトルセグメントL12、L13及びL14に分割する。
そして、各端点をX軸方向における座標値の小さい順に０〜９と順番付けを行う。
【００２５】
順番に従って、各端点に連結される複数のベクトルセグメントから境界ベクトルセグメントを順次に抽出する。各端点の処理過程において境界ベクトルセグメントリンクリストが作成される。当該リンクリストは上サブリンクリストUpListと下サブリンクリストDownListを含む。そして、以下のように定義づけられる。
OldEdgeは、現在の端点に連結される旧境界ベクトルセグメントであり、つまり、境界ベクトルセグメントの終点が現在の端点となる。
NewEdgeは、現在の端点に連結される新境界ベクトルセグメントであり、つまり、境界ベクトルセグメントの始点が現在の端点となる。
【００２６】
二つの新境界ベクトルセグメントが連結される場合、上サブリンクリストと下サブリンクリストがそれぞれ前記新境界ベクトルセグメントに向かう新境界ベクトルセグメントリンクリストが作成される。一つの新境界ベクトルセグメントと一つの旧境界ベクトルセグメントが連結される場合、旧境界ベクトルセグメントが境界ベクトルセグメントリンクリストに存在するため、新境界ベクトルセグメントを旧境界ベクトルセグメントの後に追加する。二つの旧境界ベクトルセグメントが連結される場合、二つの旧境界ベクトルセグメントがそれぞれ異なった境界ベクトルセグメントリンクリストに属すれば当該二つのリンクリストをマージさせるが、二つの旧境界ベクトルセグメントが同一の境界ベクトルセグメントリンクリストに属すれば当該リンクリストをクローズさせる。連結時に二つの境界ベクトルセグメントの現在の端点位置における端点が重なり合わない場合は、当該二つの端点を連結するための直交する境界ベクトルセグメントを作成する。簡単なパスを作成する際に、反時計回りのベクトル記述が必要な場合、境界ベクトルセグメントリンクリストにおける下サブリンクリストの首部→下サブリンクリストの尾部→上サブリンクリストの尾部→上サブリンクリストの首部というふうに首尾連結を行う。時計回りのベクトル記述が必要な場合は、反対の順番となるため、詳しい説明は省略する。
【００２７】
以下、図面を参照しつつ順番に従い各端点の処理を順次に説明する。図５を参照すると、端点0に連結される各ベクトルセグメントにおいて境界ベクトルセグメントL5、L6を抽出し、OldEdgeはヌルであり、NewEdgeはL5とL6である場合、新境界ベクトルセグメントリンクリストPathEdgeList0が作成され、その上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList0->UpList：L6
PathEdgeList0->DownList：L5
【００２８】
図６を参照すると、端点１に連結される各ベクトルセグメントから境界ベクトルセグメントL0、L14を抽出し、OldEdgeはヌルであり、NewEdgeはL0とL14である場合、新境界ベクトルセグメントリンクリストPathEdgeList1が作成され、その上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList1->UpList：L0
PathEdgeList1->DownList：L14
【００２９】
図７を参照すると、端点２に連結される各ベクトルセグメントから境界ベクトルセグメントL14、L6を抽出し、OldEdgeはL14とL6であり、NewEdgeはヌルである場合、L14とL6が属する境界ベクトルセグメントリンクリストをマージし、マージされた境界ベクトルセグメントリンクリストの上サブリンクリストと下サブリンクリストはそれぞれ以下のようである。
PathEdgeList0->UpList：L6->L14->L0
PathEdgeList0->DownList：L5
【００３０】
図８を参照すると、端点３に連結される各ベクトルセグメントにおいて境界ベクトルセグメントL0、L8を抽出し、OldEdgeはL0であり、NewEdgeはL8である場合、L8をL0の後に追加し、処理された境界ベクトルセグメントリンクリストの上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList0->UpList：L6->L14->L0->L8
PathEdgeList0->DownList：L5
【００３１】
図９を参照すると、端点４に連結される各ベクトルセグメントから境界ベクトルセグメントL5、L12を抽出し、OldEdgeはL5であり、NewEdgeはL12である場合、L12をL5の後に追加し、処理された境界ベクトルセグメントリンクリストの上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList0->UpList：L6->L14->L0->L8
PathEdgeList0->DownList：L5->L12
【００３２】
図１０を参照すると、端点５に連結される各ベクトルセグメントから境界ベクトルセグメントL8、L9を抽出し、OldEdgeはL8であり、NewEdgeはL9である場合、L9をL8の後に追加し、処理された境界ベクトルセグメントリンクリストの上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList0->UpList：L6->L14->L0->L8->L9
PathEdgeList0->DownList：L5->L12
【００３３】
図１１を参照すると、端点６に連結される各ベクトルセグメントにおいて境界ベクトルセグメントL9、L2を抽出し、OldEdgeはL9であり、NewEdgeはL2である場合、L2をL9の後に追加し、処理された境界ベクトルセグメントリンクリストの上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList0->UpList：L6->L14->L0->L8->L9->L2
PathEdgeList0->DownList：L5->L12
【００３４】
図１２を参照すると、端点７に連結される各ベクトルセグメントから境界ベクトルセグメントL3、L11を抽出し、OldEdgeはヌルであり、NewEdgeはL3とL11である場合、新境界ベクトルセグメントリンクリストPathEdgeList1が作成され、その上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList1->UpList：L3
PathEdgeList1->DownList：L11
【００３５】
図１３を参照すると、端点８に連結される各ベクトルセグメントにおいて境界ベクトルセグメントL11、L12を抽出し、OldEdgeはL11とL12であり、NewEdgeはヌルである場合、L11とL12が属する境界ベクトルセグメントリンクリストをマージし、マージされた境界ベクトルセグメントリンクリストの上サブリンクリストと下サブリンクリストとはそれぞれ以下のようである。
PathEdgeList0->UpList：L6->L14->L0->L8->L9->L2
PathEdgeList0->DownList：L5->L12->L11->L3
【００３６】
図１４を参照すると、端点９に連結される各ベクトルセグメントから境界ベクトルセグメントL2、L3を抽出し、OldEdgeはL2とL3であり、NewEdgeはヌルである場合、L2とL3が属する境界ベクトルセグメントリンクリストをマージする。同一の境界ベクトルセグメントリンクリストに属するため、当該リンクリストをクローズする。反時計回りのベクトル記述が必要な場合、上サブリンクリストを下サブリンクリストにマージし、最終的に得られた簡単なパスは以下のようである。
L5->L12->L11->L3->L2->L9->L8->L0->L14->L6
【００３７】
時計回りのベクトル記述が必要な場合、下サブリンクリストを上サブリンクリストにマージし、最終的に得られた簡単なパスは以下のようである。
L6->L14->L0->L8->L9->L2->L3->L11->L12->L5
【００３８】
望ましくは、X軸方向における座標値の小さい順に各端点に対して順番付けを行う場合、各端点に連結される右側のベクトルセグメントのみから境界ベクトルセグメントを抽出して、さらに簡素化効率を向上させることが出来る。
【００３９】
なお、本発明は、以上と同一の技術構想に基づいて図１５に示す複雑なパスの簡素化装置を提供する。この簡素化装置は、複雑なパスを、連結した単調性を有するベクトルからなるベクトルリンクリストに解析するための解析手段151と、ベクトルリンクリストにおけるベクトルのそれぞれを、他のベクトルとの交点に基づいてベクトルセグメントに分割するための分割手段152と、全てのベクトルセグメントから、複雑なパスにより記述された領域の境界に位置するベクトルセグメントを抽出し、抽出された各ベクトルセグメントをその位置に基づいて連結して簡単なパスを得るための処理手段153とを含むものである。
【００４０】
発明の詳細な説明の項においてなされた具体的な実施形態または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と次に記載する特許請求の範囲内で、いろいろと変更して実施することができるものである。
【図１】
2012503809.tif 000003
【図２】
2012503809.tif 000004
【図３】
2012503809.tif 000005
【図４】
2012503809.tif 000006
【図５】
2012503809.tif 000007
【図６】
2012503809.tif 000008
【図７】
2012503809.tif 000009
【図８】
2012503809.tif 000010
【図９】
2012503809.tif 000011
【図１０】
2012503809.tif 000012
【図１１】
2012503809.tif 000013
【図１２】
2012503809.tif 000014
【図１３】
2012503809.tif 000015
【図１４】
2012503809.tif 000016
【図１５】
2012503809.tif 000017
【国際調査報告】
2012503809.tif 000018
2012503809.tif 000019
2012503809.tif 000020
2012503809.tif 000021