以下、本発明の描画順決定装置、描画制御装置、レーザ照射装置、最適化フォントDB、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体を適用した実施の形態について説明する。
ここでは、「描画対象」なる文言は、文字、数字、記号、図形等の描画の対象を表すものとして用いる。また、「文字」とは、遍(へん)や旁(つくり)、又は、更にその一部等、文字の全体又は一部を表す文言として用いる。同様に、「数字」、「記号」、「図形」は、数字、記号、図形の全体又は一部を表す文言として用いる。
また、「線分」とは、文字等の描画対象に含まれ、描画対象を描画するために両端の座標が決まっている区間をいう。この線分は、直線の一部だけでなく、曲線の一部も含み、太さを有する。
また、「一筆部品」とは、描画が開始される位置から次に描画が終了される位置までに連続的に描画される一又は複数の線分を含むものとして用いる。例えば、レーザ照射で描画を行う場合は、レーザの1回の照射開始点から照射終了点までに描画される文字等の一画が一筆部品となる。
このため、文字、数字、記号、図形等の描画対象は、1以上の一筆部品を含み、一筆部品は、1以上の線分を含む。
また、「空走区間」なる文言は、描画対象に含まれる一の線分の端点Aと、他の線分の端点Bが離間している場合において、端点Aの次に他の線分の描画を行うべく端点Bに描画位置を移動するために空走する場合の区間ABいう。
また、「空走線分」なる文言は、空走区間ABを仮想的な線分として表す場合に用いる。
なお、実施の形態の一筆部品(一画)は、従来のストロークフォントのストロークに対応するが、実施の形態の一筆部品は、レーザ照射装置としてのレーザマーキング装置100による文字の描画に最適化されるものであって、公的機関(例えば、日本規格協会、ISO等)等が定める一画と同じであってもよいし異なっていてもよい。実施の形態のレーザマーキング装置100は、レーザ光により媒体を発色させて一筆部品を描画するため、一筆部品を適切な形状に調整する。
また、「描画順」なる文言は、描画対象に含まれる線分を描画する順(線分をどちらの端部から描画するかという描画順も含む)と、文章等に含まれる複数の描画対象の各々を描画する順との2つの意味を有するものとして用いる。
以下、実施の形態1、2の描画順決定装置、描画制御装置、レーザ照射装置、最適化フォントDB、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体について説明する。
<実施の形態1>
図2は、実施の形態1のレーザマーキング装置100のハードウェア構成の一例を示す図である。
レーザマーキング装置100は、レーザを照射する描画装置10、及び、描画装置10の描画を制御する描画制御装置20を有する。描画装置10は、レーザを照射するレーザ発振器11、レーザの照射方向を変える方向制御ミラー13、方向制御ミラー13を駆動する方向制御モータ12、光学レンズ14、及び集光レンズ15を含む。
レーザ発振器11は、半導体レーザ(LD(Laser Diode))であるが、気体レーザ、固体レーザ、液体レーザ等でもよい。方向制御モータ12は、方向制御ミラー13の反射面の向きを2軸に制御する例えばサーボモータである。方向制御モータ12と方向制御ミラー13とによりガルバノミラーを構成する。ガルバノミラーによってレーザの照射点が走査される。光学レンズ14は、レーザ光のスポット径を大きくするレンズであり、集光レンズ15はレーザ光を収束させるレンズである。
リライタブル媒体50は、180℃以上の温度に加熱して急冷することで発色し、130〜170℃の温度に加熱することで消色する書き換え可能な感熱媒体である。通常の感熱紙やサーマルリライタブル媒体は近赤外領域のレーザ光を吸収しないので、近赤外レーザ波長を発振するレーザ光源(半導体レーザや固体レーザのYAG等)を用いる場合は、感熱紙、サーマルリライタブル媒体にレーザ光を吸収する材料の添加や層を追加する必要がある。なお、書き換えとは、レーザ光で加熱して記録を行い、レーザ光又は温風、ホットスタンプ等で加熱して消去することである。また、書き換えができないサーマルペーパとは、加熱により消色が困難な感熱紙をいう。実施の形態1では、使用する媒体の例として、リライタブル媒体50を使用した場合を説明するが、書き換えができないサーマルペーパ、プラスチック、金属等のように書き換えが可能でない媒体に対しても、好適に適用できる。
図3は、描画制御装置20のハードウェア構成の一例を示す図である。図3は、主にソフトウェアによって描画制御装置20を実装する場合のハードウェア構成図であり、コンピュータを実体としている。コンピュータを実体とせず描画制御装置20を実現する場合、ASIC((Application Specific Integrated Circuit))等の特定機能向けに生成されたICを利用する。
描画制御装置20は、CPU31、メモリ32、ハードディスク35、入力装置36、CD−ROMドライブ33、ディスプレイ37及びネットワーク装置34を有する。ハードディスク35には、ストロークフォントの一連の文字のフォントデータを記憶するフォントデータDB41、フォントデータから重複を排除した描画命令を生成し描画装置10を制御する文字描画プログラム42、描画条件DB43、及び所要時間DB44が記憶されている。ここで、所要時間DB44は、後述する描画順決定処理において線分の描画順を順次決定する段階で、後述する所要時間を格納するためのDBである。その内容については、描画順決定処理の説明と併せて後述する。
CPU31は、ハードディスク35から文字描画プログラム42を読み出して実行し、後述する手順で、リライタブル媒体50に文字を描画する。メモリ32は、DRAM等の揮発性メモリで、CPU31が文字描画プログラム42を実行する際の作業エリアとなる。
入力装置36は、マウスやキーボード等の描画装置10を制御する指示をユーザが入力するための装置である。リライタブル媒体50に描画する文章又は図形(以下、文章等)や、文章等に含まれる描画対象のサイズ等を表す描画条件は、例えば、入力装置36を介してユーザによって入力される。入力された描画条件は、描画条件DB43として、例えば、ハードディスク35に記憶される。描画条件には、文章等の中における各描画対象の位置、サイズ、及び描画順等を表すデータが含まれる。描画条件のデータ構造については図6を用いて後述する。
ディスプレイ37は、例えば文字描画プログラム42が指示する画面情報に基づき所定の解像度や色数で、GUI(Graphical User Interface)画面を表示するユーザインターフェイスとなる。例えば、リライタブル媒体50に描画する文字の入力欄が表示される。
CD−ROMドライブ33は、CD-ROM38を脱着可能に構成され、CD−ROM38からデータを読み出し、また、記録可能な記録媒体にデータを書き込む際に利用される。フォントデータDB41、及び文字描画プログラム42は、CD-ROM38に記憶された状態で配布され、CD-ROM38から読み出されてハードディスク35にインストールされる。CD−ROM38は、この他、DVD、ブルーレイディスク、SDカード、メモリースティック(登録商標)、マルチメディアカード、xDカード等、不揮発性のメモリで代用することができる。
ネットワーク装置34は、LANやインターネット等のネットワークに接続するためのインターフェイス(例えばイーサネット(登録商標)カード)であり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行して、描画装置10に文字コードに応じた描画命令を送信することを可能とする。フォントデータDB41、及び文字描画プログラム42は、ネットワークを介して接続した所定のサーバからダウンロードすることができる。なお、ネットワーク経由でなく、USB(Universal Serial Bus)、IEEE1394、ワイヤレスUSB、Bluetooth等で直接、描画制御装置20と描画装置10を接続してもよい。
リライタブル媒体50に描画される描画対象の文字は、上述のように入力装置36から入力され、例えばリスト状のデータとしてハードディスク35に記憶されている。なお、リライタブル媒体50に描画される描画対象である文字等を含む文章等や、文章等に含まれる描画対象のサイズは、描画条件を構成する。
文字は、UNICODEやJISコード等の文字コードで特定され、描画制御装置20は文字コードに対応する文字のフォントデータをフォントデータDB41から読み出し、描画装置10を制御するための描画命令を生成する際に用いる。
また、描画対象の文字の文字コードは、入力装置36から入力される場合と、予めハードディスク35に記憶されている場合(ネットワーク経由で入力される場合を含む)とがある。
入力装置36から入力される場合は、キーボードのキーを押下することで入力されるキーコードに対応した文字コード、又は、IME(Input Method Editor)が起動している場合にキーコードからIMEが変換した文字コードが対象文字コード取得手段24に入力される。また、ハードディスク35に予め記憶されている場合は、例えば、宛先等の文字列がリスト状に記憶されているので、文字列の文字を指定する文字コードが読み出され、対象文字コード取得手段24に入力される。
また、描画対象が数字の「1」のように、全て直線状の線分で構成されている場合は、各線分の座標を容易に抽出することができる。しかしながら、アウトラインフォントでは曲線をスケーラブルに描画できるように、例えばベジェ曲線のような曲線で描画できるようになっている。曲線で描画されていると、線分間の距離の算出が複雑になるので、曲線を含む描画対象であっても直線状の線分に変換して描画することが好適になる。
そこで、実施の形態1の描画制御装置20は、フォントデータが曲線を含む場合、曲線部分を直線に変換し、各直線の線分の座標を検出する。なお、文字が曲線を含む場合、フォントデータには曲線制御用のデータが含まれているので、その文字が曲線を含むか否かはフォントデータから判定される。
図4は、フォントデータ、座標データ、及び座標データに基づいて描画された文字の一例を表す図である。図4(a)は、描画情報としてのフォントデータの一例を示す。図4(a)のフォントデータはアルファベットの「r」という文字のフォントデータを示し、4つの線分で定義するためのデータを含む。フォントデータは、各線分の端点の座標と、描画順を有する。フォントデータに含まれる端点の座標は、文字をビットマップに配置した場合のビットマップの所定画素を原点に指定されている。
なお、実施の形態1の描画制御装置20は、描画順を最適化するために、フォントデータに含まれる描画順を変更する場合がある。
ストロークフォントをレーザ等で描画する場合、座標だけではレーザを照射しながら移動するのか、レーザを照射しないで移動するのかを判別できない。このため、ストロークフォントのフォントデータには、レーザの描画開始位置(人間が書くとすると筆をおろす位置)と移動命令、レーザの描画終了位置(人間が書くとすると筆を上げる位置)と移動命令が含まれている。
図4(a)では、「m」はレーザの描画開始位置とその座標までの移動命令を示し、「d」は描画終了位置とその座標までの移動命令を示す。従って、「m」は筆を上げて移動することを意味し、「d」は筆を下ろして移動することを意味する。このように、フォントデータは、座標による文字の形状、描画の順番、描画の方向(図では矢印を有する線分)を規定し、「m」と「d」によりレーザ照射の有無を規定する。すなわち、一以上の連続した「d」に対応づけられた座標により表される線分が一筆部品である。
従って、図4(a)に示す描画情報としてのフォントデータは、座標(100,500)から座標(100、50)まで線分が描かれ、座標(100,50)から座標(120、220)までは線分を描かずに移動し、座標(120、220)から座標(230、500)まで線分が描かれ、座標(230、500)から座標(300、500)まで線分が描かれ、さらに、座標(300、500)から座標(400、450)まで線分が描かれることを表す。
一方、描画される文字の形状は、線分を指定する2点の座標が線分の数だけあれば特定できることになる。図4(b)は、媒体に実際に描画される文字(ここでは「r」)を構成する各線分の座標の一例を示す。図4(b)は、媒体に描画対象を描画する描画位置を表すデータとしての座標データを示しており、描画情報としてのフォントデータに基づき文字の大きさを2倍に拡大した場合の座標データを表す。ストロークフォントは、アウトラインフォントようにスケーラブルフォントの一種なので、例えば、リライタブル媒体50に描画する際の文字の大きさを指定できるようになっている。
ストロークフォントの文字の大きさの調整方法はいくつか知られているが、ここでは説明のため単にフォントデータの座標をそれぞれ2倍にした。例えば文字の中心からの距離に応じて線分の座標を調整してもよい。
アルファベットの「r」のように4つの線分を含む文字の場合、線分の座標は4組となる。図4(b)に示す[0]〜[3]は、各線分の描画順を示し、描画順の右側に続く4つの数字のうち、最初の2つの数値は線分の始点の座標を表し、残りの(右側の)2つの数値は線分の終点の座標を表す。
図4(b)に示す描画位置を表すデータとしての座標データを用いると、描画対象である「r」は、図4(c)に示すように、点A→点B、点C→点D→点E→点Fの順に描画される。
次に、図5を用いて実施の形態1の描画制御装置の機能ブロックについて説明する。
図5は、実施の形態1の描画制御装置20の機能ブロックを示す図である。各ブロックをソフトウェアで実現する場合、各ブロックはCPU31が文字描画プログラム42を実行することで実現される。
描画制御装置20は、主制御手段211、描画位置決定手段21、描画順決定手段22、描画命令生成手段23、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、及び空走距離判定手段213を含む。なお、描画制御装置20のうち、描画命令生成手段23を除く、主制御手段211、描画位置決定手段21、描画順決定手段22、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、及び空走距離判定手段213は、描画順決定装置を構成する。
主制御手段211は、後述する描画順の決定処理を実行する際に描画位置決定手段21、描画順決定手段22、描画命令生成手段23、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、及び空走距離判定手段213の処理を統括する処理と、その他に必要となる周辺処理を実行する制御手段である。
描画位置決定手段21は、フォントデータ取得手段25によってフォントデータDB41から読み出されるフォントデータと、描画条件取得手段26によって描画条件DB43から読み出される描画条件とに基づいて、描画対象をリライタブル媒体50に描画する描画位置である座標データを決定する。なお、描画条件には、文章等の中における各描画対象の位置、サイズ、及び描画順等を表すデータが含まれる。描画条件を表すデータについては図6を用いて後述する。
描画順決定手段22は、描画対象に含まれる線分を描画する描画順と、文章等に含まれる複数の描画対象の各々を描画する描画順との両方の描画順を決定する。
描画命令生成手段23は、描画位置決定手段21によって決定される座標データ、描画順決定手段22によって決定される描画順、速度演算手段29によって演算される描画速度、及び待機時間演算手段30によって演算される待機時間を反映した描画命令を生成する。生成された描画命令は、描画装置10に入力され、この結果、ユーザによって入力装置36に入力された文章等を表す描画対象が描画装置10によってリライタブル媒体50に描画される。
対象文字コード取得手段24は、ユーザによって入力装置36に入力された文章等に含まれる描画対象の文字コードを取得する。
フォントデータ取得手段25は、対象文字コード取得手段24によって取得された文字コードに基づいてフォントデータDB41を参照し、文字コードに対応づけられたフォントデータを読み出す。
描画条件取得手段26は、リライタブル媒体50に描画する描画対象である文字等を含む文章等や、文章等に含まれる描画対象のサイズの条件を表す描画条件をハードディスク35に記憶された描画条件DB43から取得する。
方向変化度合演算手段27は、描画位置決定手段21によって決定される座標データに基づき、相連続する線分同士のなす角度、又は、線分とこの線分に連続する空走線分のなす角度を方向変化度合として演算する。
方向変化度合判定手段28は、方向変化度合演算手段27によって演算された方向変化度合が所定度合より大きいか否かの判定を行う。実施の形態1では、所定度合は30°に設定されており、方向変化度合判定手段28は、相連続する線分同士のなす角度が30°より大きいか否かを判定する。相連続する線分同士のなす角度と、線分とこの線分に連続する空走線分のなす角度の定義の仕方については、図6を用いて後述する。
速度演算手段29は、描画対象の描画を行う際の描画速度と、空走区間を空走する際の空走速度とを演算する。空走速度は、次の(A)、(B)、(C)で示される第1ルールの下に決定される。
(A):空走区間の長さが所定長さより長い場合は、空走速度を描画速度より高くする。
(B):空走区間の長さが所定長さ以下であっても、空走区間の終了点で待機時間が設定されて場合は、空走速度を描画速度より高くする。
(C):(A)(B)以外の場合は、空走速度を描画速度と同一にする。
待機時間演算手段30は、描画終了点において次の線分の描画開始を待機する時間teと、描画開始点において次の線分の描画開始を待機する時間tsとを演算する。待機時間te、tsは、次の(D)、(E)、(F)で示される第2ルールの下に決定される。待機時間演算手段30によって演算される待機時間を表すデータは、描画順決定手段22によって生成される描画順に組み込まれる。
(D):線分とこの線分に連続する空走線分とのなす角度が所定の角度以下の場合は描画終了点で待機時間teを挿入しない。
(E)線分とこの線分に連続する空走線分とのなす角度が所定の角度より大きい場合は描画終了点で待機時間teを挿入する。
(F):空走線分とこの空走線分に連続する線分とのなす角度が所定の角度以下の場合は描画開始点で待機時間tsを挿入しない。
(G)空走線分とこの空走線分に連続する線分とのなす角度が所定の角度より大きい場合は描画開始点で待機時間tsを挿入する。
(H):空走線分とこの空走線分に連続する線分とのなす角度が所定の角度以下の場合((F)の場合)であっても、空走速度が描画速度よりも高い場合は描画開始点で待機時間tsを挿入する。
空走距離演算手段212は、座標データに基づき、空走区間の距離を演算する。
空走距離判定手段213は、空走距離演算手段212によって演算された空走区間の距離が所定距離以上であるか否かを判定する。
図6(a)は、描画条件DB43の一例を示す図であり、図6(b)は、相連続する線分同士のなす角度と、線分とこの線分に連続する空走線分のなす角度の定義の仕方を説明するための図であり、(c)は所要時間DB44の一例を示す図である。
図6(a)に示すように、描画条件DB43は、描画対象の種別を特定するための文字コードの一例としてのJISコード、文章等を表す描画対象の各々が配置される位置(x、y座標)を表す位置データ、サイズ、及び描画順を表すデータを含む。描画順を表すデータは、図7を用いて後述する描画順決定処理によって線分毎に確定される。また、描画対象の位置を示す座標値は、例えば、描画対象が配置される領域の左上の点の座標である。
図6(b)に示すように、相連続する線分同士のなす角度(すなわち、方向変化度合)は、相連続する線分ABと線分BCに対して、線分ABの延長線lと線分BCとがなす角度θとして求められる。また、線分とこの線分に連続する空走線分とのなす角は、図6(b)に示す線分AB又は線分BCのいずれか一方を空走線分に置き換えた場合の角度として求められる。
図6(c)に示すように、所要時間DB44は、線分の端部のx、y座標と所要時間を関連付けて格納するDBである。所要時間DB44は、実施の形態1の描画順決定処理において次の描画順の候補となる線分を決定する際に、総当たり形式で演算される候補線分の端部までの所要時間を格納する。
なお、JISコード、x座標値、y座標値、描画対象のサイズ、描画順、及び所要時間として、アルファベットと数字を組み合わせた記号を示すが、実際の描画制御装置では具体的なコード番号、x座標値、y座標値、及び描画対象のサイズ、描画順、及び所要時間を表す数値が与えられる。
次に、図7を用いて、実施の形態1の描画制御装置20による描画順決定処理について説明する。
図7は、実施の形態1の描画制御装置20による描画順決定処理を表すフローチャートである。
まず、描画位置決定手段21は、フォントデータ取得手段25によってフォントデータDB41から読み出されるフォントデータと、描画条件取得手段26によって描画条件DB43から読み出される描画条件とに基づいて、描画対象をリライタブル媒体50に描画する描画位置である座標データを決定する(ステップS1)。
このステップS1の処理に際し、フォントデータ取得手段25は、対象文字コード取得手段24によって取得された文字コードに基づいてフォントデータDB41を参照し、文字コードに対応づけられたフォントデータを読み出す。そして、描画位置決定手段21は、フォントデータ取得手段25によってフォントデータDB41から読み出されるフォントデータと、描画条件取得手段26によって描画条件DB43から読み出される描画条件に含まれるサイズのデータとに基づいて、描画対象をリライタブル媒体50に描画する描画位置である座標データを決定する。以上により、ステップS1の処理が行われる。
例えば、図8(a)に示すような文字列を描く場合は、図8(b)に示すように描画基点(例えば、左上の点を基点とし、基点の座標値は(x0,y0)とする)を設定し、描画条件に含まれる文字サイズ等から、描画対象に含まれる各線分を描画する位置を表す座標データを決定する。
次に、主制御手段211は、描画装置10のレーザの照射点の現在位置と、描画順を決定する線分の総数とを取得する(ステップS2)。レーザの照射点の位置は、方向制御モータ12(図2参照)を制御するための2軸方向のデータからx、y座標を表す値として取得することができる。また、線分の総数は、描画条件に含まれるすべての描画対象のフォントデータ、又は、ステップS1で決定した座標データに基づいて取得することができる。
次に、主制御手段211は、ステップS2で取得した照射点の現在位置がいずれかの線分の端点に一致するか否かを判定する(ステップS3)。この判定は、ステップS1で決定した座標データに含まれる線分の端点を表すx、y座標の中に、ステップS2で取得した照射点の現在位置を表すx、y座標と一致するデータがあるか否かを判定することによって行われる。
主制御手段211は、ステップS3で一致するデータがあると判定した場合は、x、y座標で表される端点を一端とする線分を描画開始線分とする(ステップS4Y)。描画開始線分とは、描画条件に含まれるすべての描画対象に含まれるすべての線分のうち、最初に描画を行う線分をいう。なお、ステップS4Yで選択される描画開始線分の両端のうち、描画が開始されるのは、ステップS3で照射点の現在位置と一致した端点である。
一方、主制御手段211は、ステップS3で一致するデータが無いと判定した場合は、照射点を表すx、y座標に一番近い端点を座標データから抽出し、その端点を含む線分を描画開始線分とする(ステップS4N)。なお、描画が開始されるのは、照射点を表すx、y座標に一番近い端点である。
主制御手段211は、次に描画する線分の候補となる候補線分の端点を選択する(ステップS5)。この処理は、描画順が次となる線分の描画開始点の候補を選択するための処理であり、後述するステップS18までの処理がすべての線分を候補として総当たり形式で繰り返し実行されることにより、座標データに含まれる端点を次々と選択して行く処理である。総当たり形式で各線分を候補線分とした場合の待機時間を演算し、後述するステップS16において待機時間が最も短いと判定された候補線分の端点を次の描画開始点として決定する。なお、線分は2つの端点を含むため、ステップS5の処理を繰り返し実行することにより、各線分の両端の端点が選択されることになる。
ここで、ステップS5で選択される端点(描画順が次となる候補線分の描画開始点)と、描画順がその前であると決定している線分の描画終了点とを結ぶ線分は、空走線分となる。空走線分の両端は、座標データから得られる。例えば、図9(a)に示す例では、描画順が決定している線分ABの描画終了点Bと、描画順がその次となる候補線分CDの描画開始点Cとを結ぶ線分が空走線分BCとなる。
次いで、方向変化度合演算手段27は、ステップS5で選択した端点によって得られる空走線分と、描画順が決定している線分とのなす角θe(方向変化度合)を演算する(ステップS6)。なす角は、座標データに基づき、図6(b)に示す要領で求められる。例えば、図9(a)で示す例では、描画順の決定している線分ABと、空走線分BCとのなす角度をθeとして演算することになる。なお、図9(a)に示す例では、線分ABと空走線分BCは同一直線上にあるため、θeは0°となる。
次いで、方向変化度合判定手段28は、ステップS6で演算されたなす角θeが所定の角度θ1以下であるか否かを判定する(ステップS7)。実施の形態1では、θ1は30°に設定されるが、この値に限られるものではない。
次に、空走距離演算手段212は、ステップS5で選択される端点と、描画順がその前であると決定している線分の描画終了点とを結ぶ空走線分の長さd(すなわち、空走区間の距離d)を座標データに基づいて演算する(ステップS8Y)。例えば、図9(a)に示す例では、空走線分BCの長さdが点B、Cの座標データに基づいて演算される。
ステップS8Yで空走区間の距離dが求まると、空走距離判定手段213は、空走区間の距離dが所定の距離d0以下であるか否かを判定する(ステップS9Y)。
次いで、方向変化度合演算手段27は、ステップS5で選択した端点を含む線分と、空走線分とのなす角θs(方向変化度合)を演算する(ステップS10A)。なす角θsは、座標データに基づき、図6(b)に示す要領で求められる。
ステップS10Aにおいて角度θsが演算されると、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS11A)。実施の形態1では、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS11Aで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsを零(0)、空走区間の空走速度VをV1に設定する(ステップS12A)。なお、空走速度V1は、線分を描画する描画速度と同一の速度である。
ステップS12Aで待機時間teが零(0)に設定されるのは、ステップS7においてθeが所定のθ1以下であると判定されたからである。これは、図9(a)に示す例では、線分ABの描画終了点である点Bにおいて、線分ABと空走線分BCのなす角度θeが所定の角度θ1以下であり、空走区間に入る際の角度変化が比較的小さいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要がないと考えられるからである。
また、ステップS12Aで待機時間tsが零(0)に設定されるのは、ステップS11Aにおいてθsが所定のθ2以下であると判定されたからである。これは、図9(a)に示す例では、線分CDの描画開始点である点Cにおいて、空走線分BCと線分CDのなす角度θsが所定の角度θ2以下であり、空走から描画に入る際の角度変化が比較的小さいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要がないと考えられるからである。
また、ステップS12Aで空走速度Vを描画速度と同一のV1に設定するのは、ステップS9Yにおいて空走区間の距離dが距離d0以下であると判定され、空走区間の距離は比較的短いため、空走速度を上昇させる必要性に乏しいからである。また、空走区間が短くても空走速度を高くした方が空走時間は短くなるが、θsがθ2以下であることによって描画開始点(点C)における待機時間は零(0)に設定されているため、上昇させた空走速度を低下させるためだけに待機時間を設定する必要はないと考えられる。このため、空走速度VはV1に設定される。
なお、ステップS12Aは、上述のルール(C)(D)(F)が適用された場合である。
以上のように、主制御手段211は、ステップS12Aで待機時間te、ts、及び空走速度Vが設定されると、描画終了点から空走して描画開始点で描画を開始するまでの所要時間tkを計算する(ステップS13)。
tkは、ステップS2で取得されたN個の線分に含まれる2N個の端点のうち、k番目の端点について計算される所要時間である。kは、1≦k≦2(N−1)を満たす整数であり、tkは次式(1)で計算される。
tk=tek+dk/V+tsk ・・・(1)
ここで、tekは、(N−1)本の候補線分に含まれる2(N−1)個の端点のうち、k番目の端点について演算された描画終了点での待機時間(第1待機時間)を表し、tskはk番目の端点について演算された描画開始点での待機時間(第2待機時間)を表す。また、dkはk番目の端点について演算された空走線分の長さを表し、Vは空走速度を表す。このため、dk/Vは、空走区間の空走に要する時間(空走時間)を表す。
ステップS13で演算された所要時間は、k番目の端点のx、y座標と関連付けられて、ハードディスク35内に所要時間DB(図6(c)参照)として記憶される。
主制御手段211は、ステップS13の処理が終了すると、次の端点についての所要時間を演算すべく、kの値をインクリメントする(ステップS14)。
次いで、主制御手段211は、k≧2(N−1)が成立するかを判定する(ステップS15)。(N−1)本の候補線分に含まれる2(N−1)個のすべての端点についての処理が終了したか否かを判定するためである。
主制御手段211は、ステップS15において、すべての端点についての処理が終了していないと判定した場合は、フローをステップS5にリターンする。
なお、ステップS11Aにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS12Bに進行し、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS12B)。なお、空走速度V2は、線分を描画する描画速度の2倍の速度である。
ステップS12Bで待機時間teが零(0)に設定されるのは、ステップS12Aの場合と同様に、ステップS7においてθeが所定のθ1以下であると判定されたからである。これは、図9(b)に示す例では、線分ABの描画終了点である点Bにおいて、線分ABと空走線分BCのなす角度θeが所定の角度θ1以下であり、空走区間に入る際の角度変化が比較的小さいため、レーザの照射点の追従遅れが収束するのを待機する時間を設ける必要がないと考えられるからである。
また、ステップS12Bで待機時間tsがt1に設定されるのは、ステップS11Aにおいてθsが所定のθ2より大きいと判定されたからである。これは、図9(b)に示す例では、線分CDの描画開始点である点Cにおいて、空走線分BCと線分CDのなす角度θsが所定の角度θ2より大きく、空走から描画に入る際の角度変化が比較的大きいため、空走区間と描画区間との境界点(点C)で方向を変える際に、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要があると考えられるからである。
また、ステップS12Bで空走速度Vを描画速度の2倍のV2に設定するのは、空走区間と線分とのなす角度が大きいことによって描画開始点(点C)で待機時間t1が設けられており、この待機時間t1を利用して空走速度V2から描画速度V1に減速する際の追従遅れを収束させられるため、空走距離がd0以下でも空走速度を高くして空走時間を短くするためである。
なお、ステップS12Bは、上述のルール(B)(D)(G)が適用された場合である。
また、ステップS9Yにおいて空走区間の距離dが所定の距離d0より長いと判定された場合は、フローはステップS11Bに進行し、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS11B)。ステップS11BはステップS11Aと同一内容であり、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS11Bで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS12C)。なお、空走速度V2は、描画速度の2倍の速度である。
ステップS12Cで待機時間teが零(0)に設定されるのは、ステップS6において演算されたθeがステップS7において所定のθ1以下であると判定されたからである。これは、図9(c)に示す例では、線分ABの描画終了点である点Bにおいて、線分ABと空走線分BCは同一直線上にあり、なす角度θeは所定の角度θ1以下である。このように、空走区間に入る際の角度変化が比較的小さいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要がないと考えられるからである。
また、ステップS12Cで待機時間tsがt1に設定されるのは、ステップS8Yにおいて演算された空走距離dがステップS9Yにおいてd0より長いと判定され、これにより空走速度が描画速度の2倍のV2に設定されたため、速度低下に伴う追従遅れを収束させる待機時間が必要になるからである。これは、図9(c)に示す例では、線分CDの描画開始点である点Cにおいて、空走速度V2から描画速度V1に減速されるため、レーザの照射点の追従遅れを収束させるための待機時間を設けたものである。
また、ステップS12Cで空走速度Vを描画速度の2倍のV2に設定するのは、ステップS9Yにおいて空走区間の距離dが距離d0より長いと判定され、空走区間の距離が比較的長い場合であるため、空走速度を高くして空走時間を短縮するためである。
なお、ステップS12Cは、上述のルール(A)(D)(H)が適用された場合である。
また、ステップS11Bにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS12Dに進行し、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS12D)。
ステップS12Dで待機時間teが零(0)に設定されるのは、ステップS12Cと同一の理由である。
また、ステップS12Dで待機時間tsがt1に設定されるのは、ステップS11Bにおいてθsが所定のθ2より大きいと判定されたからである。これは、図9(d)に示す例では、線分CDの描画開始点である点Cにおいて、空走線分BCと線分CDのなす角度θsが所定の角度θ2より大きく、空走から描画に入る際の角度変化が比較的大きいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要があると考えられるからである。
また、ステップS12Dで空走速度Vを描画速度の2倍のV2に設定するのは、描画開始点である点Cで待機時間t1が設けられているので、空走速度を高くすることによって追従遅れが生じても点Cで吸収できるため、空走速度を高くして空走時間を短くするためである。
なお、ステップS12Dは、上述のルール(A)(D)(G)が適用された場合である。
また、ステップS7において、θeがθ1より大きいと判定された場合は、フローはステップS8Nに進行し、空走距離演算手段212は、ステップS5で選択される端点と、描画順がその前であると決定している線分の描画終了点とを結ぶ空走線分の長さd(すなわち、空走区間の距離d)を座標データに基づいて演算する(ステップS8N)。例えば、図9(e)に示す例では、空走線分BCの長さdが点B、Cの座標データに基づいて演算される。
ステップS8Nで空走区間の距離dが求まると、空走距離判定手段213は、空走区間の距離dが所定の距離d0以下であるか否かを判定する(ステップS9N)。
次いで、方向変化度合演算手段27は、ステップS5で選択した端点を含む線分と、空走線分とのなす角θs(方向変化度合)を演算する(ステップS10C)。
ステップS10Cにおいて角度θsが演算されると、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS11C)。実施の形態1では、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS11Cで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点(点B)における待機時間teをt1、描画開始点(点C)における待機時間tsを零(0)、空走区間の空走速度VをV1に設定する(ステップS12E)。
ステップS12Eで待機時間teに設定されるのは、ステップS7においてθeが所定のθ1より大きいと判定されたからである。これは、図9(e)に示す例では、線分ABの描画終了点である点Bにおいて、線分ABと空走線分BCのなす角度θeが所定の角度θ1より大きく、空走区間に入る際の角度変化が比較的大きいため、角度変化によるレーザの照射点の追従遅れが収束するのを待機する時間を設ける必要があると考えられるからである。
また、ステップS12Eで待機時間tsが零(0)に設定されるのは、ステップS11Aにおいてθsが所定のθ2以下であると判定されたからである。これは、図9(e)に示す例では、線分CDの描画開始点である点Cにおいて、空走線分BCと線分CDのなす角度θsが所定の角度θ2以下であり、空走から描画に入る際の角度変化が比較的小さいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要がないと考えられるからである。
また、ステップS12Eで空走速度Vを描画速度と同一のV1に設定するのは、ステップS9Yにおいて空走区間の距離dが距離d0以下であると判定され、空走区間の距離は比較的短いため、空走速度を上昇させる必要性に乏しいからである。また、空走区間が短くても空走速度を高くした方が空走時間は短くなるが、θsがθ2以下であることによって描画開始点(点C)における待機時間は零(0)に設定されているため、上昇させた空走速度を低下させるためだけに待機時間を設定する必要はないと考えられる。このため、空走速度VはV1に設定される。
なお、ステップS12Eは、上述のルール(C)(E)(F)が適用された場合である。
また、ステップS11Cにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS12Fに進行し、主制御手段211は、描画終了点における待機時間teをt1、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS12F)。なお、空走速度V2は、線分を描画する描画速度の2倍の速度である。
ステップS12Fで待機時間teがt1に設定されるのは、ステップS12Eと同様の理由によるものである。
また、ステップS12Fで待機時間tsがt1に設定されるのは、ステップS11Cにおいてθsが所定のθ2より大きいと判定されたからである。これは、図9(f)に示す例では、線分CDの描画開始点である点Cにおいて、空走線分BCと線分CDのなす角度θsが所定の角度θ2より大きく、空走から描画に入る際の角度変化が比較的大きいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要があると考えられるからである。
また、ステップS12Fで空走速度Vを描画速度の2倍のV2に設定するのは、空走区間と線分とのなす角度が大きいことによって描画開始点(点C)で待機時間t1が設けられており、この待機時間t1を利用して空走速度V2から描画速度V1に減速する際の追従遅れを収束させられるため、空走距離がd0以下でも空走速度を高くして空走時間を短くするためである。
なお、ステップS12Fは、上述のルール(B)(E)(G)が適用された場合である。
また、ステップS9Nにおいて空走区間の距離dが所定の距離d0より長いと判定された場合は、フローはステップS11Dに進行し、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS11D)。ステップS11DはステップS11A、S11B、S11Cと同一内容であり、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS11Dで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点における待機時間teをt1、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS12G)。
ステップS12Gで待機時間teがt1に設定されるのは、ステップS12E、S12Fと同様の理由によるものである。
また、ステップS12Gで待機時間tsがt1に設定されるのは、空走距離dがステップS9Nにおいてd0より長いと判定され、これにより空走速度が描画速度の2倍のV2に設定されたため、速度低下に伴う追従遅れを収束させる待機時間が必要になるからである。これは、図9(g)に示す例では、線分CDの描画開始点である点Cにおいて、空走速度V2から描画速度V1に減速されるため、レーザの照射点の追従遅れが収まるのを待機する時間を設けたものである。
また、ステップS12Gで空走速度Vを描画速度の2倍のV2に設定するのは、ステップS9Nにおいて空走区間の距離dが距離d0より長いと判定され、空走区間の距離が比較的長い場合であるため、空走速度を高くして空走時間を短縮するためである。
なお、ステップS12Gは、上述のルール(A)(E)(H)が適用された場合である。
また、ステップS11Dにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS12Hに進行し、主制御手段211は、描画終了点における待機時間teをt1、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS12H)。
ステップS12Hで待機時間teがt1に設定されるのは、ステップS12E、S12F、S12Gと同一の理由である。
また、ステップS12Hで待機時間tsがt1に設定されるのは、ステップS11Dにおいてθsが所定のθ2より大きいと判定されたからである。これは、図9(h)に示す例では、線分CDの描画開始点である点Cにおいて、空走線分BCと線分CDのなす角度θsが所定の角度θ2より大きく、空走から描画に入る際の角度変化が比較的大きいため、レーザの照射点の追従遅れが収まるのを待機する時間を設ける必要があると考えられるからである。
また、ステップS12Hで空走速度Vを描画速度の2倍のV2に設定するのは、描画開始点である点Cで待機時間t1が設けられているので、空走速度を高くすることによって追従遅れが生じても点Cで吸収できるため、空走速度を高くして空走時間を短くするためである。
なお、ステップS12Hは、上述のルール(A)(E)(G)が適用された場合である。
ステップS12B、S12C、S12D、S12E、S12F、S12G、S12Hの後にはステップS13において、描画開始までの所要時間が演算される。
以上で、ステップS13により、ステップS4Y又はS4Nで描画開始線分として決定した線分の描画終了点と、次に描画する線分の候補となる(N−1)本の候補線分に含まれる2(N−1)個の端点との間のすべての空走線分についての所要時間tkが総当たり形式で計算されたことになる。
これにより、ステップS15では、k≧2(N−1)が成立し、フローはステップS16に進行する。
ステップS16では、描画順決定手段22は、ステップS13で求められたすべての所要時間を実現する端点のうち、最短の所要時間の端点を求める(ステップS16)。
ステップS16で端点が求められると、その端点を含む線分が描画開始線分の次の描画順の線分として確定する。すなわち、ステップS16は、描画順決定手段22が所要時間に基づいて描画順を決定するステップである。候補線分は2つの端点(両端)で規定されるため、候補線分の両端のうちの一方の端点がステップS16で求められることにより、その端点を含む候補線分が次の描画順の線分として確定されるものである。なお、描画順が確定された線分については、例えば、描画条件DB43(図6(a)参照)に描画順を格納すればよい。
次いで、主制御手段211は、すべての線分の描画順が確定したか否かを判定する(ステップS17)。この判定は、例えば、描画条件DB43に格納される描画順がすべての描画対象のすべての線分について確定しているか否かを判定することによって行われる。
主制御手段211は、ステップS17においてすべての線分の描画順が確定していないと判定した場合は、ステップS16で描画順を確定した線分の描画終了点を基準点に設定し、次の描画順の線分を決定すべくフローをステップS5にリターンする。
なお、ステップS16を繰り返し実行することにより、描画順の確定していない線分の数は1つずつ減るため、フローがステップS17からステップS5へリターンする過程で、総線分数Nがデクリメントされる(ステップS19)。ステップS19の処理が終了すると、デクリメントされた線分総数Nを用いて、ステップS5以下の処理が繰り返し実行される。
そして、ステップS17において主制御手段211がすべての線分の描画順が確定したと判定した場合に、すべての線分の描画順が確定する。確定した描画順は、すべての描画対象を描画する描画時間が最短となるように最適化されたものである。これにより、実施の形態1の描画制御装置によって生成される最適化フォントDBが完成する。
以上、実施の形態1の描画制御装置20によれば、描画開始線分の描画終了点からすべての線分を候補として総当たり形式で描画に要する所要時間(待機時間と空走時間を含む所要時間)が最短の端点を含む線分を次の描画順の線分として繰り返し選択するので、描画順の最適化を図ることができる。
なお、以上では、描画順が一番となる線分(描画開始線分)をレーザの照射位置の初期位置で決める形態について説明したが、次のような手法で描画順を決定するようにしてもよい。上述した実施の形態では照射点の現在位置を基準とし、その照射点と同一又は一番近い端点を描画開始点としたが、以下の手法では、描画開始点についても最適化を行う点が異なる。
描画対象の線分はN本あり、各線分は両端点から描画が可能であるため、線分1本あたり2通りの描画順が考えられる。
この場合に、すべての線分を描画する順番は、式(2)で表されるだけの組み合わせがある。
2N*2(N−1)*2(N−2)*・・・*2 ・・・(2)
ここで、*は、べき乗を表す。
これらの描画順の各々に対し、線分同士又は線分と空走線分の方向変化度合θと端点同士の距離dから、上述したte、ts、Vを決定し、各描画順についての所要時間の合計値を求める。
そして、所要時間の合計値が最も短い描画順を最適化された描画順として抽出する。このように描画順を決定してもよい。
<実施の形態2>
図10は、実施の形態2の描画制御装置220の機能ブロックを示す図である。各ブロックをソフトウェアで実現する場合、各ブロックはCPU31が文字描画プログラム42を実行することで実現される。
描画制御装置220は、主制御手段211、描画位置決定手段21、描画順決定手段22、描画命令生成手段23、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、及び空走距離判定手段213に加えて、線分群生成手段221を含む。
すなわち、実施の形態2の描画制御装置220は、実施の形態1の描画制御装置20に、線分群生成手段221を付加した構成を有する。
描画制御装置220のうち、描画命令生成手段23を除く、主制御手段211、描画位置決定手段21、描画順決定手段22、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、空走距離判定手段213、及び線分群生成手段221は、描画順決定装置を構成する。
主制御手段211は、描画順の決定処理を実行する際に、描画位置決定手段21、描画順決定手段22、描画命令生成手段23、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、空走距離判定手段213、及び線分群生成手段221の処理を統括する処理と、その他に必要となる周辺処理を実行する制御手段である。
線分群生成手段221は、各線分の両端点の座標データに基づき、連続する線分を群として扱うための線分群を生成する。
線分群は、同一座標の端点を有する線分同士を連続する線分(線分群)として取り扱うものである。なお、線分が単独で存在する場合、すなわち、線分の両方の端点が他の線分の端点と同一座標を有しない場合は、一つの線分を線分群として取り扱うこととする。
例えば、図4(c)に示す線分CD、線分DE、線分EFの3つの線分は、端点D、端点Eが同一座標の端点である。このため、線分群生成手段221は、3つの線分CD、DE、EFを含む線分群を生成する。また、図4(C)の線分ABは、単独で存在しているため、線分群生成手段221は、線分ABを線分群として生成する。
なお、描画位置決定手段21、描画順決定手段22、描画命令生成手段23、対象文字コード取得手段24、フォントデータ取得手段25、描画条件取得手段26、方向変化度合演算手段27、方向変化度合判定手段28、速度演算手段29、待機時間演算手段30、空走距離演算手段212、及び空走距離判定手段213は、それぞれ、実施の形態1の描画制御装置20に含まれる同一符号の各手段と基本的に同一である。このため、実施の形態2では、各手段に同一符号を用い、各手段の説明は省略し、以下では相違点を中心に説明を行う。
図11は、実施の形態2の描画制御装置220による描画順決定処理を表すフローチャートである。図11は、描画制御装置220による描画順決定処理の全体のフローを示す。
描画制御装置220の描画位置決定手段21は、フォントデータ取得手段25によってフォントデータDB41から読み出されるフォントデータと、描画条件取得手段26によって描画条件DB43から読み出される描画条件とに基づいて、描画対象をリライタブル媒体50に描画する描画位置である座標データを決定する(ステップS201)。
次に、描画制御装置220の描画順決定手段22は、描画対象の各々を描画する描画順を決定する(ステップS202)。例えば、描画対象が文字列の場合は、各文字を描画する順番が決定される。
次に、描画制御装置220の描画順決定手段22は、各描画対象に含まれる線分を描画する描画順を決定する(ステップS203)。例えば、描画対象が文字列の場合は、各文字に含まれる線分を描画する順番が決定される。なお、フォントデータは描画順を有するが、実施の形態2では、描画順の最適化を行うために、フォントデータに含まれる描画順を変更する場合がある。
次に、描画制御装置220の待機時間演算手段30は、空走区間の始点と終点における待機時間と空走速度を決定する(ステップS204)。
以上のステップS201〜S204の処理で、すべての描画対象の描画順を決定する。
次に、図12及び図13を用いて、ステップS202で描画対象の各々を描画する描画順を決定する処理の詳細について説明する。
図12は、実施の形態2の描画制御装置220の描画順決定手段22による描画対象の各々を描画する描画順を決定する処理を表すフローチャートである。
図13は、実施の形態2の描画制御装置220の描画順決定手段22によって描画順が決定される文字列の一例を示す図である。
図12に示すフローがスタートすると、描画順決定手段22は、ステップS201で読み出したフォントデータの数に基づき、文字列に含まれる文字数Nを計算する(ステップS211)。
次に、描画順決定手段22は、ステップS201で決定した座標データに基づき、すべての描画対象に対して、図13(A)に示すように、各文字を包含する矩形領域130を生成する(ステップS212)。
矩形領域130は、座標データに基づいて描画対象を包含するように生成すればよく、描画順決定手段22は、原点Oに最も近い左上の頂点の座標を保持しておけばよい。
ここでは、一例として、図13(B)に示すように5つの描画対象(「あ」「い」「う」「え」「お」)に対して、矩形領域131〜135を生成したこととする。
次に、描画順決定手段22は、すべての描画対象の矩形領域の左上の座標に基づき、最も原点に近い矩形領域に包含される描画対象を、最初に描画する描画対象として決定する(ステップS213)。最も原点に近い矩形領域は、例えば、すべての矩形領域の左上の座標と原点との距離を求め、距離が最短の矩形領域を抽出することによって行えばよい。
図13(B)に示す例では、「あ」を包含する矩形領域131が最も原点Oに近いため、矩形領域131に包含される「あ」が最初に描画される描画対象となる。
描画順決定手段22は、次に描画する描画対象を決定する(ステップS214)。次に描画する描画対象は、描画順が一つ前の描画対象を包含する矩形領域の左上の頂点の座標に最も近い左上頂点の座標を有する矩形領域に包含される描画対象に決定される。
図13(B)に示す例では、「あ」の次に描画されるのは、「あ」を包含する矩形領域131の左上頂点に最も近い左上頂点を有する矩形領域132に包含される「い」である。
次に、描画順決定手段22は、Nから1を減じる(ステップS215)。
次に、描画順決定手段22は、Nが0になったか否かを判定する(ステップS216)。
描画順決定手段22は、ステップS216でNが0ではないと判定した場合(S216:NO)は、フローをステップS214にリターンし、次に描画する描画対象を決定する(ステップS214)。
ステップS214〜S216が繰り返されることにより、図13(B)に示す例では、描画順は「い」「う」「え」「お」の順に決定される。
描画順決定手段22は、ステップS216でNが0であると判定した場合(S216:YES)は、フローを終了する。
以上により、すべての描画対象の描画順が決定する。
次に、図14及び図15を用いて、ステップS203で各描画対象に含まれる線分を描画する描画順を決定する処理の詳細について説明する。
図14は、実施の形態2の描画制御装置220の描画順決定手段22による各描画対象に含まれる線分を描画する描画順を決定する処理を表すフローチャートである。図14に示す線分の描画順を決定する処理は、描画対象の各々について独立的に実行される処理である。
図15は、実施の形態2の描画制御装置220の描画順決定手段22によって線分の描画順が決定される描画対象の一例を示す図である。
図14に示すフローがスタートすると、描画順決定手段22は、線分群生成手段221が生成する線分群の数Mをカウントする(ステップS221)。
次に、描画順決定手段22は、どちらかの端点が他の線分群に隣接していない線分群のうち、他の線分群に隣接していない端点のx座標が最も原点Oに近い線分群を最初に描画する線分群に決定するとともに、最初に描画する線分群の始点(描画開始位置)を決定する(ステップS222)。
例えば、図15(A)に示すように、「あ」という平仮名には、7つの線分群151〜157が含まれる。線分群151〜157のうち、どちらかの端点が他の線分群に隣接していない線分群は、線分群151(両端)、152(一端)、155(一端)、156(一端)、157(一端)である。すなわち、「端点が他の線分群に隣接する」とは、端点が他の線分群の端点に隣接する場合と、端点が他の線分群の両端の間の線分に隣接する場合とがある。
図15(A)に示す例では、x座標が最も原点Oに近い端点は、線分群151の左端であるため、最初に描画する線分群は、線分群151に決定する。
また、描画順決定手段22は、ステップS221において、最初に描画する線分群の始点(描画開始位置)を決定する。図15(A)に示す例では、線分群151の始点を線分群151の両端のうち原点に近い方の端点(図15(A)中の左側の端点)に決定する。線分群151の右側の端点は、終点(描画終了位置)となる。
次に、描画順決定手段22は、次に描画を行う線分群を決定する(ステップS223)。
描画順決定手段22は、ステップS223では、描画順が一つ前の線分群の終点(描画終了位置)に最も近い端点を有する線分群を次に描画する線分群に決定する。
図15(A)に示す例では、線分群151の右端に最も近い端点を有する線分群は線分群152であるため、描画順が線分群151の次となる線分群は線分群152に決定する。
次に、描画順決定手段22は、Mから1を減じる(ステップS224)。
次に、描画順決定手段22は、Mが0になったか否かを判定する(ステップS225)。
描画順決定手段22は、Mが0ではないと判定した場合(S225:NO)は、フローをステップS223にリターンする。
この結果、ステップS223〜S225が繰り返し実行され、図15に示す例では、線分群152よりも後の描画順は、線分群153、154、155、156、157に決定する。
以上より、線分群151〜157は、線分群151、152、153、154、155、156、157の順に描画されることになり、線分群153、154、155、156、157の各々の描画順は、図15(B)に矢印で示すように決定される。
すべての線分群の描画順が決まると、待機時間演算手段30は、ステップS204において、空走区間の始点と終点における待機時間と空走速度を決定する。
図16は、実施の形態2の描画制御装置における待機時間演算処理を表すフローチャートである。
待機時間設定手段30は、描画順が決まった描画対象の描画順に含まれる空走区間について、空走区間の始点と終点に設ける待機時間を設定するために、空走区間を一つ選択する(ステップS231)。空走区間の選択は、描画順が早い方から一つずつ選択するようにすればよい。
次いで、方向変化度合演算手段27は、ステップS231で選択した空走区間を表す空走線分と、空走線分の手前に位置する線分とのなす角θe(方向変化度合)を演算する(ステップS232)。なす角は、座標データに基づき、図6(b)に示す要領で求められる。
次いで、方向変化度合判定手段28は、ステップS232で演算されたなす角θeが所定の角度θ1以下であるか否かを判定する(ステップS233)。実施の形態2では、θ1は30°に設定されるが、この値に限られるものではない。
次に、空走距離演算手段212は、ステップS231で選択される空走区間を表す空走線分の長さd(すなわち、空走区間の距離d)を座標データに基づいて演算する(ステップS234Y)。
ステップS234Yで空走区間の距離dが求まると、空走距離判定手段213は、空走区間の距離dが所定の距離d0以下であるか否かを判定する(ステップS235Y)。
次いで、方向変化度合演算手段27は、ステップS231で選択した空走区間を表す空走線分と、空走線分に連続する線分とのなす角θs(方向変化度合)を演算する(ステップS236A)。なす角θsは、座標データに基づき、図6(b)に示す要領で求められる。
ステップS236Aにおいて角度θsが演算されると、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS237A)。実施の形態2では、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS237Aで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsを零(0)、空走区間の空走速度VをV1に設定する(ステップS238A)。なお、空走速度V1は、線分を描画する描画速度と同一の速度である。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Aと同一の理由によるものである。
主制御手段211は、ステップS238Aで設定された待機時間te、待機時間ts、空走速度Vを描画命令生成手段25に受け渡す。
描画命令生成手段25は、ステップS238Aで設定された待機時間te、待機時間ts、空走速度Vを描画命令に組み込む。
また、ステップS237Aにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS238Bに進行し、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS238B)。なお、空走速度V2は、線分を描画する描画速度の2倍の速度である。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Bと同一の理由によるものである。
また、ステップS235Yにおいて空走区間の距離dが所定の距離d0より長いと判定された場合は、フローはステップS237Bに進行し、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS237B)。ステップS237BはステップS237Aと同一内容であり、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS237Bで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS238C)。なお、空走速度V2は、描画速度の2倍の速度である。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Cと同一の理由によるものである。
また、ステップS237Bにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS238Dに進行し、主制御手段211は、描画終了点における待機時間teを零(0)、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS238D)。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Dと同一の理由によるものである。
また、ステップS233において、θeがθ1より大きいと判定された場合は、フローはステップS234Nに進行し、空走距離演算手段212は、ステップS231で選択される端点と、描画順がその前であると決定している線分の描画終了点とを結ぶ空走線分の長さd(すなわち、空走区間の距離d)を座標データに基づいて演算する(ステップS234N)。例えば、図9(e)に示す例では、空走線分BCの長さdが点B、Cの座標データに基づいて演算される。
ステップS234Nで空走区間の距離dが求まると、空走距離判定手段213は、空走区間の距離dが所定の距離d0以下であるか否かを判定する(ステップS235N)。
次いで、方向変化度合演算手段27は、ステップS231で選択した端点を含む線分と、空走線分とのなす角θs(方向変化度合)を演算する(ステップS236C)。
ステップS236Cにおいて角度θsが演算されると、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS237C)。実施の形態2では、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS237Cで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点(点B)における待機時間teをt1、描画開始点(点C)における待機時間tsを零(0)、空走区間の空走速度VをV1に設定する(ステップS238E)。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Eと同一の理由によるものである。
また、ステップS237Cにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS238Fに進行し、主制御手段211は、描画終了点における待機時間teをt1、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS238F)。なお、空走速度V2は、線分を描画する描画速度の2倍の速度である。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Fと同一の理由によるものである。
また、ステップS235Nにおいて空走区間の距離dが所定の距離d0より長いと判定された場合は、フローはステップS237Dに進行し、方向変化度合判定手段28は、角度θsが所定の角度θ2以下であるか否かを判定する(ステップS237D)。ステップS237DはステップS237A、S237B、S237Cと同一内容であり、θ2はθ1と同一の30°に設定される。なお、θ2の値はθ1と同一である必要はなく、任意の角度に設定することができる。
ステップS237Dで角度θsが角度θ2以下であると判定された場合は、主制御手段211は、描画終了点における待機時間teをt1、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS238G)。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Gと同一の理由によるものである。
また、ステップS237Dにおいて、角度θsが所定の角度θ2以下ではないと判定された場合は、フローはステップS238Hに進行し、主制御手段211は、描画終了点における待機時間teをt1、描画開始点における待機時間tsをt1、空走区間の空走速度VをV2に設定する(ステップS238H)。
待機時間te、待機時間ts、空走速度Vを上述のように設定するのは、実施の形態1のステップS12Hと同一の理由によるものである。
ステップS238B〜S238Hが終了すると、主制御手段211は、ステップS238Aで設定された待機時間te、待機時間ts、空走速度Vを描画命令生成手段25に受け渡す。そして、描画命令生成手段25は、ステップS238Aで設定された待機時間te、待機時間ts、空走速度Vを描画命令に組み込む。
以上により、描画命令が生成される。
以上、本発明の例示的な実施の形態1、2の描画順決定装置、描画制御装置、レーザ照射装置、最適化フォントDB、描画制御方法、描画制御プログラム、及びこれを記録した記録媒体について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。