説明

図形描画処理装置、図形描画処理方法、及びコンピュータプログラム

【課題】 2次元パラメトリック曲線を含んだ図形を3次元変形して描画する際のメモリの使用量と計算負荷とを抑制する。
【解決手段】 2次元パラメトリック曲線(2次ベジェ曲線402)の端点P、R、特徴点Mの座標を、当該2次元パラメトリック曲線に対する3次元変形情報に基づいて写像変換する。そして、写像変換した点P´、R´、M´の座標に基づいて、点M´を通り、且つ、点P´、R´を端点とする2次元パラメトリック曲線の制御点Q´を求める。そして、端点P´、R´と制御点Q´とで構成される2次元パラメトリック曲線(2次ベジェ曲線501)を求めて描画する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、図形描画処理装置、図形描画処理方法、及びコンピュータプログラムに関し、特に、2次元パラメトリック曲線を含んだ図形を3次元の図形に変形して描画するために用いて好適なものである。
【背景技術】
【0002】
2次元パラメトリック曲線を3次元変形して描画する方法として、ポリゴンを生成して3次元仮想空間内で変形し、変形したポリゴンに対して透視投影変換を行うことで描画を行うことが一般的である。ポリゴンを描画する方法は3次元グラフィックスの描画インターフェースであるOpenGL(登録商標)で提供されている機能で実現できる。また、文字の輪郭をポリゴンに変換して3次元の文字形状データを生成し、ポリゴンを描画するという提案がされている(特許文献1を参照)。
また、複雑な図形については、2次元ビットマップに一度グラフィックスを描画し、2次元ビットマップに描画したグラフィックスを3次元仮想空間内で変形して描画するという方法も知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−260008号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、処理能力の高くない組込み機器において、2次元パラメトリック曲線を含んだ複雑な図形を3次元変形して描画するには、従来の方法では問題があった。すなわち、ポリゴンを生成して描画する方法では、図形を細かく三角形に分割し、分割した三角形の頂点の座標を保持する必要があるため、メモリの使用量が増大するという問題があった。また、グラフィックスを2次元ビットマップに一度描画して3次元変形し描画する方法でも、2次元ビットマップのメモリを確保する必要があるため、メモリの使用量が増大するという問題があった。また、一度2次元ビットマップに変換してから3次元変形を行うため、計算コストが高くなるという問題もあった。
本発明は、以上の問題点に鑑みてなされたものであり、2次元パラメトリック曲線を含んだ図形を3次元変形して描画する際のメモリの使用量と計算負荷とを抑制することを目的とする。
【課題を解決するための手段】
【0005】
本発明の図形描画処理装置は、2次元パラメトリック曲線を含んだ図形を3次元変形して描画する図形描画処理装置であって、前記2次元パラメトリック曲線の点に対して3次元変形に対応する写像を行うための行列の情報である3次元変形情報を取得する3次元変形情報取得手段と、前記2次元パラメトリック曲線の第1の端点の情報と第1の制御点の情報とから、前記2次元パラメトリック曲線の第1の特徴点を抽出する特徴点抽出手段と、前記第1の端点を前記3次元変形情報に従って写像し、第2の端点の座標を求める端点写像手段と、前記第1の特徴点を前記3次元変形情報に従って写像し、第2の特徴点の座標を計算する特徴点写像手段と、前記第2の端点と前記第2の特徴点とを通る2次元パラメトリック曲線の第2の制御点を求める制御点計算手段と、前記第2の端点と前記第2の制御点とに基づいて構成される2次元パラメトリック曲線を描画する描画手段と、を有することを特徴とする。
【発明の効果】
【0006】
本発明によれば、3次元変形処理がかかった2次パラメトリック曲線を、別の2次パラメトリック曲線に近似して描画するので、2次元パラメトリック曲線を含んだ図形を3次元変形して描画する際のメモリの使用量と計算負荷とを抑制することができる。
【図面の簡単な説明】
【0007】
【図1】図形描画処理装置のハードウェアの構成を示す図である。
【図2】図形描画処理装置100の機能的な構成を示す図である。
【図3】図形描画処理装置の動作の一例を説明するフローチャートである。
【図4】2次元パラメトリック曲線(2次ベジェ曲線)を示す図である。
【図5】2次元パラメトリック曲線を3次元変形して描画した画像を示す図である。
【発明を実施するための形態】
【0008】
以下に、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
まず、第1の実施形態について説明する。
図1は、図形描画処理装置のハードウェアの構成の一例を示す図である。
図1において、CPU102は、図形描画処理装置100に装備されている各機能を実行、制御する。ROM103は、変更を必要としないプログラムや各種パラメータ等を格納する。RAM104は、SDRAM、DRAM等によって構成され、外部装置等から供給されるプログラムやデータを一時的に記憶する。表示ユニット105は、プログラムによって描画されたグラフィックスを出力(表示)する。インターフェース106は、外部装置との通信を行う通信インターフェースや、ユーザが入力操作を行うユーザインターフェース等を備える。バス101は、システムバスであって、CPU102、ROM103、RAM104、表示ユニット105、インターフェース106を相互に接続する。
【0009】
図2は、図形描画処理装置100の機能的な構成の一例を示す図である。また、図3は、2次元パラメトリック曲線を含んだ図形を3次元変形して描画する際の図形描画処理装置100の動作の一例を説明するフローチャートである。図2及び図3を参照して、図形描画処理装置100の処理の流れの一例を説明する。尚、図2に示す機能は、例えば、CPU102が、ROM103に格納されているコンピュータプログラムを、RAM104をワークエリアとして実行して画像データを生成し、その画像データに基づいて表示ユニット105に画像を表示することにより実現される。
まず、3次元変形情報取得部201は、描画処理の対象となる図形に対する3次元変形情報を取得する(ステップS301)。ステップS301で取得される3次元変形情報は、3×3の行列で表現される。本実施形態では、以下の(1)式に示した行列が3次元変形情報であるとする。ここで、3次元変形情報は、2次元パラメトリック曲線上の点に対して3次元変形に対応する写像を行うための行列の情報である。また、3次元変形情報は、例えば、ユーザによるインターフェース106の操作に基づいて予め取得される。
【0010】
【数1】

【0011】
次に、曲線パラメータ取得部202は、描画処理を行う2次元パラメトリック曲線のパラメータとして、端点(第1の端点)の座標値と制御点(第1の制御点)の座標値とを取得する(ステップS302)。2次元パラメトリック曲線は、X、Yの座標値が媒介変数によって決定されるように表現された曲線である。この媒介変数を連続的に変化させることで2次元パラメトリック曲線を得ることができる。ここでは、2次元パラメトリック曲線が、以下の(2)式、(3)式で表される場合を例に挙げて説明する。
【0012】
【数2】

【0013】
(2)式、(3)式に示す例では、X、Y座標は、共に、次数が2のtを媒介変数とする多項式で表現されている。媒介変数tを0から1まで連続的に変化させたときの点の集合は2次ベジェ曲線と呼ばれている。
図4は、2次元パラメトリック曲線(2次ベジェ曲線)の一例を示す図である。図4(a)は、端点P、R及び制御点Qの座標値が、それぞれ点P(X0,Y0)、点R(X2,Y2)、点Q(X1,Y1)である場合の2次ベジェ曲線401を示す。2次ベジェ曲線401は、(2)式、(3)式をXY平面上に示すことにより得られる。図4(a)において、2次ベジェ曲線401は、点P(X0,Y0)と点R(X2,Y2)とを端点とし、点Q(X1,Y1)を制御点とするものとなっている。端点P、R及び制御点Qの座標値は、(2)式、(3)式における媒介変数tにかかる係数から一意に求まることは明らかである。ここで、本実施形態では、端点P、R及び制御点Qの座標値が、それぞれ点P(50,150)、点Q(100,30)、点R(180,100)である場合を例に挙げて説明する。図4(b)は、点P、点Q、点Rにこれらの座標値を代入したときの2次ベジェ曲線402を示す。
【0014】
次に、特徴点抽出部203において、2次パラメトリック曲線の特徴点(第1の特徴点)として、2次ベジェ曲線402の媒介変数tが0.5となる点Mを抽出する(ステップS303)。特徴点Mの座標は、(2)式、(3)式に、点P、点Q、点Rのそれぞれの座標値と媒介変数t(ここでは0.5)の値とを代入する。これにより、特徴点Mの座標値として、(107.5,77.5)が得られる。
【0015】
次に、端点写像部204は、ステップS301で取得された3次元変形情報をもとに、ステップS302で取得された端点P、Rの座標を写像変換する(ステップS304)。以下に示す(4)式は、任意の点X(x,y)を、(1)式に示した行列で写像変換することを表したものである。
【0016】
【数3】

【0017】
(4)式において、点Xの座標を同次座標系で表現している。点Xの写像の像を点X´とすると、点X´の座標は、(4)式の右辺に示した式で表現される。(4)式の右辺の点X´の座標も同次座標系で表現されたものである。点X´の座標を実際の座標系に直すと、点X´の座標は、以下の(5)式で表現される。
【0018】
【数4】

【0019】
ここで、(5)式に、端点P及び端点Rの座標値を代入する。写像変換による端点Pの像を点P´、端点Rの像を点R´とする。そうすると、点P´(第2の端点)の座標は(140,94.3)、点R´(第2の端点)の座標は(206.7,73.3)となる。
以上の端点P、Rの写像変換と同様に、特徴点写像部205は、特徴点Mの写像変換を行う(ステップS305)。写像による特徴点Mの像を点M´とすると、点M´(第2の特徴点)の座標は(150.1,61.5)となる。
【0020】
次に、制御点計算部206は、点M´を通り、且つ、点P´、点R´を端点とする2次元パラメトリック曲線(2次ベジェ曲線)の制御点Q´を計算する(ステップS306)。ここで、点Q´の計算方法の一例について詳しく説明する。点P´、点R´を端点とし、点Q´を制御点としたときの2次ベジェ曲線は、以下の(6)式のように表現される。媒介変数tが0.5のときに点M´となるようにすると、(6)式から以下の(7)式が成立する。(7)式をQ´について解くと、以下の(8)式が得られる。(8)式に各点P´、R´、M´の座標値を代入すると、制御点Q´(第2の制御点)の座標値として(126.9,39.2)が得られる。
【0021】
【数5】

【0022】
最後に、描画処理部207は、ステップS304で求められた端点P´、R´と、ステップS306で求められた制御点Q´とで構成される2次ベジェ曲線を描画する(ステップS307)。図5は、2次元パラメトリック曲線を3次元変形して描画された画像(2次ベジェ曲線501)の一例を示す図である。以上の処理によって、3次元変形処理がかかった2次ベジェ曲線402を、別の2次ベジェ曲線501に近似して描画することが可能になる。
【0023】
以上のように本実施形態では、2次元パラメトリック曲線(2次ベジェ曲線402)の端点P、R、特徴点Mの座標を、当該2次元パラメトリック曲線に対する3次元変形情報に基づいて写像変換する。そして、写像変換した点P´、R´、M´の座標に基づいて、点M´を通り、且つ、点P´、R´を端点とする2次元パラメトリック曲線の制御点Q´を求める。そして、端点P´、R´と制御点Q´とで構成される2次元パラメトリック曲線(2次ベジェ曲線501)を求めて描画する。したがって、図形を細かく三角形に分割し、三角形の頂点の座標情報を保持する必要がなく、また、図形を2次元ビットマップに描画する必要がなくなる。よって、2次元パラメトリック曲線を含んだ図形を3次元変形して描画する際のメモリの使用量を低減することができる。また、3次元変形後の2次元パラメトリック曲線を、別の2次元パラメトリック曲線として描画するので、高速な描画処理が可能になる。
【0024】
尚、本実施形態では、2次元パラメトリック曲線の特徴点として媒介変数tが0.5となる点を選択した。しかしながら、2次元パラメトリック曲線の特徴を表す点であれば、他の特徴点を用いても構わない。例えば、2次元パラメトリック曲線において、曲率が大きい部分は曲線の曲がり方が急であり、曲線に対する印象に与える影響が大きい。よって、2次元パラメトリック曲線において、曲率が最大となる点を特徴点としても構わない。また、本実施形態では、2次ベジェ曲線を例に挙げて説明したが、これ以外の例えば3次ベジェ曲線であっても構わない。3次ベジェ曲線の場合には、媒介変数の次数が3になるので、2つの特徴点を必要とする。また、制御点も2つ必要になる。
【0025】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態では、描画対象となる図形が、アウトラインフォントであり、文字列を描画する場合について説明する。本実施形態では、第1の実施形態で説明した処理に加えて、文字列の書字の方向を取得し、取得した結果に基づいて特徴点を決定する。このように本実施形態と第1の実施形態とは、2次元パラメトリック曲線の第1の特徴点を抽出する方法の一部が異なり、これにより、第2の制御点を求める方法の一部が異なる。したがって、本実施形態の説明において第1の実施形態と同一の部分については、図1〜図5に付した符号と同一の符号を付す等して詳細な説明を省略する。
【0026】
具体的に本実施形態と第1の実施形態とは、図3のステップS303とS306の処理の一部が主として異なる。本実施形態のステップS303の処理(特徴点を抽出する処理)の一例について説明する。
特徴点抽出部203は、第1の実施形態で説明した機能に加えて、入力された文字列の書字の方向を取得(検出)する書字方向取得処理を実行する機能を有する。特徴点抽出部203は、書字の方向の検出結果から、文字列が横書きであると判定された場合には、2次パラメトリック曲線(例えば2次ベジェ曲線)の特徴点としてY軸方向の極値となる点を選択する。ここで、Y軸方向の極値とは、2次パラメトリック曲線(例えば2次ベジェ曲線)の接線がX軸と平行になる点である。尚、2次パラメトリック曲線(例えば2次ベジェ曲線)上にY軸方向の極値となる点が存在しない場合は、第1の実施形態で説明した方法でレンダリングするようにしてもよい。
【0027】
図4(b)に示した2次ベジェ曲線402の例では、2次ベジェ曲線402の媒介変数tが0.63(t=0.63)となる点がY座標方向の極値となる点である。ここで求まった点をNとする。点Nは、ステップS305における処理で写像変換される。写像変換による点Nの像を点N´(第2の特徴点)とする。
次に、ステップS306における制御点Q´(第2の制御点)の計算方法の一例について説明する。ここでは、点N´を通り、且つ、点P´と点R´を端点とし、更に点N´においてY軸方向の極値となるような2次元パラメトリック曲線(2次ベジェ曲線)を構成する制御点Q´を求める場合を例に挙げて説明する。
点P´、点R´を端点とし、点Q´を制御点としたときの2次ベジェ曲線は、(9)式のように表される。媒介変数tがTのときに点N´となるようにすると、(9)式から以下の(10)式が成立する。また、点N´においてY軸方向の極値となるようにすると、(10)式から以下の(11)式が成立する。ここで、Py´は点P´のY座標であり、Qy´は点Q´のY座標であり、Ry´は点R´のY座標である。
【0028】
【数6】

【0029】
(10)式、(11)式の連立方程式を解き、媒介変数tが0と1との間となる値を解とすると、t=0.613となる。よって、点Q´の座標は(132.5,37.3)となる。描画処理部207は、以上の計算によって求まった端点P´、R´及び制御点Q´によって定義される2次ベジェ曲線を描画する。
横書き文字のアウトラインフォントは一般的に高さ方向が固定の長さになっていることが多い。そのため、書字の方向が横向きの場合には、以上の本実施形態の方法で近似した2次ベジェ曲線を描画することにより、文字の高さ方向の長さを揃えることが可能である。一方、縦書き文字のフォントを描画する場合には、前述したのと同様の理由でX軸方向の極値となる点を特徴点とすることで、文字の幅方向の長さを揃えることができる。
【0030】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【0031】
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【0032】
100 図形描画処理装置、102 CPU、103 ROM

【特許請求の範囲】
【請求項1】
2次元パラメトリック曲線を含んだ図形を3次元変形して描画する図形描画処理装置であって、
前記2次元パラメトリック曲線の点に対して3次元変形に対応する写像を行うための行列の情報である3次元変形情報を取得する3次元変形情報取得手段と、
前記2次元パラメトリック曲線の第1の端点の情報と第1の制御点の情報とから、前記2次元パラメトリック曲線の第1の特徴点を抽出する特徴点抽出手段と、
前記第1の端点を前記3次元変形情報に従って写像し、第2の端点の座標を求める端点写像手段と、
前記第1の特徴点を前記3次元変形情報に従って写像し、第2の特徴点の座標を計算する特徴点写像手段と、
前記第2の端点と前記第2の特徴点とを通る2次元パラメトリック曲線の第2の制御点を求める制御点計算手段と、
前記第2の端点と前記第2の制御点とに基づいて構成される2次元パラメトリック曲線を描画する描画手段と、を有することを特徴とする図形描画処理装置。
【請求項2】
前記特徴点抽出手段は、前記2次元パラメトリック曲線の曲率が最大となる点を前記特徴点として求めることを特徴とする請求項1に記載の図形描画処理装置。
【請求項3】
前記特徴点抽出手段は、前記2次元パラメトリック曲線のX軸あるいはY軸方向の極値を前記特徴点として求めることを特徴とする請求項1に記載の図形描画処理装置。
【請求項4】
前記2次元パラメトリック曲線が文字を構成しているときに、当該文字の書字の方向を取得する書字方向取得手段を有し、
前記特徴点抽出手段は、前記書字の方向が横書きに対応する方向であれば、前記2次元パラメトリック曲線のY軸方向の極値を前記特徴点として求め、前記書字の方向が縦書きに対応する方向であれば、前記2次元パラメトリック曲線のX軸方向の極値を前記特徴点として求めることを特徴とする請求項1に記載の図形描画処理装置。
【請求項5】
2次元パラメトリック曲線を含んだ図形を3次元変形して描画する図形描画処理方法であって、
前記2次元パラメトリック曲線の点に対して3次元変形に対応する写像を行うための行列の情報である3次元変形情報を取得する3次元変形情報取得工程と、
前記2次元パラメトリック曲線の第1の端点の情報と第1の制御点の情報とから、前記2次元パラメトリック曲線の第1の特徴点を抽出する特徴点抽出工程と、
前記第1の端点を前記3次元変形情報に従って写像し、第2の端点の座標を求める端点写像工程と、
前記第1の特徴点を前記3次元変形情報に従って写像し、第2の特徴点の座標を計算する特徴点写像工程と、
前記第2の端点と前記第2の特徴点とを通る2次元パラメトリック曲線の第2の制御点を求める制御点計算工程と、
前記第2の端点と前記第2の制御点とに基づいて構成される2次元パラメトリック曲線を描画する描画工程と、を有することを特徴とする図形描画処理方法。
【請求項6】
前記特徴点抽出工程は、前記2次元パラメトリック曲線の曲率が最大となる点を前記特徴点として求めることを特徴とする請求項5に記載の図形描画処理方法。
【請求項7】
前記特徴点抽出工程は、前記2次元パラメトリック曲線のX軸あるいはY軸方向の極値を前記特徴点として求めることを特徴とする請求項5に記載の図形描画処理方法。
【請求項8】
前記2次元パラメトリック曲線が文字を構成しているときに、当該文字の書字の方向を取得する書字方向取得工程を有し、
前記特徴点抽出工程は、前記書字の方向が横書きに対応する方向であれば、前記2次元パラメトリック曲線のY軸方向の極値を前記特徴点として求め、前記書字の方向が縦書きに対応する方向であれば、前記2次元パラメトリック曲線のX軸方向の極値を前記特徴点として求めることを特徴とする請求項5に記載の図形描画処理方法。
【請求項9】
2次元パラメトリック曲線を含んだ図形を3次元変形して描画するための処理をコンピュータに実行させるためのコンピュータプログラムであって、
前記2次元パラメトリック曲線の点に対して3次元変形に対応する写像を行うための行列の情報である3次元変形情報を取得する3次元変形情報取得工程と、
前記2次元パラメトリック曲線の第1の端点の情報と第1の制御点の情報とから、前記2次元パラメトリック曲線の第1の特徴点を抽出する特徴点抽出工程と、
前記第1の端点を前記3次元変形情報に従って写像し、第2の端点の座標を求める端点写像工程と、
前記第1の特徴点を前記3次元変形情報に従って写像し、第2の特徴点の座標を計算する特徴点写像工程と、
前記第2の端点と前記第2の特徴点とを通る2次元パラメトリック曲線の第2の制御点を求める制御点計算工程と、
前記第2の端点と前記第2の制御点とに基づいて構成される2次元パラメトリック曲線を描画するための画像データを生成する描画工程と、をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−98951(P2012−98951A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−246635(P2010−246635)
【出願日】平成22年11月2日(2010.11.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】