説明

ポリライン生成方法及びポリライン生成システム

【課題】複数線から1本のポリラインを生成するポリライン生成方法及びポリライン生成システムを提供する。
【解決手段】ポリライン生成方法は、二次元平面上の複数線の入力を受け付け、受け付けた複数線の各々に対応し二次元座標で表される入力線データを入力受付順に入力線記憶部22に記憶し、記憶した複数の入力線データの各々に対して入力線データに対応する線上の位置に第1の間隔より小さい間隔で点を補完して点群を生成し、最初に記憶された入力線データの始点を検索基準点にしてその直近に位置する入力線データの点の方向に第1の間隔より大きい第2の間隔の範囲を指定して範囲内の点群の重心を算出し、その重心を記憶し、その重心を除く第2の間隔の範囲内の点群を削除し、その重心を検索基準点にして第2の間隔の範囲内の点群がなくなるまで重心算出から点群削除までの処理を繰り返し、記憶された重心の点列をつないで1つのポリラインを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、二次元座標上の複数の入力線から1つのポリラインを生成するポリライン生成方法及びポリライン生成システムに関する。
【背景技術】
【0002】
従来、デザイナは、紙に鉛筆やその他の筆記用具を用いて絵(デッサン)を描いて、工業製品の外観を表していた。また、デザイナ等は、その絵のデータを元に具体的にイメージするためにCAD(Computer Aided Design)を用いて三次元立体図を作成することが行われていた。しかし、CADは、その操作等に関する知識を必要とするものであり、デザイナの感性をそのまま活かしにくいものであった。
【0003】
他方、デザイナの感性をそのまま活かすために、デザイナが紙へのスケッチと同様に手描きした線をコンピュータに入力して、工業製品の外観を表すことが考えられる。例えば、人間の手書きした線画像図面を入力して、人間の見た目に整った図面を出力する手書き線画像浄書処理方法が開示されている(例えば、特許文献1)。また、ある画像から直線及び曲線で構成される線画を抽出描画する画像処理装置が開示されている(例えば、特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開昭63−213083号公報
【特許文献2】特開平3−105574号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1及び特許文献2に記載のものは、描かれた1本の線分を対象としたものであった。デザイナは、1本の線を描くときに、その線を直接描くことは多くない。一般に、デザイナは、複数の短い線を描いていき、自分の想像するラインを決めていく方法でスケッチを行う。そこで、デザイナの手書き入力線を処理するためには、複数で構成される線を1本のラインとして認識しなければならず、特許文献1及び特許文献2を用いることで解決されるものではなかった。
【0006】
本発明は、複数の入力線から1本のポリラインを生成するポリライン生成方法及びポリライン生成システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明者らは、入力された線を点の集合(点群)として捉え、所定の範囲内にある点の重心を計算し、その重心同士を接続することで1本のラインとして認識する方法を見出し、本発明を完成するに至った。
【0008】
(1) コンピュータによって、二次元平面上の複数の入力線に基づいて近似する1つのポリラインを生成するポリライン生成方法であって、複数の線の入力を受け付ける入力受付ステップと、前記入力受付ステップにて受け付けた前記複数の線の各々に対応し二次元の座標で表される入力線データを、入力受付順に記憶する入力線記憶ステップと、前記入力線記憶ステップにて記憶した前記複数の入力線データの各々に対して、前記入力線データに対応する線上の位置に第1の間隔より小さい間隔で点を補完して点群を生成する点群生成ステップと、最初に入力を受け付けて記憶された前記入力線データの始点を検索基準点にし、その検索基準点の直近に位置する前記入力線データの点の方向に前記第1の間隔より大きい第2の間隔の範囲を指定して、その範囲に含む前記点群の重心を算出する重心算出ステップと、前記重心算出ステップにて算出した前記重心を記憶する重心記憶ステップと、前記重心算出ステップにて算出した前記重心を除く前記第2の間隔の範囲に含む前記点群を削除する点群削除ステップと、前記重心記憶ステップにて記憶した前記重心を前記検索基準点にして、前記第2の間隔の範囲に含む前記点群がなくなるまで前記重心算出ステップと前記重心記憶ステップと前記点群削除ステップとを繰り返す第1繰返しステップと、前記重心記憶ステップにて記憶した前記重心の点列をつないで1つのポリラインを生成するポリライン生成ステップと、を含むポリライン生成方法。
【0009】
本発明のこのような構成によれば、複数の入力線に基づいて二次元の座標で表される入力線データを記憶して、その入力線データ上の位置に点を補完して入力線の点群を生成し、所定の範囲内の点群の重心を順次算出してその重心の点列をつなぐことで、1本のポリラインを生成できる。よって、点群の重心を算出してつなぐことで、複数の入力線に近似する1つのポリラインを生成できる。
【0010】
(2) (1)に記載のポリライン生成方法であって、前記入力線記憶ステップに最初に入力を受け付けて記憶された前記入力線データの始点を検索基準点にして、前記第1繰返しステップを実行する第2繰返しステップを含むこと、を特徴とするポリライン生成方法。
【0011】
本発明のこのような構成によれば、最初の入力線データの向きとは異なる方向に入力線を有する場合であっても、所定の範囲内の点群の重心を順次算出することができる。よって、最初の入力線データの向きとは異なる方向に描かれた入力線を含んで、複数の入力線に近似する1つのポリラインを生成できる。
【0012】
(3) (1)又は(2)に記載のポリライン生成方法であって、前記入力受付ステップは、デジタイザを用いたユーザの手描き動作によって前記複数の線の入力を受け付けること、を特徴とするポリライン生成方法。
【0013】
本発明のこのような構成によれば、デジタイザから複数の線の入力を受け付けるので、ユーザが紙にデザインするのと同じような感覚で描いた複数の線を、処理対象にすることができる。よって、ユーザが紙にデザインするのと同じような感覚で描いた複数の線から、それらの線に近似する1つのポリラインを生成できる。
【0014】
(4) (3)に記載のポリライン生成方法であって、前記入力受付ステップは、入力途中の前記線に対して所定の時間間隔で点を補完して、その点を含む前記複数の線の入力を受け付けること、を特徴とするポリライン生成方法。
【0015】
本発明のこのような構成によれば、入力線の入力速度に応じて、入力線上に点を補完することができる。そして、補完された点を用いて点群に関するポリライン生成処理を行うことができる。よって、入力線に近似したポリラインを生成することができる。
【0016】
(5) 二次元平面上の複数の入力線に基づいて近似する1つのポリラインを生成するポリライン生成システムであって、複数の線の入力を受け付ける入力受付手段と、前記入力受付手段によって受け付けた前記複数の線の各々に対応し二次元の座標で表される入力線データを、入力受付順に記憶する入力線記憶手段と、前記入力線記憶手段に記憶された前記複数の入力線データの各々に対して、前記入力線データに対応する線上の位置に第1の間隔より小さい間隔で点を補完して点群を生成する点群生成手段と、最初に入力を受け付けて記憶された前記入力線データの始点を検索基準点にし、その検索基準点の直近に位置する前記入力線データの点の方向に前記第1の間隔より大きい第2の間隔の範囲を指定して、その範囲に含む前記点群の重心を算出する重心算出手段と、前記重心算出手段によって算出した前記重心を記憶する重心記憶手段と、前記重心算出手段によって算出した前記重心を除く前記第2の間隔の範囲に含む前記点群を削除する点群削除手段と、前記重心記憶手段に記憶された前記重心を前記検索基準点にして、前記第2の間隔の範囲に含む前記点群がなくなるまで前記重心算出手段と前記重心記憶手段と前記点群削除手段とを繰り返す第1繰返し手段と、前記重心記憶手段に記憶された前記重心の点列をつないで1つのポリラインを生成するポリライン生成手段と、を備えるポリライン生成システム。
【0017】
本発明のこのような構成によれば、当該システムを用いることにより、(1)と同様の効果が期待できる。
【発明の効果】
【0018】
本発明によれば、入力された複数の入力線を1本のポリラインとして認識するので、紙にデザインスケッチを描く感覚で三次元立体形状(3D)の立体製品図形をデザインすることができ、デザインの精度や多様性、反復性を向上させることができる。
【図面の簡単な説明】
【0019】
【図1】本実施形態に係るポリライン生成システム100の全体構成及び機能構成を示す図である。
【図2】本実施形態に係るメイン処理のフローチャートである。
【図3】本実施形態に係る入力線処理のフローチャートである。
【図4】本実施形態に係る入力線処理の具体例を示す図である。
【図5】本実施形態に係るポリライン生成処理のフローチャートである。
【図6】本実施形態に係るポリライン生成処理の具体例を示す図である。
【図7】本実施形態に係る繰返し処理のフローチャートである。
【図8】本実施形態に係るポリライン生成処理の具体例を示す図である。
【発明を実施するための形態】
【0020】
以下、本発明を実施するための形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【0021】
(実施形態)
[ポリライン生成システム100の全体構成及び機能構成]
図1は、本実施形態に係るポリライン生成システム100の全体構成及び機能構成を示す図である。本実施形態は、デザイナが、デジタイザから紙にデザインスケッチを描く感覚で複数の線を入力して、入力された複数の線に基づいて、手描き線を清書するように入力線に近似する1本のポリラインを生成するものである。
【0022】
ポリライン生成システム100は、デジタイザ1と、モニタ5と、制御部10と、記憶部20とから構成され、それぞれ図示しないバスラインを介して接続されている。
【0023】
デジタイザ1は、入力装置であり、板状部材2と、ペン部材3とを組み合わせた構造である。板状部材2は、モニタ5の中での位置を検出するための板状の装置である。ペン部材3は、モニタ5に対する位置を指示するためのペン型の装置である。デジタイザ1は、モニタ5に対応する板状部材2の上でペン部材3により絶対位置を指定するため、細かい作業に向いている。デジタイザ1は、従来、鉛筆等の筆記用具を使用して紙にデザインしていたデザイナが、従来のデザイン作業と同等の感覚でデザイン作業ができることから選択された。デジタイザ1は、ペン部材3の進化に伴って、より紙に描く感じでデザイナに作業を行わせることができる。
【0024】
モニタ5は、例えば、デジタイザ1から入力された複数の線や、その複数の線から生成されたポリラインを表示するブラウン管表示装置(CRT)、液晶表示装置(LCD)等のディスプレイ装置である。
【0025】
制御部10は、情報の演算及び処理を行う情報演算処理装置(CPU)であり、当該ポリライン生成システム100の全体を制御するものである。制御部10は、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、ポリライン生成システム100のハードウェアと協働し、本発明に係る各種機能を実現している。
【0026】
制御部10は、入力受付手段11と、点群生成手段12と、始点繰返し手段13と、重心繰返し手段14と、重心算出手段15と、点群削除手段16と、ポリライン生成手段17とを備える。
【0027】
入力受付手段11は、デジタイザ1からデザイナであるユーザにより描かれた線の入力を受け付ける制御部である。点群生成手段12は、線上に中点を補完することで点群を生成する制御部である。
【0028】
始点繰返し手段13は、デジタイザ1から最初に入力した線の始点に対して、重心繰返し手段14による処理を繰り返す制御部である。重心繰返し手段14は、重心算出手段15及び点群削除手段16による処理を繰り返す制御部である。重心算出手段15は、処理対象範囲内の点群の重心を算出する制御部である。点群削除手段16は、算出した重心を除く処理対象範囲内の点群を削除する制御部である。
【0029】
ポリライン生成手段17は、算出して記憶した重心の点列をつないで1本のポリラインを生成する制御部である。
【0030】
記憶部20は、本発明の処理に必要なコンピュータプログラム21a等を記憶する記憶装置である。記憶部20は、制御部10と組み合わせてプログラムの実行に使用するメモリを含んでよい。
【0031】
記憶部20を実現するものとして、電気的、磁気的、光学的、電磁的に実現するものを含んでよい。より具体的には、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)等を含む半導体記憶装置、磁気ディスク等が含まれる。
【0032】
記憶部20は、プログラム記憶部21と、入力線記憶部22と、点群リスト記憶部23と、重心位置リスト記憶部24と、一時記憶領域29とを備える。プログラム記憶部21は、本発明の処理を実行するコンピュータプログラム21aを記憶する領域である。入力線記憶部22は、デジタイザ1から受け付けた複数の線を受付順に記憶する。点群リスト記憶部23は、入力線データから生成された点群を記憶する。重心位置リスト記憶部24は、重心算出手段15により算出された重心を記憶する。一時記憶領域29は、一時的なデータの記憶領域である。
【0033】
ここで、本発明でいうコンピュータとは、記憶装置、制御装置等を備えた情報処理装置をいい、ポリライン生成システム100は、記憶部20、制御部10等を備えた情報処理装置であり、本発明のコンピュータの概念に含まれる。
【0034】
なお、ポリライン生成システム100を構成するハードウェアの数に制限はなく、必要に応じて1又は複数のハードウェアで構成してよい。また、複数のハードウェアで構成する場合には、通信回線(図示せず)を介して各ハードウェアを接続してもよい。さらに、ポリライン生成システム100を、例えば、クライアント・サーバ形式にして、入出力のインタフェースをクライアント側で行い、処理をサーバ側で行う構成にしてもよい。
【0035】
[メイン処理の処理フロー]
次に、処理の流れについて説明する。車両のデザインに関して、ユーザは、構造上又はデザイン上において特徴のあるラインを示すキャラクタラインを描く。このキャラクタラインは、長いラインが一本の線で描かれることはあまり多くない。一般に、ユーザは、複数の短い線を描いて、自分で想像するラインを決めていくことが多い。このときの線の入力方法を、マルチストローク入力という。ここでは、このマルチストローク入力による複数の線から、キャラクタラインになる線を決定してポリライン化する例を説明する。図2は、本実施形態に係るメイン処理のフローチャートである。
【0036】
まず、ステップS(以下、単にSという。)1では、制御部10は、初期化処理として、記憶部20のプログラム記憶部21を除く記憶部内のクリア処理を行う。
【0037】
S2において、制御部10は、入力線処理を行う。入力線処理は、デジタイザ1を用いてユーザにより描かれた入力線を、制御部10が入力線データとして入力線記憶部22に記憶する処理である。詳細については、後述する。
【0038】
S3において、制御部10は、入力線記憶部22に記憶された入力線データの数が0であるか否かを判断する。入力線記憶部22に記憶された入力線データが0である場合、つまり、記憶された線がない場合(S3:YES)には、制御部10は、本処理を終了する。他方、入力線記憶部22に記憶された入力線データが0ではない場合(S3:NO)には、制御部10は、処理をS4に移す。
【0039】
S4において、制御部10は、ポリライン生成処理を行う。ポリライン生成処理は、制御部10が、入力線記憶部22に記憶された入力線データに基づいて、1本のポリラインを生成する処理である。詳細については、後述する。その後、制御部10は、本処理を終了する。
【0040】
[入力線処理の処理フロー]
次に、図2のS2に示す入力線処理について説明する。図3は、本実施形態に係る入力線処理のフローチャートである。図4は、本実施形態に係る入力線処理の具体例を示す図である。
【0041】
図3のS21において、制御部10は、入力線のクリア処理を行う。この例では、記憶部20の一時記憶領域29に入力線を一時的に記憶するものとし、クリア処理は、一時記憶領域29をクリアする。
【0042】
S22において、制御部10(入力受付手段11)は、入力を検出したか否かを判断する。デジタイザ1の板状部材2にペン部材3が接触することで、入力を検出した場合(S22:YES)には、制御部10は、処理をS23に移す。入力を検出しない場合(S22:NO)には、制御部10は、S22の処理を繰り返す。
【0043】
S23において、制御部10(入力受付手段11)は、始点を追加する。始点は、デジタイザ1の板状部材2にペン部材3が初めて接触した位置に対応する二次元座標の位置である。始点の座標は、一時記憶領域29に追加される。
【0044】
S24において、制御部10(入力受付手段11)は、所定の時間間隔(例えば、50分の1秒)に達したか否かを判断する。所定の時間間隔に達した場合(S23:YES)には、制御部10は、処理をS25に移す。所定の時間間隔に達していない場合(S23:NO)には、制御部10は、処理をS26に移す。
【0045】
S25において、制御部10(入力受付手段11)は、中点を追加する。中点は、所定の時間間隔に達した時点でのペン部材3の位置に対応する二次元座標の位置である。中点の座標は、一時記憶領域29に追加される。
【0046】
S26において、制御部10(入力受付手段11)は、入力の検出が終了したか否かを判断する。入力の検出が終了した場合とは、板状部材2に接触していたペン部材3が、板状部材2から離れることをいう。入力の検出が終了した場合(S26:YES)には、制御部10は、処理をS27に移す。他方、入力の検出が終了していない場合(S26:NO)には、制御部10は、処理をS24に移す。
【0047】
S27において、制御部10(入力受付手段11)は、終点を追加する。終点は、入力の検出が終了した位置に対応する二次元座標の位置である。終点の座標は、一時記憶領域29に追加される。
【0048】
図4(1)は、デジタイザ1を用いて、ユーザが入力線31を描いた態様を示す。デジタイザ1を用いて図4(1)に示す入力線31を描いた場合に、図4(2)に示すように、入力線データ40が一時記憶領域29に記憶される。一時記憶領域29は、例えば、XZ座標の二次元座標で表されるデジタイザ1の入力位置を含めて、デジタイザ1の入力に対応して入力線データ40を一時的に記憶する領域である。ペン部材3が板状部材2に接触した位置が始点Sであり(図3のS23)、その後、ペン部材3を移動させて50分の1ずつ時間が経過したごとに、中点M(M1〜M3)が追加される(図3のS25)。そして、ペン部材3が板状部材2から離れた位置に、終点Tが追加される(図3のS27)。
【0049】
図3に戻り、S28において、制御部10は、連続重複点の削除処理を行う。具体的には、同位置に複数の点が付されている場合に、制御部10が、複数の点を削除して1つの点にする。ユーザの描画の作業がゆっくりである場合には、同一箇所に中点が複数追加される場合がある。また、ユーザが、ペン部材3を板状部材2に接触させたが、動かすことなくペン部材3を板状部材2から離した場合には、同一箇所に始点と終点とが重なる場合がある。連続重複点の削除処理は、これらの場合を考慮して、余分な点を削除するためのものである。
【0050】
S29において、制御部10は、入力線の点の数が1であるか否かを判断する。入力線の点の数が1である場合(S29:YES)には、制御部10は、処理をS31に移す。入力線の点の数が1である場合とは、始点と中点と終点とが一致する場合、つまり、板状部材2にペン部材3が接触して、その後、ペン部材3を動かすことなく板状部材2からペン部材3が離れた場合をいい、一時記憶領域29には1つの点が付されている。他方、入力線の点の数が1ではない場合(S29:NO)には、制御部10は、処理をS30に移す。入力線の点の数が1ではない場合とは、線が付された場合をいう。
【0051】
S30において、制御部10は、一時記憶領域29に記憶した入力線データを、入力線記憶部22に記憶させる。
【0052】
S31において、制御部10は、入力線の入力が終了であるか否かを判断する。入力線の入力が終了である場合(S31:YES)には、制御部10は、本処理を終了する。入力線の入力が終了ではない場合(S31:NO)には、制御部10は、処理をS21に移す。
【0053】
図4(3)は、デジタイザ1を用いて、ユーザにより3本の入力線31,32,33がこの順番に描かれた態様を示す。図4(4)は、入力線31,32,33が描かれることで、制御部10が入力線記憶部22に記憶した入力線データ40,50,60を示す。入力線記憶部22は、XZ座標の二次元座標で表されるデジタイザ1の入力位置を含めて、デジタイザ1の入力に対応して入力線データ40,50,60を記憶する。入力線記憶部22には、入力線を受け付けた順番に入力線データが記憶される。この例では、入力線データ40に対応する入力線31が最初に描かれており、入力線データ40が最初に記憶される。以降、入力線が描かれた順番、ここでは、入力線データ50,60の順番で、入力線記憶部22に入力線データ50,60が記憶される。また、図4(4)の例の入力線データ40,50,60のうち、入力線データ50は、始点と中点との間隔及び中点と終点との間隔が他の入力線データ40,60よりも長い。よって、入力線データ50から、ユーザにより入力線32が描かれる速度が、他の入力線31,33が描かれる速度よりも速かったことを表している。
【0054】
このように、ポリライン生成システム100は、デジタイザ1を用いてユーザが複数の線を描いた場合に、それらの複数の線を処理対象にして、入力線データとして入力線記憶部22に記憶することができる。よって、ポリライン生成システム100は、ユーザが紙にデザインするのと同じような感覚で描いた複数の線を用いることができる。
【0055】
[ポリライン生成処理の処理フロー]
次に、図2のS4に示すポリライン生成処理について説明する。図5は、本実施形態に係るポリライン生成処理のフローチャートである。図6及び図8は、本実施形態に係るポリライン生成処理の具体例を示す図である。図7は、本実施形態に係る繰返し処理のフローチャートである。
【0056】
図5のS41において、制御部10は、入力線記憶部22に記憶された入力線データの数が1であるか否かを判断する。入力線記憶部22に記憶された入力線データが1である場合(S41:YES)には、1本だけのその入力線データからポリラインを生成すれば足りることから、制御部10は、処理をS48に移す。他方、入力線記憶部22に記憶された入力線データの数が1ではない場合(S41:NO)、つまり、複数の線に関する入力線データが記憶されている場合には、制御部10は、処理をS42に移す。
【0057】
S42において、制御部10は、入力線記憶部22に最初に記憶された入力線データを基準線に設定する。図6(1)は、図4(4)と同じ入力線記憶部22に記憶された入力線データ40,50,60を示す。入力線データ40は、始点40Sと終点40Tとの間に中点41,42,43を有する。入力線データ50は、始点50Sと終点50Tとの間に、中点51を有する。入力線データ60は、始点60Sと終点60Tとの間に、中点61,62を有する。図6(1)の例では、入力線データ40を基準線に設定する。
【0058】
図5に戻り、S43において、制御部10は、基準線の1点目と2点目の座標値を取得する。ここで、1点目は、入力線データ40の始点40Sであり、2点目は、入力線データ40の最初の中点41である(図6(1)参照)。
【0059】
S44において、制御部10は、1点目から2点目の方向を検索基準方向vに設定する。図6(1)は、始点40Sから中点41に向かって検索基準方向vを設定した態様を示す。
【0060】
S45において、制御部10は、1点目を検索基準点に設定する。図6(1)では、入力線データ40の始点40Sが、検索基準点に設定される。
【0061】
S46において、制御部10(点群生成手段12)は、各入力線データの点間隔が間隔d1以内になるように点を補完して点群リストを生成する。図6(2)は、図6(1)に示す入力線データ40,50,60に関して、点を補完した態様を示す。例えば、入力線データ50は、始点50Sと中点51との間隔が間隔d1より大きい。この場合、点群生成手段12は、始点50Sと中点51との間隔が間隔d1以内になるように、中点52を追加する。同様に、入力線データ50の中点51と終点50Tとの間に、中点53が追加される。また、入力線データ60の中点62と終点60Tとの間に、中点63が追加される。このようにして、点群生成手段12により生成された点群リストは、図6(3)に示すように、点群リスト記憶部23に記憶される。
【0062】
S47において、制御部10は、繰返し処理を行う。ここで、繰返し処理について、図7に基づいて説明する。
【0063】
S51において、制御部10は、検索基準点を重心位置リスト記憶部24に追加する。図6に示す例では、制御部10は、入力線データ40の始点40Sを、重心位置リスト記憶部24に追加する。
【0064】
S52において、制御部10は、検索基準点から検索基準方向に間隔d2で形成される四角形の範囲内の点群を検出する。ここで、間隔d2は、上述の間隔d1より長い(大きい)範囲である。そして、間隔d1はなるべく小さく、間隔d2は、なるべく大きな値にすることが望ましい。
【0065】
S53において、制御部10(重心繰返し手段14)は、間隔d2の範囲内に点群が存在するか否かを判断する。点群が存在する場合(S53:YES)には、制御部10は、処理をS54に移す。他方、点群が存在しない場合、つまり、間隔d2の範囲内が空である場合(S53:NO)には、制御部10は、処理をS60に移す。
【0066】
S54において、制御部10(重心算出手段15)は、間隔d2の範囲内の点群の重心位置を算出する。ここで、図8(1)は、最初の検索基準点である入力線データ40の始点40Sから、始点40Sに直近の点である中点41の方向である検索基準方向vに向かって間隔d2の範囲70を示す。範囲70には、中点41の他に、入力線データ50の始点50Sを含む。そして、制御部10は、この中点41と始点50Sとの2つの点から重心80を算出する。
【0067】
図7に戻り、S55において、制御部10(点群削除手段16)は、間隔d2の範囲内の点群を削除する。
【0068】
S56において、制御部10は、S54にて算出した重心位置を、検索基準点に設定する。
【0069】
S57において、制御部10は、設定した検索基準点を、重心位置リスト記憶部24に追加する。
【0070】
S58において、制御部10は、検索基準点から間隔d2内の点群を検出する。その後、制御部10は、処理をS53に移す。
【0071】
ここで、図8(2)は、重心80を検索基準点にした態様を示す。図8(2)では、図8(1)で重心80の左右に存在した中点41と始点50Sとが削除されている(図7のS55)。また、図8(2)には、重心80を検索基準点にして、間隔d2の範囲71が示されている(図7のS58)。範囲71には、中点42,52と始点60Sとを含む。制御部10は、この範囲71に含まれる3つの点の重心81を算出し(図7のS54)、以降、間隔d2の範囲に点群が含まれなくなるまで、制御部10は、図7のS53〜S58の処理を繰り返す。
【0072】
図7に戻り、S60において、制御部10は、基準線の1点目を、検索基準点に設定する。
【0073】
S61において、制御部10は、間隔d2の範囲内に点群が存在するか否かを判断する。点群が存在する場合(S61:YES)には、制御部10は、処理をS54に移す。他方、点群が存在しない場合(S61:NO)には、制御部10は、本処理を終了する。
【0074】
このように、制御部10は、基準線の1点目を検索基準点にして、検索基準方向vとは異なる方向に入力線を有するような場合であっても、検索基準方向vに関わらずに間隔d2の範囲内の点群の重心を算出することができる。よって、ポリライン生成システム100は、最初の入力線データの向きとは異なる方向に描かれた入力線を含んで、複数の入力線に近似する1つのポリラインを生成できる。
【0075】
図8(3)は、重心位置リスト記憶部24に記憶された重心の点列を示す。重心位置リスト記憶部24には、繰返し処理で算出された重心位置が記憶される。
【0076】
図5に戻り、S48において、制御部10(ポリライン生成手段17)は、重心位置リスト記憶部24に記憶された重心位置をつないで、1本のポリラインを生成する。その後、制御部10は、本処理を終了する。
【0077】
このように、ポリライン生成システム100は、二次元の座標で表される入力線データ上の位置に間隔d1内の点を補完して入力線の点群を生成し、間隔d2の範囲内の点群の重心を順次算出してその重心の点列をつなぐことで、1本のポリラインを生成できる。よって、ポリライン生成システム100は、点群の重心を算出して重心の点列をつなぐことで、複数の入力線に近似する1つのポリラインを生成できる。
【符号の説明】
【0078】
1 デジタイザ
2 板状部材
3 ペン部材
5 モニタ
10 制御部
11 入力受付手段
12 点群生成手段
13 始点繰返し手段
14 重心繰返し手段
15 重心算出手段
16 点群削除手段
17 ポリライン生成手段
20 記憶部
21a コンピュータプログラム
22 入力線記憶部
23 点群リスト記憶部
24 重心位置リスト記憶部
29 一時記憶領域
31,32,33 入力線
40,50,60 入力線データ
40S,50S,60S,S 始点
41〜43,51〜53,61〜63,M 中点
40T,50T,60T,T 終点
70,71 範囲
80,81 重心
100 ポリライン生成システム

【特許請求の範囲】
【請求項1】
コンピュータによって、二次元平面上の複数の入力線に基づいて近似する1つのポリラインを生成するポリライン生成方法であって、
複数の線の入力を受け付ける入力受付ステップと、
前記入力受付ステップにて受け付けた前記複数の線の各々に対応し二次元の座標で表される入力線データを、入力受付順に記憶する入力線記憶ステップと、
前記入力線記憶ステップにて記憶した前記複数の入力線データの各々に対して、前記入力線データに対応する線上の位置に第1の間隔より小さい間隔で点を補完して点群を生成する点群生成ステップと、
最初に入力を受け付けて記憶された前記入力線データの始点を検索基準点にし、その検索基準点の直近に位置する前記入力線データの点の方向に前記第1の間隔より大きい第2の間隔の範囲を指定して、その範囲に含む前記点群の重心を算出する重心算出ステップと、
前記重心算出ステップにて算出した前記重心を記憶する重心記憶ステップと、
前記重心算出ステップにて算出した前記重心を除く前記第2の間隔の範囲に含む前記点群を削除する点群削除ステップと、
前記重心記憶ステップにて記憶した前記重心を前記検索基準点にして、前記第2の間隔の範囲に含む前記点群がなくなるまで前記重心算出ステップと前記重心記憶ステップと前記点群削除ステップとを繰り返す第1繰返しステップと、
前記重心記憶ステップにて記憶した前記重心の点列をつないで1つのポリラインを生成するポリライン生成ステップと、
を含むポリライン生成方法。
【請求項2】
請求項1に記載のポリライン生成方法であって、
前記入力線記憶ステップに最初に入力を受け付けて記憶された前記入力線データの始点を検索基準点にして、前記第1繰返しステップを実行する第2繰返しステップを含むこと、
を特徴とするポリライン生成方法。
【請求項3】
請求項1又は請求項2に記載のポリライン生成方法であって、
前記入力受付ステップは、デジタイザを用いたユーザの手描き動作によって前記複数の線の入力を受け付けること、
を特徴とするポリライン生成方法。
【請求項4】
請求項3に記載のポリライン生成方法であって、
前記入力受付ステップは、入力途中の前記線に対して所定の時間間隔で点を補完して、その点を含む前記複数の線の入力を受け付けること、
を特徴とするポリライン生成方法。
【請求項5】
二次元平面上の複数の入力線に基づいて近似する1つのポリラインを生成するポリライン生成システムであって、
複数の線の入力を受け付ける入力受付手段と、
前記入力受付手段によって受け付けた前記複数の線の各々に対応し二次元の座標で表される入力線データを、入力受付順に記憶する入力線記憶手段と、
前記入力線記憶手段に記憶された前記複数の入力線データの各々に対して、前記入力線データに対応する線上の位置に第1の間隔より小さい間隔で点を補完して点群を生成する点群生成手段と、
最初に入力を受け付けて記憶された前記入力線データの始点を検索基準点にし、その検索基準点の直近に位置する前記入力線データの点の方向に前記第1の間隔より大きい第2の間隔の範囲を指定して、その範囲に含む前記点群の重心を算出する重心算出手段と、
前記重心算出手段によって算出した前記重心を記憶する重心記憶手段と、
前記重心算出手段によって算出した前記重心を除く前記第2の間隔の範囲に含む前記点群を削除する点群削除手段と、
前記重心記憶手段に記憶された前記重心を前記検索基準点にして、前記第2の間隔の範囲に含む前記点群がなくなるまで前記重心算出手段と前記重心記憶手段と前記点群削除手段とを繰り返す第1繰返し手段と、
前記重心記憶手段に記憶された前記重心の点列をつないで1つのポリラインを生成するポリライン生成手段と、
を備えるポリライン生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−271821(P2010−271821A)
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願番号】特願2009−121816(P2009−121816)
【出願日】平成21年5月20日(2009.5.20)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】