(57)【要約】  描画装置（１００）は、ポリゴンを使用して、二本の太線の接続部分に生じる隙間を埋める。この描画装置（１００）において、生成部（１０１）は、二本の太線を描画するための描画情報を生成する。格納部（１０２）は、二本の太線を描画するための描画パラメータを格納する。算出部（１０３）は、二本の太線のポリゴンの頂点座標を算出した後、二本の太線の接続部分が大きく尖って不自然な形状にならないように、ポリゴンの頂点座標を補正する。設定部（１０４）は、ポリゴンのテクスチャを設定する。描画部（１０５）は、ポリゴンを描画し、テクスチャを貼り付ける。
2015173885.tif 000002
【特許請求の範囲】
【請求項１】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画装置であって、
前記第１矩形と前記第２矩形とを定義するデータを格納する格納部と、
前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記格納部に格納されたデータに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出する算出部と、
前記算出部により算出された頂点列から形成されるポリゴンを描画する描画部と
を備えることを特徴とする描画装置。
【請求項２】
前記算出部は、Ａ以外の点をＡ’として設定することを特徴とする請求項１の描画装置。
【請求項３】
前記算出部は、Ｐ及びＡを両端点とする線分と、Ｓ１’及びＳ２’を両端点とする線分との交点よりもＡに近い点をＡ’として設定することを特徴とする請求項２の描画装置。
【請求項４】
前記算出部は、Ｐ及びＡを両端点とする線分とＰを中心としてＳ１及びＳ２を通過する円との交点をＡ’として設定することを特徴とする請求項１の描画装置。
【請求項５】
前記算出部は、Ｓ１をＳ１’として設定し、Ｓ２をＳ２’として設定することを特徴とする請求項４の描画装置。
【請求項６】
前記算出部は、前記第１辺の両端点のうちＳ１と逆側にある端点をＴ１、前記第２辺の両端点のうちＳ２と逆側にある端点をＴ２とし、前記第１辺に垂直でＴ１を一端点とする辺と前記第２辺に垂直でＴ２を一端点とする辺とのうち少なくともいずれか一方と、Ｐ及びＡを両端点とする線分の延長線との交点であるＢが存在する場合、Ｂを前記頂点列に含めることを特徴とする請求項１の描画装置。
【請求項７】
前記算出部は、前記頂点列として、Ｂ、Ｓ１’、Ｂ、Ａ’、Ｂ、Ｓ２’を順番に含むトライアングルストリップ形式の頂点列を算出することを特徴とする請求項６の描画装置。
【請求項８】
前記算出部は、前記第１辺の両端点のうちＳ１と逆側にある端点をＴ１、前記第２辺の両端点のうちＳ２と逆側にある端点をＴ２とし、前記第１辺に垂直でＴ１を一端点とする辺と前記第２辺に垂直でＴ２を一端点とする辺とのうち少なくともいずれか一方と、Ｐ及びＡを両端点とする線分の延長線との交点であるＢが存在しない場合、Ｐ及びＡを両端点とする線分の延長線上で前記第１矩形と前記第２矩形とのうち少なくともいずれか一方に重なる点であるＢ’を前記頂点列に含めることを特徴とする請求項１の描画装置。
【請求項９】
前記算出部は、前記頂点列として、Ｔ１、Ｓ１’、Ｂ’、Ａ’、Ｔ２、Ｓ２’を順番に含むトライアングルストリップ形式の頂点列を算出することを特徴とする請求項８の描画装置。
【請求項１０】
前記算出部により算出された頂点列に含まれるＡ’及びＳ１’をそれぞれ一頂点とするポリゴンのテクスチャとして、Ｓ１’から、Ｐ及びＡを両端点とする線分上のＰ及びＡ’間の一点までの境界線により透過部分と不透過部分とに分割されたテクスチャを設定する設定部
をさらに備え、
前記描画部は、描画したポリゴンに、前記設定部により設定されたテクスチャを貼り付けることを特徴とする請求項１の描画装置。
【請求項１１】
前記設定部は、前記算出部により算出された頂点列に含まれるＡ’及びＳ２’をそれぞれ一頂点とするポリゴンのテクスチャとして、Ｓ２’の位置から、Ｐ及びＡを両端点とする線分上のＰ及びＡ’間の位置までの境界線により透過部分と不透過部分とに分割されたテクスチャを設定することを特徴とする請求項１０の描画装置。
【請求項１２】
前記描画部は、前記ポリゴンとして、移動経路を表すポリゴンを地図上に描画することを特徴とする請求項１から１１のいずれかの描画装置。
【請求項１３】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画方法であって、
前記第１矩形と前記第２矩形とを定義するデータを記憶媒体に格納するコンピュータが、前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記データに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出し、
前記コンピュータが、前記頂点列から形成されるポリゴンを描画することを特徴とする描画方法。
【請求項１４】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画プログラムであって、
前記第１矩形と前記第２矩形とを定義するデータを記憶媒体に格納するコンピュータに、
前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記データに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出する算出処理と、
前記算出処理により算出された頂点列から形成されるポリゴンを描画する描画処理と
を実行させることを特徴とする描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画装置及び描画方法及び描画プログラムに関するものである。
【背景技術】
【０００２】
二本の太線の接続部分に生じる隙間を埋める方法として、“ｍｉｔｅｒ”、“ｒｏｕｎｄ”、“ｂｅｖｅｌ”等がある（例えば、特許文献１及び２参照）。“ｍｉｔｅｒ”では、二本の太線の外縁を延長してできる四角形で隙間を埋める。“ｒｏｕｎｄ”では、二本の太線の接続点を中心とした円の一部で隙間を埋める。“ｂｅｖｅｌ”では、二本の太線の外縁の端点をつないでできる三角形で隙間を埋める。【０００３】
三次元モデルで太線をポリゴンとして描画し、ポリゴンにテクスチャを貼り付ける方法がある（例えば、特許文献３参照）。この方法では、二点を結ぶ線であるリンクに対し、左右に所定間隔だけ離れた平行線を引くことで太線のポリゴンの頂点を算出する。二本の太線を接続する場合は、左右それぞれの二本の平行線を伸縮して接続することで折線のポリゴンの頂点を算出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−３０５８６４号公報
【特許文献２】特開平６−１６８３３９号公報
【特許文献３】特開２００７−８６１５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１及び２の方法では、ポリゴンを使用せず、ポリラインで太線を描画するため、複雑な模様の太線を表現することができない。【０００６】
特許文献３の方法では、二本の太線の接続部分に隙間は生じないが、二本の太線のリンクのなす角度が小さいと、その接続部分が大きく尖って（即ち、肥大化して）不自然な形状になってしまう。【０００７】
本発明は、例えば、二本の太線の接続部分に生じる隙間をポリゴンで埋めて、その接続部分を自然な形状に整えることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一の態様に係る描画装置は、
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める。
前記描画装置は、
前記第１矩形と前記第２矩形とを定義するデータを格納する格納部と、
前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記格納部に格納されたデータに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出する算出部と、
前記算出部により算出された頂点列から形成されるポリゴンを描画する描画部とを備える。
【発明の効果】
【０００９】
本発明によれば、二本の太線（即ち、二つの矩形）の接続部分に生じる隙間をポリゴンで埋めて、その接続部分を自然な形状に整えることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る描画装置の構成を示すブロック図。
【図２】実施の形態１に係る描画装置が備える算出部の動作の一例を示すフローチャート。
【図３】実施の形態１に係る描画装置が備える算出部により生成されるポリゴンの例を示す図。
【図４】実施の形態１に係る描画装置が備える算出部により生成されるポリゴンの例を示す図。
【図５】実施の形態１に係る描画装置が備える算出部により生成されるポリゴンの例を示す図。
【図６】実施の形態１に係る描画装置が備える算出部により生成されるポリゴンの例を示す図。
【図７】実施の形態２に係る描画装置が備える算出部により生成されるポリゴンと描画装置が備える設定部により設定されるテクスチャとの例を示す図。
【図８】実施の形態２に係る描画装置が備える設定部により設定されるテクスチャの例を示す図。
【図９】本発明の実施の形態に係る描画装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。
【００１２】
実施の形態１．
本実施の形態は、道路を太線として描画したり、移動経路を太線として地図上に描画したり、ＶＩＣＳ（登録商標）（Ｖｅｈｉｃｌｅ・Ｉｎｆｏｒｍａｔｉｏｎ・ａｎｄ・Ｃｏｍｍｕｎｉｃａｔｉｏｎ・Ｓｙｓｔｅｍ）又はＴＭＣ（Ｔｒａｆｆｉｃ・Ｍｅｓｓａｇｅ・Ｃｈａｎｎｅｌ）により得られる情報に基づいて渋滞線（渋滞が発生している道路を示す線）又は順調線（順調に流れている道路を示す線）を太線として地図上に描画したりするナビゲーション機器等、太線を描画する様々な機器に適用することができる。
【００１３】
図１は、本実施の形態に係る描画装置１００の構成を示すブロック図である。
【００１４】
図１において、描画装置１００は、生成部１０１、格納部１０２、算出部１０３、設定部１０４、描画部１０５を備える。
【００１５】
生成部１０１は、ユーザの入力等に従って、ポリゴンを描画するために必要な描画情報を生成する。本実施の形態をナビゲーション機器に適用する場合、生成部１０１は、ナビゲーション機器のユーザの位置情報、或いは、ナビゲーション機器が搭載された移動体（例えば、車両）の位置情報も参照して、リアルタイムに描画情報を生成する。
【００１６】
格納部１０２は、描画範囲、描画する線の幅及び色、閾値といった描画パラメータをディスク或いはフラッシュメモリ等の記憶媒体に格納する。本実施の形態をナビゲーション機器に適用する場合、格納部１０２は、道路を含む地図を描画したり、移動経路を地図上に描画したりするための描画パラメータ及び地図データを格納する。
【００１７】
算出部１０３及び設定部１０４は、描画可能な形式で描画データを構築する描画データ構築部１１０を構成する。描画データ構築部１１０は、生成部１０１により生成された描画情報に基づいて、格納部１０２からポリゴンを描画するために必要な描画パラメータを取得する。
【００１８】
算出部１０３は、生成部１０１により生成された描画情報と、格納部１０２から取得した描画パラメータとに基づいて、ポリゴンの頂点座標を算出する。即ち、算出部１０３は、ポリゴンを生成する。本実施の形態をナビゲーション機器に適用する場合、算出部１０３は、道路、又は、前述したユーザ或いは移動体の移動経路を表すポリゴンを生成する。
【００１９】
設定部１０４は、算出部１０３により生成されたポリゴンのテクスチャ及びマテリアルを設定する。
【００２０】
描画部１０５は、描画データを描画する。具体的には、描画部１０５は、算出部１０３により生成されたポリゴンを描画する。そして、描画部１０５は、描画したポリゴンに、設定部１０４により設定されたテクスチャを貼り付ける。設定部１０４によりマテリアルが設定されている場合、描画部１０５は、描画したポリゴンに、そのマテリアルを付加する。本実施の形態をナビゲーション機器に適用する場合、描画部１０５は、道路、又は、前述したユーザ或いは移動体の移動経路を表す描画データを地図上に描画する。
【００２１】
本実施の形態では、描画装置１００が、太線を描画するときに、ポリゴンを使用して、二本の太線（即ち、二つの矩形）の接続部分に生じる隙間を埋める。即ち、描画装置１００は、ポリゴンを使用して、第１辺を有する矩形と、第１辺と交差する第２辺を有する矩形との間に生じ、第１辺と第２辺との交点と、第１辺の一端点と、第２辺の一端点とを頂点とする三角形の隙間を埋める。
【００２２】
以下では、算出部１０３が上記隙間を埋めるポリゴンを生成する動作について詳細に説明する。
【００２３】
図２は、算出部１０３の動作の一例を示すフローチャートである。図３〜６までは、算出部１０３により生成されるポリゴンの例を示す図である。なお、図３〜６では、便宜上、隣接する三角形のポリゴンに異なるハッチングを用いているが、ハッチングの違いはテクスチャの違いを表すものではない。即ち、図３〜６の例では、いくつか又は全てのポリゴンに共通のテクスチャを適用してもよい。本実施の形態をナビゲーション機器に適用する場合、道路又は移動経路を表すポリゴンには、特定箇所を区別する必要のない限り、共通のテクスチャを貼り付けることが望ましい。
【００２４】
本例において、算出部１０３は、ポリゴンの頂点座標を算出する際に、プリミティブタイプとしてトライアングルストリップを使用する。また、算出部１０３は、バックフェイスカリングを適用して、反時計回り順に登録されたポリゴンを非描画に設定する。なお、算出部１０３は、トライアングルストリップの代わりに、トライアングルリスト又はその他のプリミティブタイプを使用してもよい。また、算出部１０３は、反時計回り順ではなく、時計回り順に登録されたポリゴンを非描画に設定してもよい。
【００２５】
図３〜６に示すように、Ｐ（ｎ−１）及びＰ（ｎ）を両端点とする線分を両側に同じ幅で広げた、一定の太さをもつ第１矩形２０１があると仮定する。また、Ｐ（ｎ）及びＰ（ｎ＋１）を両端点とする線分を両側に同じ幅で広げた、一定の太さをもつ第２矩形２０２があると仮定する。
【００２６】
第１矩形２０１は、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｓ１（ｎ）、Ｔ１（ｎ）の四頂点を有する。第１矩形２０１は、第１辺として、Ｓ１（ｎ）及びＴ１（ｎ）を両端点とする辺を有する。
【００２７】
第２矩形２０２は、Ｑ２（ｎ）、Ｒ２（ｎ）、Ｓ２（ｎ）、Ｔ２（ｎ）の四頂点を有する。第２矩形２０２は、第２辺として、Ｓ２（ｎ）及びＴ２（ｎ）を両端点とする辺を有する。第２辺は、第１矩形２０１の第１辺とＰ（ｎ）で交差する。即ち、Ｐ（ｎ）は、第１矩形２０１の第１辺と第２矩形２０２の第２辺との交点である。
【００２８】
第１矩形２０１と第２矩形２０２との間には、Ｐ（ｎ）、Ｓ１（ｎ）、Ｓ２（ｎ）を頂点とする三角形の隙間が生じている。
【００２９】
Ａ（ｎ）は、Ｒ１（ｎ）及びＳ１（ｎ）を両端点とする辺の延長線と、Ｑ２（ｎ）及びＳ２（ｎ）を両端点とする辺の延長線との交点である。Ｒ１（ｎ）及びＳ１（ｎ）を両端点とする辺は、第１矩形２０１の第１辺に垂直になっている。Ｑ２（ｎ）及びＳ２（ｎ）を両端点とする辺は、第２矩形２０２の第２辺に垂直になっている。前述したように、Ｓ１（ｎ）は、第１矩形２０１の第１辺の両端点のうち、第１矩形２０１と第２矩形２０２との間の隙間の三角形の一頂点である。Ｓ２（ｎ）は、第２矩形２０２の第２辺の両端点のうち、第１矩形２０１と第２矩形２０２との間の隙間の三角形の一頂点である。
【００３０】
Ｂ（ｎ）は、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺又はその辺の延長線と、Ｒ２（ｎ）及びＴ２（ｎ）を両端点とする辺又はその辺の延長線と、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分の延長線との交点である。Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺は、第１矩形２０１の第１辺に垂直になっている。Ｒ２（ｎ）及びＴ２（ｎ）を両端点とする辺は、第２矩形２０２の第２辺に垂直になっている。
【００３１】
格納部１０２には、第１矩形２０１と第２矩形２０２を定義するデータが描画パラメータとして格納される。算出部１０３は、この描画パラメータに基づき、以下の処理を実行する。
【００３２】
Ｓ１１において、算出部１０３は、Ｐ（ｎ−１）及びＰ（ｎ）を両端点とする線分と、Ｐ（ｎ）及びＰ（ｎ＋１）を両端点とする線分とのなす角が右折の曲がり角なのか、左折の曲がり角なのかを判定する。即ち、算出部１０３は、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）をつないだ線が右折しているのか、それとも左折しているのかを判定する。例えば、ベクトルの外積の符号によって右折及び左折を判定することができる。
【００３３】
図３〜６の例では、算出部１０３は、Ｐ（ｎ−１）及びＰ（ｎ）を両端点とする線分と、Ｐ（ｎ）及びＰ（ｎ＋１）を両端点とする線分とのなす角を右折の曲がり角と判定する。ただし、頂点の並び順がＰ（ｎ＋１）、Ｐ（ｎ）、Ｐ（ｎ−１）のときは、左折の曲がり角と判定される。本実施の形態をナビゲーション機器に適用する場合、頂点の並び順は道路又は移動経路の進行方向によって決まる。
【００３４】
Ｓ１２において、算出部１０３は、通常ポリゴン座標算出処理を実行する。通常ポリゴン座標算出処理とは、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）のそれぞれに対し、両側に一つずつポリゴン頂点を設定し、各ポリゴン頂点の座標を算出する処理のことである。
【００３５】
図３の例では、算出部１０３は、Ｐ（ｎ−１）に対してＱ１（ｎ）及びＲ１（ｎ）、Ｐ（ｎ）に対してＢ（ｎ）及びＡ（ｎ）、Ｐ（ｎ＋１）に対してＲ２（ｎ）及びＱ２（ｎ）をポリゴン頂点として設定する。そして、算出部１０３は、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列を算出する。この頂点列からは、描画部１０５による描画の順番に、以下の四つの三角形ポリゴンが形成される。
・１番目のポリゴン：Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・２番目のポリゴン：Ｒ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）を頂点とするポリゴン
・３番目のポリゴン：Ｂ（ｎ）、Ａ（ｎ）、Ｒ２（ｎ）を頂点とするポリゴン
・４番目のポリゴン：Ａ（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を頂点とするポリゴン
【００３６】
上記四つのうち、２〜４番目の三つのポリゴンが、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンである。
【００３７】
通常ポリゴン座標算出処理では、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）の三点がなす角の二等分線上にポリゴン頂点が配置される。図３の例では、Ｂ（ｎ）及びＡ（ｎ）を両端点とする線分が二等分線である。なお、本実施の形態において、通常ポリゴン座標算出処理は、他の従来のポリゴン座標算出手法で代替することも可能である。
【００３８】
通常ポリゴン座標算出処理では、第１矩形２０１と第２矩形２０２との接続部分に隙間は生じないが、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）の三点のなす角度が小さいほど、Ｐ（ｎ）及びＡ（ｎ）間の距離が長くなる。Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）の三点のなす角度とは、Ｐ（ｎ−１）及びＰ（ｎ）を両端点とする線分と、Ｐ（ｎ）及びＰ（ｎ＋１）を両端点とする線分との間の１８０度以下の角度のことである。Ｐ（ｎ）及びＡ（ｎ）間の距離があまりに長いと、第１矩形２０１と第２矩形２０２との接続部分が大きく尖って不自然な形状になってしまう。また、詳細な説明は省くが、通常ポリゴン座標算出処理では、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）の三点間の距離が短いと、ポリゴン間に不自然な隙間が空いてしまう。
【００３９】
このように、通常ポリゴン座標算出処理では、不自然な形状のポリゴンが生成されてしまうことがある。本実施の形態では、後述する曲がり角ポリゴン座標算出処理を実行することで、より自然な形状のポリゴンを生成することができる。
【００４０】
Ｓ１３において、算出部１０３は、Ｓ１２で算出した座標の補正が必要か否かを判定する。基本的には、算出部１０３は、第１矩形２０１及び第２矩形２０２の辺上に、Ｓ１２の通常ポリゴン座標算出処理で算出したポリゴン座標のうち、第１矩形２０１及び第２矩形２０２の頂点以外の座標が存在するか否かを判定する。Ｓ１１の判定結果が「右折」の場合、算出部１０３は、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）を順番に結んだベクトルに平行な二本の輪郭線のうち、右側の線分上に該当するポリゴン座標が存在するか否かを判定する。一方、Ｓ１１の判定結果が「左折」の場合、算出部１０３は、左側の線分上に該当するポリゴン座標が存在するか否かを判定する。
【００４１】
図３〜６の例では、算出部１０３は、Ｐ（ｎ−１）及びＰ（ｎ）を両端点とする線分に平行な第１矩形２０１の二辺のうち、右側にあるＱ１（ｎ）及びＴ１（ｎ）を両端点とする辺の上に、Ｓ１２で算出したＢ（ｎ）が存在するか否かを判定する。また、算出部１０３は、Ｐ（ｎ）及びＰ（ｎ＋１）を両端点とする線分に平行な第２矩形２０２の二辺のうち、右側にあるＴ２（ｎ）及びＲ２（ｎ）を両端点とする辺の上に、Ｓ１２で算出したＢ（ｎ）が存在するか否かを判定する。
【００４２】
図３の例では、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺と、Ｔ２（ｎ）及びＲ２（ｎ）を両端点とする辺との両方の上にＢ（ｎ）が存在する。よって、算出部１０３は、Ｓ１２で算出した座標の補正が必要ないと判定する。
【００４３】
図４の例では、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺と、Ｔ２（ｎ）及びＲ２（ｎ）を両端点とする辺とのいずれの上にもＢ（ｎ）が存在しない。よって、算出部１０３は、Ｓ１２で算出した座標の補正が必要であると判定する。
【００４４】
図５の例では、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺の上にはＢ（ｎ）が存在する。しかし、Ｔ２（ｎ）及びＲ２（ｎ）を両端点とする辺の上にはＢ（ｎ）が存在しない。よって、算出部１０３は、Ｓ１２で算出した座標の補正が必要であると判定する。
【００４５】
図６の例では、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺と、Ｔ２（ｎ）及びＲ２（ｎ）を両端点とする辺との両方の上にＢ（ｎ）が存在する。しかし、この例では、Ｐ（ｎ）及びＡ（ｎ）間の距離が長くなっている。よって、算出部１０３は、Ｓ１２で算出した座標の補正が必要であると判定する。算出部１０３は、Ｐ（ｎ）及びＡ（ｎ）間の距離を閾値と比較することで、Ｐ（ｎ）及びＡ（ｎ）間の距離が長すぎるか否か判定することができる。例えば、閾値は、Ｐ（ｎ）を中心としてＳ１（ｎ）及びＳ２（ｎ）を通過する円の半径のｘ倍（例えば、ｘ＝１．２）に設定される。この閾値を使用すれば、Ｐ（ｎ）及びＡ（ｎ）間の距離が長くなりすぎないように制御することができる。
【００４６】
なお、本実施の形態において、上記とは異なる基準で補正が必要か否かを判定してもよい。例えば、算出部１０３は、Ｐ（ｎ）に対応する左右のポリゴン頂点を結んだ線分と、Ｐ（ｎ）に隣接するＰ（ｎ−１）又はＰ（ｎ＋１）に対応する左右のポリゴン頂点を結んだ線分とが交差するときに、補正が必要であると判定してもよい。或いは、算出部１０３は、ポリゴン頂点の登録順序が正常ではない場合に、補正が必要であると判定してもよい。或いは、算出部１０３は、Ｐ（ｎ−１）、Ｐ（ｎ）、Ｐ（ｎ＋１）の三点のなす角度が閾値以下のときに、補正が必要であると判定してもよい。
【００４７】
算出部１０３により補正が必要ないと判定された場合、フローはＳ１５に進む。算出部１０３により補正が必要であると判定された場合、フローはＳ１４に進む。
【００４８】
Ｓ１４において、算出部１０３は、曲がり角ポリゴン座標算出処理を実行する。曲がり角ポリゴン座標算出処理とは、Ｓ１２で算出した座標を補正する処理のことである。具体的には、曲がり角ポリゴン座標算出処理とは、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンの頂点として、Ａ’（ｎ）と、Ｓ１’（ｎ）と、Ｓ２’（ｎ）とを含む頂点列を算出する処理のことである。Ａ’（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分上のＰ（ｎ）及びＡ（ｎ）以外の一点である。Ｓ１’（ｎ）は、Ｓ１（ｎ）及びＡ（ｎ）を両端点とする線分上のＡ（ｎ）以外の一点である。Ｓ２’（ｎ）は、Ｓ２（ｎ）及びＡ（ｎ）を両端点とする線分上のＡ（ｎ）以外の一点である。
【００４９】
図４〜６の例でも、Ｓ１２の結果は図３の例と同様である。よって、Ｓ１４の実行前には、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列が生成されている。曲がり角ポリゴン座標算出処理では、この頂点列が変更される。
【００５０】
図４の例では、算出部１０３は、Ｓ１２で算出された頂点列にてＡ（ｎ）及びＢ（ｎ）を、それぞれＡ’（ｎ）及びＢ’（ｎ）に補正する。Ａ’（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分（即ち、前述した二等分線の左半分）と、Ｐ（ｎ）を中心としてＳ１（ｎ）及びＳ２（ｎ）を通過する円との交点である。Ｂ’（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分の延長線（即ち、前述した二等分線の右半分）と、Ｐ（ｎ）を中心とする上記円との交点である。算出部１０３は、さらに、頂点列にＳ１（ｎ）及びＳ２（ｎ）を、それぞれＳ１’（ｎ）及びＳ２’（ｎ）として追加する。算出部１０３は、頂点列にＴ１（ｎ）及びＴ２（ｎ）も追加する。結果として、算出部１０３は、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｔ１（ｎ）、Ｓ１（ｎ）、Ｂ’（ｎ）、Ａ’（ｎ）、Ｔ２（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列を算出する。この頂点列からは、以下の八つの三角形ポリゴンが形成される。
・１番目のポリゴン：Ｑ１（ｎ）、Ｒ１（ｎ）、Ｔ１（ｎ）を頂点とするポリゴン
・２番目のポリゴン：Ｒ１（ｎ）、Ｔ１（ｎ）、Ｓ１（ｎ）を頂点とするポリゴン
・３番目のポリゴン：Ｔ１（ｎ）、Ｓ１（ｎ）、Ｂ’（ｎ）を頂点とするポリゴン
・４番目のポリゴン：Ｓ１（ｎ）、Ｂ’（ｎ）、Ａ’（ｎ）を頂点とするポリゴン
・５番目のポリゴン：Ｂ’（ｎ）、Ａ’（ｎ）、Ｔ２（ｎ）を頂点とするポリゴン
・６番目のポリゴン：Ａ’（ｎ）、Ｔ２（ｎ）、Ｓ２（ｎ）を頂点とするポリゴン
・７番目のポリゴン：Ｔ２（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）を頂点とするポリゴン
・８番目のポリゴン：Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を頂点とするポリゴン
【００５１】
上記八つのうち、４及び６番目の二つのポリゴンが、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンである。なお、３番目のポリゴンは、２番目のポリゴンと同じ反時計回りであるため、バックフェイスカリングが適用されて非描画となる。同様に、５番目のポリゴンは、４番目のポリゴンと同じ反時計回りであるため、バックフェイスカリングが適用されて非描画となる。よって、描画部１０５による描画処理では、１，２，４，６，７，８番目のポリゴンが順番に描画されることになる。
【００５２】
図５の例では、算出部１０３は、Ｓ１２で算出された頂点列にてＡ（ｎ）をＡ’（ｎ）に補正する。Ａ’（ｎ）は、図４の例と同様に、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分（即ち、前述した二等分線の左半分）と、Ｐ（ｎ）を中心としてＳ１（ｎ）及びＳ２（ｎ）を通過する円との交点である。Ｂ（ｎ）は、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺の上に存在するため、補正しなくてよい。算出部１０３は、さらに、頂点列にＳ１（ｎ）及びＳ２（ｎ）を、それぞれＳ１’（ｎ）及びＳ２’（ｎ）として追加する。結果として、算出部１０３は、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）、Ｓ１（ｎ）、Ｂ（ｎ）、Ａ’（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列を算出する。この頂点列からは、以下の八つの三角形ポリゴンが形成される。
・１番目のポリゴン：Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・２番目のポリゴン：Ｒ１（ｎ）、Ｂ（ｎ）、Ｓ１（ｎ）を頂点とするポリゴン
・３番目のポリゴン：Ｂ（ｎ）、Ｓ１（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・４番目のポリゴン：Ｓ１（ｎ）、Ｂ（ｎ）、Ａ’（ｎ）を頂点とするポリゴン
・５番目のポリゴン：Ｂ（ｎ）、Ａ’（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・６番目のポリゴン：Ａ’（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）を頂点とするポリゴン
・７番目のポリゴン：Ｂ（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）を頂点とするポリゴン
・８番目のポリゴン：Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を頂点とするポリゴン
【００５３】
上記八つのうち、４及び６番目の二つのポリゴンが、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンである。なお、３番目のポリゴンは、面積が０であるため、非描画となる。同様に、５番目のポリゴンは、面積が０であるため、非描画となる。よって、描画部１０５による描画処理では、１，２，４，６，７，８番目のポリゴンが順番に描画されることになる。
【００５４】
図６の例では、算出部１０３は、Ｓ１２で算出された頂点列にてＡ（ｎ）をＡ’（ｎ）に補正する。Ａ’（ｎ）は、図４の例と同様に、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分（即ち、前述した二等分線の左半分）と、Ｐ（ｎ）を中心としてＳ１（ｎ）及びＳ２（ｎ）を通過する円との交点である。Ｂ（ｎ）は、Ｑ１（ｎ）及びＴ１（ｎ）を両端点とする辺と、Ｔ２（ｎ）及びＲ２（ｎ）を両端点とする辺との両方の上に存在するため、補正しなくてよい。算出部１０３は、さらに、頂点列にＳ１（ｎ）及びＳ２（ｎ）を、それぞれＳ１’（ｎ）及びＳ２’（ｎ）として追加する。結果として、算出部１０３は、図５の例と同様に、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）、Ｓ１（ｎ）、Ｂ（ｎ）、Ａ’（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列を算出する。この頂点列からは、前述した八つの三角形ポリゴンが形成される。描画部１０５による描画処理では、１，２，４，６，７，８番目のポリゴンが順番に描画されることになる。
【００５５】
なお、図４〜６の例において、Ａ’（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分上で任意の位置にずらすことができる。Ａ’（ｎ）がＰ（ｎ）から少しでも離れていれば、第１矩形２０１と第２矩形２０２との間の隙間を一部でも埋めることができる。Ａ’（ｎ）がＡ（ｎ）から少しでも離れていれば、第１矩形２０１と第２矩形２０２との接続部分の肥大化を抑制する効果が得られる。即ち、第１矩形２０１と第２矩形２０２との接続部分が大きく尖らないようにすることができる。
【００５６】
図４〜６の例において、Ｓ１’（ｎ）は、Ｓ１（ｎ）及びＡ（ｎ）を両端点とする線分上で任意の位置にずらすことができる。Ｓ２’（ｎ）も、Ｓ２（ｎ）及びＡ（ｎ）を両端点とする線分上で任意の位置にずらすことができる。Ｓ１’（ｎ）又はＳ２’（ｎ）がＡ（ｎ）から少しでも離れていれば、第１矩形２０１と第２矩形２０２との接続部分の肥大化を抑制する効果が得られる。
【００５７】
Ａ’（ｎ）、Ｓ１’（ｎ）、Ｓ２’（ｎ）の設定のしかたによっては、第１矩形２０１と第２矩形２０２との接続部分が凹状になる場合がある。しかし、接続部分は、凸状のほうが、より自然である。したがって、算出部１０３は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分と、Ｓ１’（ｎ）及びＳ２’（ｎ）を両端点とする線分との交点よりもＡ’（ｎ）がＡ（ｎ）に近くなるように、Ａ’（ｎ）、Ｓ１’（ｎ）、Ｓ２’（ｎ）を設定することが望ましい。
【００５８】
図４の例において、Ｂ’（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分の延長線（即ち、前述した二等分線の右半分）上で任意の位置にずらすことができる。Ｂ’（ｎ）が第１矩形２０１と第２矩形２０２とのうち少なくともいずれか一方に重なっていれば、第１矩形２０１及び第２矩形２０２の外側（「右折」の場合は右側）にポリゴンが設定されることはない。
【００５９】
図５及び６の例のように、Ｂ（ｎ）がＱ１（ｎ）及びＴ１（ｎ）を両端点とする辺とＴ２（ｎ）及びＲ２（ｎ）を両端点とする辺とのうち少なくともいずれか一方の上に存在する場合でも、算出部１０３は、図４の例のようなポリゴンの頂点列を算出してもよい。即ち、図５，６の例において、算出部１０３は、Ｓ１２で算出された頂点列にてＢ（ｎ）を補正してもよい。図示していないが、その場合、算出部１０３は、図４の例と同様に、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｔ１（ｎ）、Ｓ１（ｎ）、Ｂ’（ｎ）、Ａ’（ｎ）、Ｔ２（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列を算出する。この頂点列から形成される八つの三角形ポリゴンのうち、４及び６番目の二つのポリゴンが、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンである。３及び５番目のポリゴンは、バックフェイスカリングが適用されて非描画となる。
【００６０】
図４〜６の例において、高さの異なるポリゴン座標が存在する場合がある。その場合に、二次元位置（即ち、高さを無視した位置）が第１矩形２０１と重なるポリゴン座標が存在するのであれば、そのポリゴン座標の高さは、第１矩形２０１の面の高さに補正される。同様に、二次元位置が第２矩形２０２と重なるポリゴン座標が存在するのであれば、そのポリゴン座標の高さは、第２矩形２０２の面の高さに補正される。例えば、図４に示したＴ１（ｎ）の二次元位置は第２矩形２０２と重なっているため、Ｔ１（ｎ）の高さが第２矩形２０２の面の当該位置における高さと異なる場合、Ｔ１（ｎ）の高さが補正される。
【００６１】
Ｓ１５において、算出部１０３は、Ｓ１２の通常ポリゴン座標算出処理、或いは、Ｓ１４の曲がり角ポリゴン座標算出処理で算出したポリゴン座標をモデルに設定する。ポリゴンの法線は、真上（ポリゴンに対して垂直な単位ベクトル）を向くように設定される。
【００６２】
本例では、Ｐ（ｎ）について、通常ポリゴン座標算出処理の後に曲がり角ポリゴン座標算出処理が実行され、その後、Ｐ（ｎ＋１）等の他の点についても、同様の処理が実行される。しかし、各点について、曲がり角ポリゴン座標算出処理の後に通常ポリゴン座標算出処理が実行されてもよい。或いは、各点について、通常ポリゴン座標算出処理と同時に曲がり角ポリゴン座標算出処理が実行されてもよい。或いは、全ての点について、通常ポリゴン座標算出処理が実行された後に、各点について、曲がり角ポリゴン座標算出処理が実行されてもよい。各処理の順序は適宜変更することができる。Ｓ１３は省略可能である。つまり、全ての点について、通常ポリゴン座標算出処理の結果に関わらず、曲がり角ポリゴン座標算出処理が実行されてもよい。
【００６３】
設定部１０４は、通常ポリゴン座標算出処理により生成されたポリゴンのテクスチャ及びマテリアルと、曲がり角ポリゴン座標算出処理により生成されたポリゴンのテクスチャ及びマテリアルとを同じ方法で設定してもよいし、異なる方法で設定してもよい。
【００６４】
描画部１０５は、Ｓ１５で算出部１０３により設定された頂点列から形成されるポリゴンを描画する。本実施の形態をナビゲーション機器に適用する場合、描画部１０５は、道路又は移動経路を表すポリゴンを地図上に描画する。描画部１０５、或いは、描画装置１００の外部の表示部（図示していない）は、この地図をナビゲーション機器の画面に表示する。
【００６５】
本実施の形態では、図３〜６の例のように、ポリラインを左右に所定間隔だけ平行に広げて幅付けした第１矩形２０１と第２矩形２０２との接続部分に生じる隙間をポリゴンで埋めて、その接続部分を自然な形状に整えることが可能となる。特に、図４〜６の例のように、Ｐ（ｎ−１）及びＰ（ｎ）を両端点とする線分と、Ｐ（ｎ）及びＰ（ｎ＋１）を両端点とする線分とのなす角度が小さいとき、或いは、第１矩形２０１と第２矩形２０２との少なくともいずれかの長さが短いときでも、ポリゴンの頂点を補正することで、上記接続部分を自然な形状に整えることが可能となる。
【００６６】
また、本実施の形態では、第１矩形２０１と第２矩形２０２との曲がり角周辺箇所に対し、表示したい目的の形状のポリゴンではなく、バックフェイスカリングを利用して非描画とすることを考慮したポリゴンの頂点座標を設定することで、少ない頂点数で太線のポリゴンを描画することができる。即ち、本実施の形態では、バックフェイスカリングにより、表示に不要な箇所は非描画、表示に必要な箇所は描画とすることができる。そのため、高速に太線を描画することが可能となる。
【００６７】
曲がり角ポリゴン座標算出処理で算出されるポリゴンには、通常のテクスチャ座標の設定方法を利用でき、例外処理を設ける必要がない。そのため、高速にテクスチャを貼り付けることが可能である。
【００６８】
実施の形態２．
本実施の形態について、主に実施の形態１との差異を説明する。
【００６９】
実施の形態１では、ポリゴンの頂点座標を補正することで、第１矩形２０１と第２矩形２０２との接続部分を自然な形状に整えている。一方、本実施の形態では、一部が透過なテクスチャを使用することで、第１矩形２０１と第２矩形２０２との接続部分を自然な形状に整える。本実施の形態では、ポリゴンの頂点座標を補正することは必須ではない。
【００７０】
本実施の形態に係る描画装置１００の構成は、図１に示した実施の形態１のものと同じである。
【００７１】
以下では、算出部１０３がポリゴンを生成し、設定部１０４がポリゴンのテクスチャを設定する動作について、図２を参照しながら説明する。
【００７２】
図７は、算出部１０３により生成されるポリゴンと設定部１０４により設定されるテクスチャとの例を示す図である。図８は、設定部１０４により設定されるテクスチャの例を示す図である。なお、図７では、便宜上、隣接する三角形のポリゴンに異なるハッチングを用いているが、ハッチングの違いはテクスチャの違いを表すものではない。即ち、図７の例では、いくつか又は全てのポリゴンに共通のテクスチャを適用してもよい。ただし、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンには、透過部分３０１と不透過部分３０２とが混在するテクスチャを適用する。
【００７３】
図７の例において、第１矩形２０１及び第２矩形２０２は、図６の例と同じ矩形である。Ａ（ｎ）及びＢ（ｎ）も、図６の例と同じ点である。
【００７４】
Ｓ１１〜Ｓ１５の処理については、実施の形態１とほとんど同じである。ただし、本実施の形態では、Ｓ１３及びＳ１４の処理は省略可能である。即ち、Ｐ（ｎ）等のいずれの点についても、曲がり角ポリゴン座標算出処理が実行されなくてよい。また、曲がり角ポリゴン座標算出処理が実行される場合であっても、Ａ’（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分上のＰ（ｎ）以外の一点であればよい。即ち、Ａ’（ｎ）は、Ａ（ｎ）であってもよい。
【００７５】
図７の例では、図６の例と同様に、Ｐ（ｎ）及びＡ（ｎ）間の距離が長くなっている。そのため、実施の形態１を適用する場合には、Ｓ１３において、算出部１０３は、Ｓ１２で算出した座標の補正が必要であると判定する。しかし、本実施の形態を適用する場合には、算出部１０３は、補正が必要ないと判定してもよい。図７の例では、補正が必要であると判定されたものとする。ただし、図６の例と異なり、Ａ（ｎ）は補正されていない。即ち、Ａ’（ｎ）は、Ａ（ｎ）と同じである。Ｓ１４において、算出部１０３は、Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）、Ｓ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を順番に含むトライアングルストリップ形式の頂点列を算出する。この頂点列からは、以下の八つの三角形ポリゴンが形成される。
・１番目のポリゴン：Ｑ１（ｎ）、Ｒ１（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・２番目のポリゴン：Ｒ１（ｎ）、Ｂ（ｎ）、Ｓ１（ｎ）を頂点とするポリゴン
・３番目のポリゴン：Ｂ（ｎ）、Ｓ１（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・４番目のポリゴン：Ｓ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）を頂点とするポリゴン
・５番目のポリゴン：Ｂ（ｎ）、Ａ（ｎ）、Ｂ（ｎ）を頂点とするポリゴン
・６番目のポリゴン：Ａ（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）を頂点とするポリゴン
・７番目のポリゴン：Ｂ（ｎ）、Ｓ２（ｎ）、Ｒ２（ｎ）を頂点とするポリゴン
・８番目のポリゴン：Ｓ２（ｎ）、Ｒ２（ｎ）、Ｑ２（ｎ）を頂点とするポリゴン
【００７６】
上記八つのうち、４及び６番目の二つのポリゴンが、第１矩形２０１と第２矩形２０２との間の隙間を埋めるポリゴンである。なお、３番目のポリゴンは、面積が０であるため、非描画となる。同様に、５番目のポリゴンは、面積が０であるため、非描画となる。よって、描画部１０５による描画処理では、１，２，４，６，７，８番目のポリゴンが順番に描画されることになる。
【００７７】
設定部１０４は、第１矩形２０１と第２矩形２０２との間の隙間を埋める二つのポリゴンに対しては、他のポリゴンと異なり、透過部分３０１を含むテクスチャを設定する。具体的には、設定部１０４は、Ｓ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）を頂点とするポリゴンのテクスチャとして、Ｓ１’（ｎ）からＣ（ｎ）までの境界線により透過部分３０１と不透過部分３０２とに分割されたテクスチャを設定する。同様に、設定部１０４は、Ａ（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）を頂点とするポリゴンのテクスチャとして、Ｓ２’（ｎ）からＣ（ｎ）までの境界線により透過部分３０１と不透過部分３０２とに分割されたテクスチャを設定する。Ｃ（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分と、Ｐ（ｎ）を中心としてＳ１（ｎ）及びＳ２（ｎ）を通過する円との交点である。Ｃ（ｎ）は、ポリゴンの頂点として設定された点ではない。Ｓ１’（ｎ）及びＳ２’（ｎ）は、それぞれＳ１（ｎ）及びＳ２（ｎ）である。
【００７８】
設定部１０４は、予め作成されたテクスチャの透過部分３０１と不透過部分３０２との境界線と、ポリゴンに設定するテクスチャの透過部分３０１と不透過部分３０２との境界線とが一致するように、ポリゴンに対してテクスチャを設定する。例えば、設定部１０４は、Ｓ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）を頂点とするポリゴンについて、図８に示すように、Ｓ１（ｎ）、Ｂ（ｎ）、Ａ（ｎ）、Ｃ（ｎ）の四つのポリゴン座標に対応するテクスチャ座標を算出する。設定部１０４は、Ａ（ｎ）、Ｂ（ｎ）、Ｓ２（ｎ）を頂点とするポリゴンについて、さらに、Ｓ２（ｎ）のポリゴン座標に対応するテクスチャ座標を算出する。
【００７９】
なお、図７の例において、透過部分３０１と不透過部分３０２との境界線の一端点としてのＣ（ｎ）は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分上で任意の位置にずらすことができる。Ｃ（ｎ）がＰ（ｎ）から少しでも離れていれば、第１矩形２０１と第２矩形２０２との間の隙間を一部でも埋めることができる。Ｃ（ｎ）がＡ（ｎ）から少しでも離れていれば、第１矩形２０１と第２矩形２０２との接続部分の肥大化を抑制する効果が得られる。即ち、Ｐ（ｎ）及びＡ（ｎ）間の距離が長くても、第１矩形２０１と第２矩形２０２との接続部分が大きく尖って見えないようにすることができる。
【００８０】
図７の例において、透過部分３０１と不透過部分３０２との境界線の他端点としてのＳ１’（ｎ）は、Ｓ１（ｎ）及びＡ（ｎ）を両端点とする線分上で任意の位置にずらすことができる。透過部分３０１と不透過部分３０２との境界線の他端点としてのＳ２’（ｎ）も、Ｓ２（ｎ）及びＡ（ｎ）を両端点とする線分上で任意の位置にずらすことができる。Ｓ１’（ｎ）又はＳ２’（ｎ）がＡ（ｎ）から少しでも離れていれば、第１矩形２０１と第２矩形２０２との接続部分の肥大化を抑制する効果が得られる。
【００８１】
透過部分３０１と不透過部分３０２との境界位置を決めるＣ（ｎ）、Ｓ１’（ｎ）、Ｓ２’（ｎ）の設定のしかたによっては、第１矩形２０１と第２矩形２０２との接続部分が凹状に見える場合がある。しかし、接続部分は、凸状のほうが、より自然である。したがって、設定部１０４は、Ｐ（ｎ）及びＡ（ｎ）を両端点とする線分と、Ｓ１’（ｎ）及びＳ２’（ｎ）を両端点とする線分との交点よりもＣ（ｎ）がＡ（ｎ）に近くなるように、Ｃ（ｎ）、Ｓ１’（ｎ）、Ｓ２’（ｎ）を設定することが望ましい。
【００８２】
描画部１０５は、Ｓ１５で算出部１０３により設定された頂点列から形成されるポリゴンを描画する。そして、描画部１０５は、描画したポリゴンに、設定部１０４により設定されたテクスチャを貼り付ける。本実施の形態をナビゲーション機器に適用する場合、描画部１０５は、道路を表すポリゴンを描画するか、又は、移動経路を表すポリゴンを地図上に描画し、各ポリゴンにテクスチャを貼り付ける。描画部１０５、或いは、描画装置１００の外部の表示部（図示していない）は、この地図をナビゲーション機器の画面に表示する。
【００８３】
本実施の形態では、図７の例のように、ポリラインを左右に所定間隔だけ平行に広げて幅付けした第１矩形２０１と第２矩形２０２との接続部分に生じる隙間をポリゴンで埋めて、透過部分３０１を含むテクスチャを貼り付けることにより、その接続部分を自然な形状に整えることが可能となる。
【００８４】
本実施の形態では、第１矩形２０１と第２矩形２０２との曲がり角周辺箇所に対し、一部が非表示となるテクスチャを貼り付けるだけで、曲がり角周辺の見た目を改善することができる。ポリゴン頂点座標を補正する処理を省くことで、より高速に太線を描画することも可能となる。
【００８５】
図９は、本発明の実施の形態に係る描画装置１００のハードウェア構成の一例を示す図である。
【００８６】
図９において、描画装置１００は、コンピュータであり、出力装置９１０、入力装置９２０、記憶装置９３０（即ち、記憶媒体）、処理装置９４０といったハードウェアを備える。ハードウェアは、描画装置１００の各部（本発明の実施の形態の説明において「部」として説明するもの）によって利用される。
【００８７】
出力装置９１０は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）等の表示装置、プリンタ、通信モジュール（通信回路等）である。出力装置９１０は、本発明の実施の形態の説明において「部」として説明するものによってデータ、情報、信号の出力（送信）のために利用される。
【００８８】
入力装置９２０は、例えば、キーボード、マウス、タッチパネル、通信モジュール（通信回路等）である。入力装置９２０は、本発明の実施の形態の説明において「部」として説明するものによってデータ、情報、信号の入力（受信）のために利用される。
【００８９】
記憶装置９３０は、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ・Ｓｔａｔｅ・Ｄｒｉｖｅ）である。記憶装置９３０には、プログラム９３１、ファイル９３２が記憶される。プログラム９３１には、本発明の実施の形態の説明において「部」として説明するものの処理（機能）を実行するプログラムが含まれる。ファイル９３２には、本発明の実施の形態の説明において「部」として説明するものによって演算、加工、読み取り、書き込み、利用、入力、出力等が行われるデータ、情報、信号（値）等が含まれる。
【００９０】
処理装置９４０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。処理装置９４０は、バス等を介して他のハードウェアデバイスと接続され、それらのハードウェアデバイスを制御する。処理装置９４０は、記憶装置９３０からプログラム９３１を読み出し、プログラム９３１を実行する。処理装置９４０は、本発明の実施の形態の説明において「部」として説明するものによって演算、加工、読み取り、書き込み、利用、入力、出力等を行うために利用される。
【００９１】
本発明の実施の形態の説明において「部」として説明するものは、「部」を「回路」、「装置」、「機器」に読み替えたものであってもよい。また、本発明の実施の形態の説明において「部」として説明するものは、「部」を「工程」、「手順」、「処理」に読み替えたものであってもよい。即ち、本発明の実施の形態の説明において「部」として説明するものは、ソフトウェアのみ、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせで実現される。ソフトウェアは、プログラム９３１として、記憶装置９３０に記憶される。プログラム９３１は、本発明の実施の形態の説明において「部」として説明するものとしてコンピュータを機能させるものである。或いは、プログラム９３１は、本発明の実施の形態の説明において「部」として説明するものの処理をコンピュータに実行させるものである。
【００９２】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか一つ又はいくつかを部分的に実施しても構わない。例えば、これらの実施の形態の説明において「部」として説明するもののうち、いずれか一つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００９３】
１００  描画装置、１０１  生成部、１０２  格納部、１０３  算出部、１０４  設定部、１０５  描画部、１１０  描画データ構築部、２０１  第１矩形、２０２  第２矩形、３０１  透過部分、３０２  不透過部分、９１０  出力装置、９２０  入力装置、９３０  記憶装置、９３１  プログラム、９３２  ファイル、９４０  処理装置。
【図１】
2015173885.tif 000003
【図２】
2015173885.tif 000004
【図３】
2015173885.tif 000005
【図４】
2015173885.tif 000006
【図５】
2015173885.tif 000007
【図６】
2015173885.tif 000008
【図７】
2015173885.tif 000009
【図８】
2015173885.tif 000010
【図９】
2015173885.tif 000011
【手続補正書】
【提出日】平成28年4月18日(2016.4.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画装置であって、
前記第１矩形と前記第２矩形とを定義するデータを格納する格納部と、
前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記格納部に格納されたデータに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出する算出部と、
前記算出部により算出された頂点列から形成されるポリゴンを描画する描画部と
を備え、
前記算出部は、前記第１辺の両端点のうちＳ１と逆側にある端点をＴ１、前記第２辺の両端点のうちＳ２と逆側にある端点をＴ２とし、前記第１辺に垂直でＴ１を一端点とする辺と前記第２辺に垂直でＴ２を一端点とする辺とのうち少なくともいずれか一方と、Ｐ及びＡを両端点とする線分の延長線との交点であるＢが存在する場合、Ｂを前記頂点列に含める描画装置。
【請求項２】
前記算出部は、前記頂点列として、Ｂ、Ｓ１’、Ｂ、Ａ’、Ｂ、Ｓ２’を順番に含むトライアングルストリップ形式の頂点列を算出する請求項１に記載の描画装置。
【請求項３】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画装置であって、
前記第１矩形と前記第２矩形とを定義するデータを格納する格納部と、
前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記格納部に格納されたデータに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出する算出部と、
前記算出部により算出された頂点列から形成されるポリゴンを描画する描画部と
を備え、
前記算出部は、前記第１辺の両端点のうちＳ１と逆側にある端点をＴ１、前記第２辺の両端点のうちＳ２と逆側にある端点をＴ２とし、前記第１辺に垂直でＴ１を一端点とする辺と前記第２辺に垂直でＴ２を一端点とする辺とのうち少なくともいずれか一方と、Ｐ及びＡを両端点とする線分の延長線との交点であるＢが存在しない場合、Ｐ及びＡを両端点とする線分の延長線上で前記第１矩形と前記第２矩形とのうち少なくともいずれか一方に重なる点であるＢ’を前記頂点列に含める描画装置。
【請求項４】
前記算出部は、前記頂点列として、Ｔ１、Ｓ１’、Ｂ’、Ａ’、Ｔ２、Ｓ２’を順番に含むトライアングルストリップ形式の頂点列を算出する請求項３に記載の描画装置。
【請求項５】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画装置であって、
前記第１矩形と前記第２矩形とを定義するデータを格納する格納部と、
前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記格納部に格納されたデータに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出する算出部と、
前記算出部により算出された頂点列に含まれるＡ’及びＳ１’をそれぞれ一頂点とするポリゴンのテクスチャとして、Ｓ１’から、Ｐ及びＡを両端点とする線分上のＰ及びＡ’間の一点までの境界線により透過部分と不透過部分とに分割されたテクスチャを設定する設定部と、
前記算出部により算出された頂点列から形成されるポリゴンを描画し、描画したポリゴンに、前記設定部により設定されたテクスチャを貼り付ける描画部と
を備える描画装置。
【請求項６】
前記設定部は、前記算出部により算出された頂点列に含まれるＡ’及びＳ２’をそれぞれ一頂点とするポリゴンのテクスチャとして、Ｓ２’の位置から、Ｐ及びＡを両端点とする線分上のＰ及びＡ’間の位置までの境界線により透過部分と不透過部分とに分割されたテクスチャを設定する請求項５に記載の描画装置。
【請求項７】
前記描画部は、前記ポリゴンとして、移動経路を表すポリゴンを地図上に描画する請求項１から６のいずれか１項に記載の描画装置。
【請求項８】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画方法であって、
前記第１矩形と前記第２矩形とを定義するデータを記憶媒体に格納するコンピュータが、前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記データに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出し、
前記コンピュータが、前記頂点列から形成されるポリゴンを描画し、
前記コンピュータが、前記第１辺の両端点のうちＳ１と逆側にある端点をＴ１、前記第２辺の両端点のうちＳ２と逆側にある端点をＴ２とし、前記第１辺に垂直でＴ１を一端点とする辺と前記第２辺に垂直でＴ２を一端点とする辺とのうち少なくともいずれか一方と、Ｐ及びＡを両端点とする線分の延長線との交点であるＢが存在する場合、Ｂを前記頂点列に含める描画方法。
【請求項９】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画方法であって、
前記第１矩形と前記第２矩形とを定義するデータを記憶媒体に格納するコンピュータが、前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記データに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出し、
前記コンピュータが、前記頂点列から形成されるポリゴンを描画し、
前記コンピュータが、前記第１辺の両端点のうちＳ１と逆側にある端点をＴ１、前記第２辺の両端点のうちＳ２と逆側にある端点をＴ２とし、前記第１辺に垂直でＴ１を一端点とする辺と前記第２辺に垂直でＴ２を一端点とする辺とのうち少なくともいずれか一方と、Ｐ及びＡを両端点とする線分の延長線との交点であるＢが存在しない場合、Ｐ及びＡを両端点とする線分の延長線上で前記第１矩形と前記第２矩形とのうち少なくともいずれか一方に重なる点であるＢ’を前記頂点列に含める描画方法。
【請求項１０】
第１辺を有する第１矩形と、前記第１辺と交差する第２辺を有する第２矩形との間に生じ、前記第１辺と前記第２辺との交点と、前記第１辺の一端点と、前記第２辺の一端点とを頂点とする三角形の隙間を埋める描画方法であって、
前記第１矩形と前記第２矩形とを定義するデータを記憶媒体に格納するコンピュータが、前記第１辺と前記第２辺との交点をＰ、前記第１辺の両端点のうち前記三角形の一頂点である端点をＳ１、前記第２辺の両端点のうち前記三角形の一頂点である端点をＳ２、前記第１辺に垂直でＳ１を一端点とする辺の延長線と前記第２辺に垂直でＳ２を一端点とする辺の延長線との交点をＡとし、前記データに基づき、前記隙間を埋めるポリゴンの頂点として、Ｐ及びＡを両端点とする線分上のＰ以外の一点であるＡ’と、Ｓ１及びＡを両端点とする線分上のＡ以外の一点であるＳ１’と、Ｓ２及びＡを両端点とする線分上のＡ以外の一点であるＳ２’とを含む頂点列を算出し、
前記コンピュータが、前記頂点列に含まれるＡ’及びＳ１’をそれぞれ一頂点とするポリゴンのテクスチャとして、Ｓ１’から、Ｐ及びＡを両端点とする線分上のＰ及びＡ’間の一点までの境界線により透過部分と不透過部分とに分割されたテクスチャを設定し、
前記コンピュータが、前記頂点列から形成されるポリゴンを描画し、描画したポリゴンに、前記テクスチャを貼り付ける描画方法。
【国際調査報告】
2015173885.tif 000012
2015173885.tif 000013