説明

情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム、記憶媒体、描画情報記憶装置

【課題】高画質な太線描画が可能で、メディアを損傷することのない情報処理装置等を提供する。
【解決手段】線画の描画情報を生成する情報処理装置100であって、線画を構成する一以上のストロークの形状情報を記憶する形状情報記憶手段と、形状情報記憶手段から、描画対象の線画の形状情報を取得する形状情報取得手段102と、線画の太さ情報を取得する太さ情報取得手段103と、太さ情報に応じた数の、ストロークと略平行な複数の平行ストロークを生成し、複数の平行ストローク間の間隔を、太さ情報に基づいて定めるストローク生成手段105と、第1のストロークの第1の平行ストローク、又は、第1のストロークと接続されている第2のストロークの第2の平行ストローク、の少なくとも一方の長さを、調整するストローク長さ調整手段106と、長さの調整された平行ストロークの形状情報を含む、描画情報を登録する描画情報生成手段113、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字などの線画を非接触又は接触に描画する際の描画情報を生成する、情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム、記憶媒体及び描画情報記憶装置に関する。
【背景技術】
【0002】
物品のあて先や物品名を印字するラベルに感熱紙が用いられることがある。例えば、工場で使われるプラスチック製のコンテナにはこのような感熱型のラベルが貼付されている。感熱紙のラベルは、熱により発色する性質をもっており、熱ヘッド等を利用して文字や記号を書き込むことができる。
【0003】
そして、このような感熱紙でも書き込み、消去を繰り返し行えるリライタブルタイプのものが登場してきた。物流で利用する際には、コンテナにラベルを貼ったまま書き込み、消去ができることが望ましいため、非接触でレーザ光をラベルに照射して発熱させることで文字等を描く方法が提案されている(例えば、特許文献1参照。)。特許文献1には、フレキシブルジョイントにより構成された複数のレンズ系の一端から入射したレーザ光による画像を他端まで伝達するリレーレンズ系が記載されている。
【0004】
なお、レーザによる画像形成は従来から知られており(例えば、特許文献2参照。)、特許文献2には、1つの原画像データを複数のラインに分割して、ライン毎に感光ドラムにレーザを照射する画像形成方法が記載されている。
【0005】
ところで、一般にレーザ光のビーム径は細くても0.3mm程度であり、比較的太いため、レーザによる文字等の描画では、ストロークフォントが用いられることが多い。すなわち、一般的に文字等の描画に用いられるアウトラインフォントのように、輪郭を決定し輪郭内を塗りつぶす作業が不要である。ストロークフォントは文字の芯線データで定義された座標に応じてレーザを走査すれば、鉛筆で文字を描く如くに文字を描画できる。また、一筆が複数の線分の連続から成ることも多く、この場合は、折れ線をなぞるように互いに接続した線分を連続的に描画していくことになる。
【0006】
一方、レーザ光とストロークフォントを用いて、感熱紙に太い線を描きたい場合がある。太い線とはレーザ光のビーム径で決まる線幅よりも太い線で、文字を強調したり、バーコードを描く場合に有効である。太い文字を描くには大きく3つの手法が知られている。
(1)アウトラインフォントデータや、ストロークフォントデータを利用して輪郭線データを取得する。そして、この輪郭線を描画し、内部をラスタースキャンにより塗りつぶす方法(例えば、特許文献3参照。)。
(2)ストロークに直交する法線ベクトルをストロークデータ上に隙間なく発生させ、この法線ベクトルデータを描画することにより太線を描く方法(例えば、特許文献4〜6参照。)。
(3)元のストロークに平行な別のストロークをすき間なく発生させ、これら複数のストロークを1本の線とみなして太線を描く方法(例えば、特許文献7参照。)。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、(1)の方法は、ビーム径が太い場合にはかなり大きな文字でないと太線が描画できない。例えば0.3mmのビーム径で5mm角程度の文字を描こうとする場合には文字が潰れるなどの不都合が発生するため適さない。
【0008】
また、(2)の方法も同様で、生成されたストロークのエッジ部分が凸凹になってしまう。図1は、(2)の方法で描画した1本のストロークの一例を示す。レーザ光のビーム径が円形に近いのでストロークに直交する複数の法線の端点により、外郭に凸凹が生じる。
【0009】
(3)の方法には、(1)(2)のような欠点はない。しかしながら、引用文献7に記載されているように、元のストロークに平行な別のストロークをすき間なく発生させるだけでは、折れ線のある文字に適用できないという問題がある。
図2は引用文献7の方法の問題を説明する図である。図2(a)は太線のストロークの一例を、図2(b)はストロークをレーザ光で描画した場合の描画例を、それぞれ示す。図2(a)では、元のストロークを上下に平行移動して、折れ線部を挟んでそれぞれ3本のストロークが生成されている。
【0010】
しかし、単に元のストロークを平行移動すると、折れ線部の内側はストロークが長すぎ、外側は短すぎることになる。このため、折れ線部の内側のストロークは重複が生じており、折れ線部の外側のストロークは断絶が生じている。図2(b)の描画結果では、内側ではレーザ光の重複による熱負荷がかかり、外側では文字の一部が欠けて画質が低下するという問題がある。
【0011】
また、文字は交差したりストロークが急角度で折れ曲がったりすることも多々ある。このような場合、交差部分には重複してレーザ光が照射されるために過度な熱負荷が加わる。また、急角度での折れ線部は、装置の慣性によりマーキング速度が一時的に低下するため、長い時間レーザ光が照射されることになり、やはり過熱する。
図3は、2本のストロークで描画された「ヌ」という文字を示す。このような文字の急角度な折れ線部220と交差部210には過度な熱負荷が加わってしまう。
【0012】
また、レーザ光による描画では、ビーム径の影響を考慮する必要がある。
図4は、2本のストロークで描画された「イ」という文字を示す。図4(a)は、ビーム径が充分に細い場合であるので、描画された2つのストロークが重複することはない。しかし、ビーム径がある程度大きくなると、2つのストロークの接近部において重複部230が発生し、重複部に過度な熱負荷が加わってしまう。
【0013】
本発明は、上記課題に鑑み、描きたい図形や文字のサイズに比べてビーム径が比較的太い場合でも、高画質な太線描画が可能で、メディアを損傷することのない情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム、記憶媒体及び描画情報記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題に鑑み、本発明は、発色する媒体に伝達位置を変えながらエネルギーを断続的に伝達することで描画される、線画の描画情報を生成する情報処理装置であって、線画を構成する一以上のストロークの形状情報を記憶する形状情報記憶手段と、形状情報記憶手段から、描画対象の線画の形状情報を取得する形状情報取得手段と、線画の太さ情報を取得する太さ情報取得手段と、太さ情報に応じた数の、ストロークと略平行な複数の平行ストロークを生成し、複数の平行ストローク間の間隔を、太さ情報に基づいて定めるストローク生成手段と、第1のストロークの第1の平行ストローク、又は、第1のストロークと接続されている第2のストロークの第2の平行ストローク、の少なくとも一方の長さを、調整するストローク長さ調整手段と、長さの調整された平行ストロークの形状情報を含む、描画対象の線画の描画情報を生成する描画情報生成手段と、を有することを特徴とする。
【発明の効果】
【0015】
描きたい図形や文字のサイズに比べてビーム径が比較的太い場合でも、高画質な太線描画が可能で、メディアを損傷することのない情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム、記憶媒体及び描画情報記憶装置を提供することができる。
【図面の簡単な説明】
【0016】
【図1】従来の方法で描画した1本のストロークの一例を示す図である。
【図2】従来の方法の問題を説明する図である。
【図3】2本のストロークで描画された際の問題を説明するための図である。
【図4】2本のストロークで描画された際の問題を説明するための図である。
【図5】レーザ照射装置のハードウェア構成図の一例である。
【図6】全体制御装置のハードウェア構成図の一例である。
【図7】従来のレーザ照射装置の機能ブロック図の一例である。
【図8】従来のレーザ照射装置によるストロークフォントの描画手順を示すフローチャート図の一例である。
【図9】フォントデータ、描画命令の一例を示す図である。
【図10】レーザ照射装置の機能ブロック図の一例である。
【図11】レーザ照射装置がストロークフォントの文字を描画する手順を示すフローチャート図の一例である。
【図12】ストロークの本数の決定方法を説明する図の一例である。
【図13】描画する合計のストロークの本数が奇数の場合において、各ストロークの位置の決定を説明する図の一例である。
【図14】描画する合計のストロークの本数が偶数の場合において、各ストロークの位置の決定を説明する図の一例である。
【図15】平行ストロークの座標の決定を模式的に説明する図の一例である。
【図16】折れ曲がりの不都合を説明する図の一例である。
【図17】重複ストローク算出手段の機能をより詳細に説明する図の一例である。
【図18】ストローク同士の最短距離の検出を模式的に説明する図の一例である。
【図19】太文字の場合の交点を模式的に示す図の一例である。
【図20】ステップS90の重複ストロークの算出処理の手順を、詳細に説明するフローチャート図の一例である。
【図21】円形状の文字から生成されるストロークを模式的に示す図の一例である。
【図22】分割・短縮されるストロークを模式的に説明する図の一例である。
【図23】分割・短縮されるストロークの別の例を模式的に説明する図の一例である。
【図24】太文字の短縮を模式的に説明する図の一例である。
【図25】分割・短縮した場合としない場合のストロークの例を模式的に説明する図の一例である。
【図26】ストローク群グループの描画順を説明する図の一例である。
【図27】グループ化まで完了した文字「B」の各ストロークと描画結果の一例を示す。
【図28】ストローク群の描画順の決定を模式的に説明する図の一例である。
【図29】重複が排除された文字の描画例とその描画命令の一例を示す図である。
【図30】太文字の描画命令の生成を模式的に示す図の一例である。
【図31】太文字の描画例を示す図である。
【図32】内部が塗りつぶされた太文字と、内部が塗りつぶされていない太文字を示す図の一例である。
【図33】レーザ照射システムのハードウェア構成図の一例である(実施例2)。
【図34】レーザ照射システムの機能ブロック図の一例である(実施例2)。
【図35】描画命令生成用PCのハードウェア構成図の一例である。
【図36】準備処理の手順を示すフローチャート図の一例である(実施例3)。
【図37】最適化フォントデータを生成するフォントデータ生成装置の機能ブロック図の一例である。
【図38】最適化フォントデータの生成手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【0017】
以下、本発明を実施するための形態について図面を参照しながら説明する。
本実施形態のレーザ照射装置により描画について概略を説明する。
A.ストロークフォントのフォントデータを使用する
これにより、小さな文字でもストロークフォントならレーザ光により描画できる
B.太字を描画する場合、ストロークに平行な新たなストロークを発生させる
これにより、太い文字を描画しても外郭が凸凹することを防止できる
C.太くする前の元のストロークが折れ線部を有する場合、新たに生成したストローク同士が連続するように、新たに生成したストロークの長さを調整する
これにより、重複部においてサーマルリライタブルメディア(又は、リライタブルメディアでもよい)の過熱を防止すると共に、文字の美観を維持することができる。
D.1つのストロークが急角度で折れ曲がっている場合には、折れ線部分でストロークを分割する、又は、折れ線部で照射パワーを低下させる
これにより、折れ線部でサーマルリライタブルメディアが過熱することを防止できる
E.ストローク同士が交差している場合には、交差部でストロークを分割する、又は、照射パワーを低下させる
これにより、交差部でサーマルリライタブルメディアが過熱することを防止できる
なお、以下では、遍(へん)や旁(つくり)、又は、更にその一部など文字の一部を区別せずに文字という。また、ストロークフォントのフォントデータによる文字の一画をストロークという。したがって、文字は1以上のストロークから構成される。また、文字には、数字や「!、$、%、&、?」等の記号が含まれ、絵文字や顔文字を含む。
【0018】
また、本実施形態において、ストロークは、1対の始点と終点を有する直線又は曲線であるとする。終点と、次のストロークの始点が一致するか否かは問わない。また、ストロークは、レーザ光による描画に好適となるよう分割されたり、曲線を直線化する等の処理が施され、1つのストロークが複数のストロークになることがある。この場合、1対の始点と終点を有する、複数のストロークはそれぞれが1つのストロークである。
【0019】
ストロークフォントのフォントデータは、レーザ照射装置200による文字の描画に予め最適化されてものであってもよいし、公的機関(例えば、日本規格協会、ISO等)等が定めるものを利用してもよい。
【0020】
また、以下では、交差、重複、折り返しを区別しない場合、単に文字やストロークの重複と表現する。
【実施例1】
【0021】
図5は、本実施例のレーザ照射装置200のハードウェア構成図の一例を示す。レーザ照射装置200は、全体を制御する全体制御装置100と、レーザを照射するレーザ照射部160とを有する。また、レーザ照射部160は、レーザを照射するレーザ発振器11と、レーザの照射方向を変える方向制御ミラー13と、方向制御ミラー13を駆動する方向制御モータ12と、スポット径調整レンズ14と、焦点距離調整レンズ15と、を有する。
【0022】
レーザ発振器11は、半導体レーザ(LD(Laser Diode))であるが、気体レーザ、固体レーザ、液体レーザ等でもよい。方向制御モータ12は、方向制御ミラー13の反射面の向きを2軸に制御する例えばサーボモータである。方向制御モータ12と方向制御ミラー13とによりガルバノミラーを構成する。スポット径調整レンズ14は、レーザ光のスポット径を大きくするレンズであり、焦点距離調整レンズ15はレーザ光を収束させて焦点距離を調整するレンズである。
【0023】
また、サーマルリライタブルメディア20は、例えばロイコ染料と顕色剤が分離した状態で膜を形成し、そこに所定温度Taの熱を加え急冷することでロイコ染料と顕色在が結合して発色し、所定温度Taよりも低い所定温度Tbを加えるとロイコ染料と顕色剤が分離した状態に戻ることで消色するメディア、例えば書き換え可能な感熱タイプの紙である。本実施形態では、このような書き換え可能なサーマルリライタブルメディア20の劣化抑制を可能とするが、サーマルペーパのように書き換えが可能でないメディアに対しても好適に適用できる。
【0024】
レーザ発振器11で発生したレーザ光は、スポット径調整レンズ14を通過してスポット径が拡大される。そして、ガルバノミラーにより文字の形状に応じた方向に進行方向が調整された後、焦点距離調整レンズ15により所定の焦点距離に集光され、サーマルリライタブルメディア20に照射される。レーザ光が照射されるとサーマルリライタブルメディア20が熱を持ち、その熱で発色して文字などを描画できることになる。なお、消去パワーは抑制されている。
【0025】
照射位置の調整は、全体制御装置100が方向制御モータ12を駆動して方向制御ミラー13を動かすことで行う。レーザのON、OFFやパワーは全体制御装置100がレーザ発振器11を制御して行う。パワーの制御や焦点距離調整レンズ15の位置を制御することで、描画するストローク幅を変化させることもできる。
【0026】
図6は、全体制御装置100のハードウェア構成図の一例を示す。図6は、主にソフトウェアによって全体制御装置100を実装する場合のハードウェア構成図であり、コンピュータを実体としている。コンピュータを実体とせず全体制御措置100を実現する場合、ASIC((Application Specific Integrated Circuit))等の特定機能向けに生成されたICを利用する。
【0027】
全体制御装置100は、CPU31、メモリ32、ハードディスク35、入力装置36、CD−ROMドライブ33、ディスプレイ37及びネットワーク装置34を有する。ハードディスク35には、ストロークフォントの一連の文字のフォントデータを記憶するフォントデータDB41、フォントデータから重複を排除した描画命令を生成しレーザ照射部160を制御する文字描画プログラム42が記憶されている。
【0028】
CPU31は、ハードディスク35から文字描画プログラム42を読み出し実行し、後述する手順で、描画命令を生成する。メモリ32は、DRAMなどの揮発性メモリで、CPU31が文字描画プログラム42を実行する際の作業エリアとなる。入力装置36は、マウスやキーボードなどレーザ照射部160を制御する指示をユーザが入力するための装置である。ディスプレイ37は、例えば文字描画プログラム42が指示する画面情報に基づき所定の解像度や色数で、GUI(Graphical User Interface)画面を表示するユーザインターフェイスとなる。例えば、サーマルリライタブルメディア20に描画する文字の入力欄が表示される。
【0029】
CD−ROMドライブ33は、CD-ROM38を脱着可能に構成され、CD−ROM38からデータを読み出し、また、記録可能な記録媒体にデータを書き込む際に利用される。文字描画プログラム42及びフォントデータDB41は、CD-ROM38に記憶された状態で配布され、CD-ROM38から読み出されハードディスク35にインストールされる。CD−ROM38は、この他、DVD、ブルーレイディスク、SDカード、メモリースティック(登録商標)、マルチメディアカード、xDカード等、不揮発性のメモリで代用することができる。
【0030】
ネットワーク装置34は、LANやインターネットなどのネットワークに接続するためのインターフェイス(例えばイーサネット(登録商標)カード)であり、OSI基本参照モデルの物理層、データリンク層に規定されたプロトコルに従う処理を実行して、レーザ照射部160に文字コードに応じた描画命令を送信することを可能とする。文字描画プログラム42及びフォントデータDB41は、ネットワークを介して接続した所定のサーバからダウンロードすることができる。なお、ネットワーク経由でなく、USB(Universal Serial Bus)、IEEE1394、ワイヤレスUSB、Bluetooth等で直接、全体制御装置100とレーザ照射部160を接続してもよい。
【0031】
サーマルリライタブルメディア20に描画される描画対象の文字は、例えばリスト状にハードディスク35に記憶されているか、入力装置36から入力される。文字は、UNICODEやJISコードなどの文字コードで特定され、全体制御装置100は文字コードに対応する文字のフォントデータをフォントデータDB41から読み出し、それを描画命令に変換することでレーザ照射部160を制御する。
【0032】
〔従来の描画〕
まず従来の、レーザによるストロークフォントの描画について説明する。図7は、従来の、レーザ照射装置200の機能ブロック図の一例を、図8はレーザ照射装置200によるストロークフォントの描画手順を示すフローチャート図の一例をそれぞれ示す。
【0033】
まず、対象文字コード取得手段101は、描画対象の文字の文字コードを取得する(S1000)。描画対象の文字の文字コードは、入力装置36から入力される場合と、予めハードディスク35に記憶されている場合(ネットワーク経由で入力される場合を含む)とがある。入力装置36から入力される場合はキーボードのキーを押下することで入力されるキーコードに対応した文字コード、又は、IME(Input Method Editor)が起動している場合にキーコードからIMEが変換した文字コードが対象文字コード取得手段101に入力される。また、ハードディスク35に予め記憶されている場合、例えば宛先などの文字列がリスト状に記憶されているので、文字列の文字を指定する文字コードが読み出され、対象文字コード取得手段101に入力される。
【0034】
ついで、フォントデータ取得手段102は、文字コードに基づきフォントデータDB41を参照し、文字コードに対応づけられたフォントデータを読み出す(S2000)。
【0035】
図9(a)はフォントデータの一例を示す。図9(a)のフォントデータは「1」という文字のフォントデータであり、ストローク(直線又は曲線のいずれでもよい)で定義される文字の一例である。フォントデータはストロークの端点の座標、及び、描画順を有する。この座標は、文字をビットマップに配置した場合のビットマップの所定画素を原点に指定されている。
【0036】
ストロークフォントをレーザなどで描画する場合、座標だけではレーザを照射しながら移動するのか、レーザを照射しないで移動するのかを判別できない。このため、ストロークフォントのフォントデータには、レーザの描画開始位置(人間が書くとすると筆をおろす位置)と移動命令、レーザの描画終了位置(人間が書くとすると筆を上げる位置)と移動命令が含まれている。図9(a)では、「m」がレーザの描画開始位置と次の座標までの移動命令を、「d」が描画終了位置と次の座標までの移動命令をそれぞれ示す。したがって、「m」は筆をおろして移動すること、「d」は筆を上げて移動すること、を意味する。このように、フォントデータは、座標による文字の形状、描画の順番、描画の方向(図では矢印を有する線分)を規定し、「m」「d」によりレーザ照射の有無を規定する。
【0037】
したがって、図示するフォントデータの場合、座標(24,24)から座標(88、24)までストロークが描かれ、座標(88,24)から座標(56、24)まではストロークを描かずに移動し、座標(56、24)から座標(56、224)までストロークが描かれ、座標(56、224)から座標(24、176)までストロークが描かれる。
【0038】
ストロークフォントは、アウトラインフォントと同様にスケーラブルフォントの一種なので、例えばサーマルリライタブルメディア20に描画する際の文字の大きさを指定できるようになっている。ストロークフォントの文字の大きさの調整方法はいくつか知られているが、ここでは説明のため単にフォントデータの座標をそれぞれ2倍にした。例えば文字の中心からの距離に応じてストロークの座標を調整してもよい。
【0039】
図9(b)は2倍された各ストロークの座標の一例を示す。後述するように本実施形態では、この描画されるストロークの座標と文字の太さから、重複の有無を判定する。「1」のように3本の直線で描画される文字の場合、ストロークの座標は3対となる。[ ]で囲まれた数字は描画の順番であり、続く4つの数字のうち最初の2点はストロークの始点を、後ろの2点はストロークの終点を表す。描画の順番は、後に最適化されるので、図9(b)では、フォントデータにおける登録順をそのまま採用している。
【0040】
図9(c)は、レーザ用フォントデータにより描画された文字の一例を示す。線分91〜93がレーザ光の中心が通過した軌跡に対応し、矢印の向きが描画の方向を示す。矢印を囲む領域は、レーザ光によって描かれた(発色した)部分であり、矢印を囲む領域の幅が文字の太さである。また、文字中に記された数字は、各線分91〜93の描画の順番である。レーザのパワーや焦点距離調整レンズ15の焦点位置に応じてえられた太さの文字「1」が描画されている。
【0041】
次いで、図8に戻り、太さ情報取得手段103はフォントデータの太さの情報を取得する(S3000)。太さの情報は、フォントデータDB41に登録されているか、ユーザが入力装置36から入力する。文字の太さはレーザがサーマルリライタブルメディア20に照射される際の径に依存するので、太さの情報によりレーザ発振器11の出力や焦点距離調整レンズ15が制御される。
【0042】
〔本実施形態の描画〕
続いて、本実施形態の文字の描画について説明する。
図10は、本実施例のレーザ照射装置の機能ブロック図の一例を示す。各ブロックをソフトウェアで実現する場合、各ブロックはCPU31が文字描画プログラム42を実行することで実現される。
【0043】
図11は、本実施例の全体制御装置100がストロークフォントのレーザによる描画に最適なフォントデータを生成する手順を示すフローチャート図の一例である。以下、図11に基づいて、順番に説明する。
【0044】
<S10〜S30>
ステップS10〜S30までの処理は、図7〜図9を用いて説明したので省略する。
【0045】
<S40:文字属性情報の取得>
文字属性取得手段104は、描画対象となっている文字の文字属性情報を取得する。ここでいう文字属性とは、通常の太さの文字か、太文字かの属性である。後述するような袋文字、斜体、白抜き文字などを文字属性に含めてもよい。文字属性は、文字毎に指定可能であり、ユーザが入力装置36から入力することで指定される。文字属性が太文字の場合、さらに太文字太さ指定情報をユーザが入力装置36から入力してもよいし、太文字の場合の文字の太さ(太文字太さ指定情報)を予め定めておいてもよい。
【0046】
なお、ステップS30の文字の太さはレーザ光のビーム径を指定するものであり、文字属性が通常の太さの文字である場合は、ステップS30で指示された文字の太さで描画対象の文字が描画される。
【0047】
<S50のYes>
文字属性が太文字であった場合、ステップS60〜S80の処理が実行される。
【0048】
<S60>
まず、平行ストローク発生手段105は、図9(b)のような元のストロークに平行な、平行ストロークを発生させる。具体的には以下のようにして平行ストロークを求める。
【0049】
平行ストローク発生手段105は、太文字太さ指定情報に指示されている太さに従って、描画すべきストロークの本数を決める。ここでは太文字太さ指定情報として、描画すべき本数が与えられているものとする。元のストロークが1本あるが、後に除去するので「太文字太さ指定情報」の数だけ平行ストロークを発生させる。ここで、「発生させる」とは、元のストロークと同じストローク(以下、平行ストロークという)を生成することをいう。同じストロークを発生させると座標も同じになるので、次述するようにストロークの位置を調整する。
【0050】
なお、太文字太さ指定情報として、描画すべき太文字の太さが与えられている場合も考えられる。この場合、次のようにしてストロークの本数を決定すればよい。
図12は、ストロークの本数の決定方法を説明する図の一例である。太文字を描画する際のストロークの重なり幅を「μ」、各ストローク(ビーム径)の太さを「t」、求められている太文字の太さを「T」、描画すべき平行ストロークの本数を「n」とする。
【0051】
図から、次の関係が得られる。
n(t−μ)+μ=T
n=(T−μ)/(t−μ)
「n」は整数だから、算出された「n」に最も近い整数値を選ぶ。
【0052】
次に、平行ストローク発生手段105は、新たに加えるストロークの位置を求める。可能な限り元のストロークフォントの形状を維持するためには、元になるストロークの両側に同じ本数だけ平行ストロークを追加することが好ましい。この場合、描画する合計のストロークの本数が奇数か偶数かによって処理が異なる。
【0053】
・奇数の場合
図13は、発生させた平行ストロークの本数が奇数の場合において、各平行ストロークの位置の決定を説明する図の一例を示す。図示するように、平行な各ストロークは、熱負荷を与えない程度に端が重畳するように描画される。重畳分を設けることで、ストローク間にすき間が生じることを防止しやすい。なお、重畳分「μ」をどのくらいにするかに設定するかは、サーマルリライタブルメディアや環境温度により適切に決定すればよい。
【0054】
この重複分「μ」を考慮して、平行ストローク発生手段105は、新たに発生させたストロークを、元のストロークから「k(t−μ)」の位置に決定する。ただし、「k」は、0以上の整数であり、描画すべきストロークの本数により「k」が取り得る値が決まる。例えば、3本の平行ストロークを描画する場合、「k=0、1」、5本描画する場合、「k=0、1、2」となる。「k=0」の場合、「k(t−μ)」は元のストロークの位置を意味する。したがって、平行ストロークという場合、元のストロークの位置にある平行ストロークを含む。また、平行ストロークの位置は、元のストロークの位置、元のストロークから「t−μ」、「2(t−μ)」…離れた位置になる。なお、平行ストローク発生手段105は、元のストロークに線対称に平行ストロークを配置する。
【0055】
・偶数の場合
図14は、発生させた平行ストロークの本数が偶数の場合において、各平行ストロークの位置の決定を説明する図の一例を示す。奇数の場合と同様に、平行な各ストロークは、熱負荷を与えない程度に端が重畳するように描画される。偶数の場合、元のストロークを中心に上下対称に新たに発生したストロークを配置する。このため、新たに加える平行ストロークと、元のストロークとの距離は次式で表される。
k(t−μ)+(t−μ)/2
ただし、「k」は、0以上の整数であり、発生させた平行ストロークの本数により「k」が取り得る値が決まる。例えば、平行ストロークを2本描画する場合、「k=0」のみ、4本描画する場合、「k=0、1」、6本描画する場合、「k=0、1、2」となる。したがって、平行ストロークの位置は、元のストロークから「(t−μ)/2」、「(t−μ)+(t−μ)/2」、「2(t−μ)+(t−μ)/2」…離れた位置になる。偶数の場合、元のストロークと同じ位置に、平行ストロークは配置されない。なお、平行ストローク発生手段105は、元のストロークに線対称に平行ストロークを配置する。
【0056】
このようにして平行ストロークの位置を決定すると、平行ストローク発生手段105は、太文字のための各ストロークの座標値を決定する。
図15は、平行ストロークの座標の決定を模式的に説明する図の一例である。元のストロークを移動させる距離が決定しているので、平行ストローク発生手段105は、元のストロークの法線方向にその距離だけ、元のストロークと同一長さの平行ストロークをシフトさせ、座標値を仮に決定する。
【0057】
図では、nを単位法線ベクトル、v1を元のストロークの座標の元ベクトル、Mを移動ベクトル、vを移動後の平行ストロークの座標のベクトルとした。したがって、平行ストロークの数が奇数の場合「M=n×k(t−μ)」、平行ストロークの数が偶数の場合「M=k(t−μ)+(t−μ)/2」、である。移動後の平行ストロークの座標のベクトルvは次式で決定できる。
v=v1+M
元のストロークに対し反対側の、移動後の平行ストロークの座標のベクトルvは、単位法線ベクトルnを「−n」とすればよい。
【0058】
<S70:平行ストロークの長さ調整>
新たに発生した全ての平行ストロークの座標が決定されると、平行ストローク長さ調整手段106は、発生させた平行ストロークの長さを調整する。ステップS60で求めた平行ストロークは、元のストロークと同じ長さを持つので、元のストロークが他のストロークと接続して折れ線状になっている場合、描画方向に隣接した平行ストローク同士は、折れ曲がりの内側では重複、外側では断絶が発生する。
【0059】
図16(a)は、折れ曲がりの不都合を説明する図の一例である。新たに発生させたストロークは平行移動しただけなので、折れ線部の内側で重複が、外側で断絶が、それぞれ発生していることが分かる。
【0060】
そこで、平行ストローク長さ調整手段106は、折れ線部の平行ストロークが連続するよう、折れ線部の内側は短く、外側は長くなるように、平行ストロークの長さを調整する。すなわち、平行ストロークが描画方向に連続するよう、折れ線部の一方の平行ストロークの始点と、他方の平行ストロークの終点の座標値を変更する。変更後の座標は、2つの平行ストロークの交点である。
【0061】
折れ線部の内側は、すでに重複が発生しているので、描画方向に隣接した2つの平行ストロークの交点を求め、交点を、折れ線部を構成する内側の2つのストロークの新たな座標に決定する。折れ線部の外側は、断絶しているため交点が不明なので、2つの平行ストロークを延長し(線分として限定しない)、描画方向に連続した2つの平行ストロークの交点を求める。そして、交点を、折れ線部を構成する外側の2つの平行ストロークの新たな座標に決定する。
【0062】
図16(b)は、平行ストロークの座標が変更された折れ線部の一例を示す図である。重複と断絶が解消されていることが分かる。なお、2つの平行ストロークの交点を新たな座標とするのでなく、折れ線部の内側で交差する2つの平行ストロークのうち、一方の平行ストロークの座標だけを他方の最近接部まで変更してもよいし、折れ線部の外側で断絶した2つの平行ストロークのうち、一方の平行ストロークの座標だけを他方の最近接部まで変更してもよい。この場合、2つの平行ストロークの端点が一致しないが、重複もしないのでサーマルリライタブルメディア20を過熱することがなく、発色により断絶も回避される。
【0063】
平行ストローク長さ調整手段106は、1つの文字から全ての折れ線部を検出し、折れ線部ごとにステップS70の処理を行う。なお、折れ線部は、図9(b)のようなフォントデータにおいて、終点の座標と、次のストロークの始点の座標が一致するものとして検出される。
【0064】
<S80:元のストロークの削除>
ついで、ストローク除去手段107は、元のストロークを描画対象から除去する。この除去とは元のストロークの座標情報を図9(b)のようなフォントデータから消去することをいう。すなわち、平行ストロークの数が奇数の場合、元のストロークとk=0の平行ストロークが重複しているので、元のストロークを削除することで、重複した描画を回避する。なお、平行ストロークの数が奇数の場合、平行ストロークを元のストロークの位置に発生させず(すなわち「k=0」の位置に発生させない)、元のストロークを除去することなく描画に利用してもよい。
【0065】
また、平行ストロークが偶数の場合、元のストロークは不要なのでストローク除去手段107は、元のストロークを削除する。
【0066】
<S90:重複ストロークの算出>
〔重複の判定〕
まず、重複の判定について説明する。図17は、重複ストローク算出手段108の機能をより詳細に説明する図の一例である。フォントデータ取得手段102は、フォントデータに基づき図9(b)の如きストロークの座標を読み出す。このストロークの座標から、文字に重複が生じるか否かが判定される。
【0067】
まず、距離算出手段1084は、ストローク同士の最短距離を求める。最短距離の求め方は次の手順に従う。
【0068】
なお、ステップS90の判定では、通常の太さの文字について重複を判定する場合と、太文字について重複を判定する場合がある。しかし、太文字の場合でも、新たな各平行ストロークが他の平行ストロークと重複すべきでないことは通常の太さの文字と同じなので、新たな各平行ストロークの全てについて、他の平行ストロークとの重複を判定する。
・ストローク同士に交点がある場合、距離はゼロ
・交点がない場合は、
- 1対のストロークの端点間距離
- 一方のストロークの端点から他方のストロークに下ろした垂線の足までの距離(垂線が設定できる場合)
のいずれかにより距離を求める。すなわち、交点がない場合は、2つの方法でそれぞれ距離を求め、最も短い距離により重複の有無を判定する。
【0069】
図18は、ストローク同士の最短距離の検出を模式的に説明する図の一例である。図18(a)は交点のある2つのストロークの一例を示す。交点は、2つのストロークを直線の方程式で表し、その連立方程式を解くことで、求めることができる。
【0070】
y=ax+b
y=ax+b
の場合、交点を(x,y)とすると、
(x,y)=( (b−b)/(a−a),a+b
2つの直線は平行でない限り交点が得られるが、本実施形態では交点(x,y)がストローク内に含まれる場合にのみ、交点があると判定する。
【0071】
図18(b)は、一方のストロークの端点から降ろした垂線の足の長さの算出を模式的に説明する図の一例である。図17の垂線算出手段1082は、図示するような垂線を算出する。垂線は、他方のストロークに直交する線分で、一方のストロークの端点を通る線分である。したがって、垂線算出手段1082は、まず、他方のストロークに直交する傾きの直線であって、一方のストロークの端点を通過する垂線の式を算出する。
【0072】
y=cx+d
この直線が他方のストロークと交差すれば、一方のストロークの端点から他方のストロークに垂線を降ろすことができることになる。図18(a)と同様に、垂線の足存在範囲算出手段1083は、例えば垂線と他方のストロークの交差する点を求め、それがストローク内であれば垂線が引けたと判定する。この場合、距離算出手段1084は、一方のストロークの2つの端点から、他方のストロークまで降ろした垂線の足の長さを算出する。これは端点と交点までの距離として求めることができる。
【0073】
2つのストロークの関係によっては、垂線を引くことができない場合がある。図18(c)は2つのストロークの端点間の距離の算出を模式的に説明する図の一例である。距離算出手段1084は、一方のストロークの2つ端点と、他方の端点の2つの端点の距離をそれぞれ(すなわち4つの距離)算出する。距離算出手段1084は、垂線算出手段1082が垂線を算出できないと判定した場合のみ算出してもよいし、垂線の算出の是非に関わらす端点間の距離を算出してもよい。
【0074】
このようにして検出されたいくつかの距離のうち、文字の太さよりも短い距離がある場合、ストロークが互いに重複することになる。すなわち、最短距離が文字の太さよりも短くなければ交差しないので、いくつかの距離のうち最短距離を決定する。距離比較手段1085は、太さ情報取得手段103が取得した太さの情報と、最短距離を比較する。そして、最短距離が太さ以下であれば、その最短距離が検出された1対のストロークを抽出する。これにより、重複ストローク算出手段108は、当該文字のその1対のストロークには重複が生じることを検出することができる。なお、この場合、重複ストローク算出手段108は、「重複量 = 太さ−最短距離」を検出する。
【0075】
図19は、太文字の場合の交点を模式的に示す図の一例である。太文字の場合、重複ストローク算出手段108は、ストローク1とストロークabcそれぞれの交点を算出し、ストローク2とストロークabcそれぞれの交点を算出し、ストローク3とストロークabcそれぞれの交点を算出する。複数の交点が算出されるが、交点毎に重複量を調整すればよい。したがって、通常の太さの文字と同様に交点を検出して、重複を検出することができる。垂線を下ろす場合、2つのストロークの端点間の距離を算出する場合、も同様である。
【0076】
図20は、ステップS90の重複ストロークの算出処理の手順を、詳細に説明するフローチャート図の一例である。
【0077】
まず、フォントデータ取得手段102は、1文字のフォントデータからストロークの座標を抽出し、任意の2つのストロークの座標を読み出す(S401)。
【0078】
そして、ストローク交点検出手段1081は、2つのストロークに交点があるか否かを判定する(S402)。
【0079】
交点がない場合(S402のNo)、端点間の距離を検出するため、2つのストロークの4つの端点のうち、1つの端点を選択する(S403)。そして、距離算出手段1084は、他方の(注目している端点を有さない方の)ストロークの端点との距離を検出する(S404)。
【0080】
次に、垂線算出手段1082は、他方のストロークまで垂線を降ろす(S405)。垂線が他方のストロークと交わらないことがあるので、垂線の足存在範囲算出手段1083は垂線の足が他方のストロークと交差するか否かを判定する(S406)。
【0081】
垂線が他方のストロークと交わる場合は(S406のYes)、距離算出手段1084は、端点と他方のストロークまでの垂線の長さを検出し(S407)、交わらない場合は(S406のNo)、次の端点の処理に移行する。
【0082】
2つのストロークの4つの端点について端点間又は垂線の足の長さの検出が終了すると(S408のYes)、4つの端点について求めた距離のうち最小の距離を決定する(S409)。これにより、交点がない2つのストロークについて最も接近している部分の距離を決定することができる。
【0083】
なお、ステップS402で交点があると判定された場合、ストローク間の距離はゼロと判定される(S413)。
【0084】
ついで、距離比較手段1085は、距離が文字の太さ以下か否かを判定する(S410)。距離が太さ以下でない場合(S410のNo)、重複ストローク算出手段108は、その2つのストロークについては分割・短縮処理が不要であると判定する(S414)。
【0085】
距離が太さ以下の場合(S410のYes)、重複ストローク算出手段108は、その2つのストロークについては分割・短縮処理が必要であると判定する(S411)。
【0086】
ついで、重複ストローク算出手段108は、全てのストロークの2つの組み合わせについて吟味したか否かを判定し(S412)、吟味した場合には処理を終了する。
【0087】
ところで、数字の「1」のように、文字が全て直線で形成されている場合、ストロークの座標を容易に抽出することができる。しかしながら、ストロークフォントのようなスケーラブルフォントでは曲線をスケーラブルに描画できるように、例えばベジェ曲線のような曲線で描画できるようになっている。曲線で描画されていると、ストローク間の距離の算出が複雑になるので、曲線を含む文字であっても直線に変換して描画することが好適になる。
【0088】
そこで、直線近似手段111は、フォントデータが曲線を含む場合、曲線部分を直線に変換し、各直線のストロークの座標を検出する。なお、文字が曲線を含む場合、フォントデータには曲線制御用のデータが含まれているので、その文字が曲線を含むか否かはフォントデータから判定される。
【0089】
図21(a)は、円形状の文字から生成されるストロークを模式的に示す図の一例である。始点の座標(A,B)から終点の座標(C,D)までいくつかの曲線制御が施され、円形状のストローク310が得られる。このような文字の場合、直線近似手段111は、所定距離s毎にストローク310の座標を検出する。描画されるストロークの座標は、スケールを調整した後の座標である(2倍なら2倍した後)。
【0090】
直線近似手段111は、微少間隔毎に距離を蓄積し、距離sに達するとその時の座標を取得する。図21(a)では、5つの座標が得られている。この座標を元に、図9(b)のような描画されるストロークの座標を決定する。図21(b)は、曲線を直線に変換した後の、ストロークの座標(フォントデータ)の一例を示す。
【0091】
<S100:ストロークの分割・短縮>
図10に戻り、ストローク分割・短縮手段109は、距離がゼロの一対のストローク、端点とストロークの距離又は端点間の最短距離が文字の太さ以下の距離となった一対のストロークについて、一方のストロークを分割又は短縮する。一方のストロークとしたのは、どちらか一方の分割又は短縮することで重複を解消できるからである。
【0092】
どちらのストロークを、分割・短縮するかは次のルールにより決定する。
R1)分割・短縮することで一方のストロークのみが完全に消失する場合、他方のストロークを分割・短縮する。
R2)どちらのストロークも完全には消失しない、又は、どちらのストロークも完全に消失する場合、分割・短縮により消失するストローク長が短いほうを分割又は短縮対象とする(これは、消失長が短いほうが情報量の欠落が小さいとの考えに基づくものである。)。例えば、過度に短縮すると、接触しているべきストローク同士が離れてしまい、文字の品質は低下する。どの位置に新たな(分断・縮小された)ストロークの端点を決めるかは、ストロークの太さに依存する。
【0093】
図22は、分割・短縮されるストロークを模式的に説明する図の一例である。図22(a)は分割又は短縮する前のストロークにより描画された文字を示す。ストローク51の端点は(E,F)と(G,H)であり、ストローク52の端点は(G,H)と(J,K)であり、ストローク53の端点は(L,M)と(N,O)である。
【0094】
重複ストローク算出手段108は、ストローク51の端点(G,H)とストローク53の端点(L、M)との距離、ストローク52の端点(G,H)とストローク53の端点(L、M)との距離、がそれぞれ文字の太さ以下であることを検出する。なお、厳密には、ストローク51と52の端点(G,H)が一致するのでここでも重複すると判定されるが、このように交差の角度が小さい重複は後述するように無視できる。
【0095】
まず、ストローク分割・短縮105は、交点がないこと、及び、どちらを短縮しても一方のストロークのみが完全に消失しないので、ルールR2が適用されると判定する。このため、ストローク分割・短縮手段109は、仮に、ストローク51と52を両方とも短縮した場合と、ストローク53を短縮した場合とで、短縮量を比較する。
【0096】
図22(b)は、ストローク53を短縮して描画された文字の一例を、図22(c)は、ストローク51,52を短縮して描画された文字の一例を、それぞれ示す。重複ストローク算出手段108は、分割・短縮により消失するストローク長が短いほうを分割又は短縮対象とする。
【0097】
ストローク分割・短縮手段109は、ストローク53を短縮する場合の短縮量と、ストローク51、52をそれぞれ短縮する場合の短縮量を算出し、どちらを短縮するかを決定する。ストローク51とストローク53の重複量と、ストローク52とストローク53の重複量が等しい場合、ストローク53を短縮する場合は、「1×重複量」が短縮量になるのに対し、ストローク51、52を短縮する場合は、「2×重複量」が短縮量になる。したがって、ストローク53を短縮した方が、消失するストローク長が短い。
【0098】
ストローク分割・短縮手段109は、かかる計算に基づきストローク53を短縮すると決定する。短縮量は重複量と同じである。したって、ストローク分割・短縮手段109は、ストローク53の端点(L、M)を短縮量だけ短縮して、そのストローク53の短縮後の座標を決定する。
【0099】
図23は、分割・短縮されるストロークの別の例を模式的に説明する図の一例である。図23(a)は分割又は短縮する前のストロークにより描画された文字を示す。重複ストローク算出手段(正確にはストローク交点検出手段)108は、ストローク54とストローク55が交差することを検出する。
【0100】
このため、ストローク分割・短縮手段109は、ストローク54又は55のいずれかを分割又は短縮する。交点の場合は、分割することになる。
【0101】
まず、ストローク分割・短縮105は、仮に、両方のストロークをそれぞれ分割してみて、重複量だけ分割後のストロークを短縮した場合に、一方のストロークのみが完全に消失するか否かを判定する。
【0102】
図23(b)は、ストローク55を仮に分割して、重複量を短縮して描画された文字の一例を、図23(c)は、ストローク54を仮に分割して重複量を短縮して描画された文字の一例を、それぞれ示す。図23(b)に示すように、ストローク55を、ストローク54と重複しないように分割すると、ストローク55が完全に消失してしまう。したがって、図23の文字の場合、ルールR1が適用されるので、重複ストローク算出手段108は、ストローク54を分割対象とする。
【0103】
なお、完全に消失してしまうことは、ストローク55の端点(V,W)と交点(P,Q)の距離が、文字の太さより短いことから検出される。
【0104】
交差する場合、ストローク分割・短縮手段109は、交点をストロークの一方の端点としてストローク54を分割し、端点が(R,S)(P,Q)のストローク54aと端点が(P,Q)(T,U)のストローク54bを生成し、ストローク55との重複量を算出する。交差している場合、端点(P,Q)がストローク55と重複する重複量は文字の太さの半分と同じなので、特に算出することなく重複量を検出できる。短縮量は、短縮して移動した端点の広がりを考慮して文字の太さに等しい。
【0105】
したがって、ストローク分割・短縮手段109は、ストローク54を分割したストローク54aの2つの端点の座標を(R,S)(P、Q+太さ)に決定する。同様に、ストローク54を分割したストローク54bの2つの端点の座標を(P、Q−太さ)(T,U)に決定する。以上から、図23(c)のように、交差を解消した文字を描画することができる。
【0106】
このように、ストロークの分割・短縮を、重複がなくなる最低限度行うことで、文字の品質低下を最小限に抑制することができる。
【0107】
図24は、太文字の短縮を模式的に説明する図の一例である。図24(a)は、図16(a)(b)にて説明したように、すでに重複と断絶が解消されている。ストローク分割・短縮手段109は、例えば、平行ストローク1〜6から平行ストロークaに最も近い平行ストロークを決定し、その平行ストロークと重複している分だけ、平行ストロークaを短縮する。これを、平行ストロークb、cについて繰り返す。こうすることで、太文字を構成する各平行ストロークを短縮できる。
【0108】
また、同様に、図24(b)のような太文字同士が重複している場合、ストローク分割・短縮手段109は、例えば、平行ストロークa〜cから最も外側で平行ストローク1と交差する平行ストロークが平行ストロークa、cであることを決定する。ストローク分割・短縮手段109は、平行ストローク1と平行ストロークaの交点でストローク1を分割し、交点から太さ分だけ短いストローク1'を生成する。また、ストローク分割・短縮手段109は、ストローク1とストロークcの交点でストローク1を分割し、交点から太さ分だけ短いストローク1''を生成する。これを、ストローク2,3について繰り返すことで、交差する太いストローク同士を分割できる。
【0109】
〔短縮・分割以外の過熱防止方法〕
ストロークを短縮したり分割することなく、交差部や急な折れ線部でレーザ出力を一時的に弱めてもよい。この場合、短縮・分割してストロークの新たな座標を決定する必要がないので、全体制御装置100の処理負荷を低減できる。
【0110】
パワー調整手段112は、予めストローク同士や平行ストローク同士が発色により重複するストローク部分を例えばフォントデータに登録する。重複するストローク部分は、短縮・分割する場合と同様に、重複ストローク算出手段108が検出できる。すなわち、ストロークの一部を重複するストローク部分とすればよい。
【0111】
そして、ストロークを描画する際に、重複するストローク部分か否かを判定し、重複するストローク部分を描画する時、パワー調整手段112はレーザ出力を弱める。弱め方は、例えば、重複するストローク部分を描画する時間に伴い徐々にレーザ出力に低減していく方法、又は、重複するストローク部分の中心部に向かうにつれて徐々にレーザ出力に低減していく方法、を採用することができる。こうすることで、熱が留まりやすい領域ほど、レーザ出力を低減できる。また、重複するストローク部分を描画する場合、予め定めたレーザ出力に低減してもよい。この場合は、レーザ出力を高精度に制御する必要がないので、処理負荷を低減できる。
【0112】
〔重複回避の例外〕
文字の品質を確保する考え方に従い、重複していても分割又は短縮しない場合について説明する。図25は、分割・短縮した場合としない場合のストロークの例を模式的に説明する図の一例である。図25(a)は分割又は短縮する前のストロークにより描画された文字を示す。図25(a)の文字「C」が、直線のみから構成されるフォントデータの場合はそのまま描画すればよく、曲線を含むフォントデータの場合は、直線近似手段111が距離s毎に決定したストロークの座標を利用する。
【0113】
図25(a)では、ストローク56〜69の端点が一致している。したがって、重複ストローク算出手段108は、ストローク同士が交差していること又は端点間の距離が太さ以下であることを検出する。上記のルールR2が適用されるとすると、各ストローク56〜69が短縮され図25(b)に示す文字を描画することができる。
【0114】
しかしながら、このように短い距離で文字が途切れるとユーザが見づらいと感じる場合がある。そこで、ストローク分割・短縮手段109は、新たなルールR3を定義し、文字を描画する。
R3)2本のストロークが連続しており、かつ、それらが交わる角度が浅い場合には分割・短縮を行わない。
【0115】
図25(d)はストロークが交わる角度を説明する図である。例えば、ストローク57と58は図示するように交わる角度が大きい。ストロークが交わる角度が大きい場合、方向制御モータ12や方向制御ミラー13の慣性の影響が少なくレーザが重複した部分が過度に高温となることは少ない。そこで、ストローク分割・短縮手段109は、ストロークが連続している場合には、ストロークが交わる角度を算出し、交わる角度が所定値(例えば45度〜90度)以下の場合のみ、ストロークを短縮する。
【0116】
ストロークの交わる角度は、2つのストロークをベクトル(原点はどこでもよい)v1、v2で表し、ベクトルの内積をベクトルの大きさで割ることで得られる。ストロークの交わる角度を算出するのは、直線近似手段111である。
【0117】
cosθ= (v1・v2)/(|v1||v2|)
ルールR3を図25(a)の文字に適用すると、ストローク56と57以外の重複部では線部を短縮する必要がないと判定される。ストローク56と57で、ストローク分割・短縮手段109が例えばストローク56を短縮することで、図14(c)に示す文字が描画される。ルールR3により、交わる角度が深い場合には、レーザの向きを制御する方向制御モータ12と方向制御ミラー13の慣性の影響を考慮して重複を解消でき、交わる角度が小さい場合には重複したまま描画できるので文字の品質低下を防止できる。なお、このような描画の態様を人が筆で文字を描く場合に例えると、角度が深い場合は一旦「筆を上げる」こととし、角度が浅い場合は、「筆をあげず」に続けて描き続ける、というイメージになる。
【0118】
<S110:描画順の整理>
ストロークが重複しないように各ストロークの端点の座標が決定されたら、描画順整理手段110が、各ストロークの描画順を整理する。描画順を整理するのは、描画時間を短縮するためと、太文字を美しくかつサーマルリライタブルメディア20を損傷することなく描画するためである。
【0119】
描画順について説明するため、ストローク群を定義する。ストローク群とは、「筆をあげずに描き続ける一連のストロークをいう。したがって、例えば、図25(c)の、ストローク56が1つのストローク群、ストローク57〜69が1つのストローク群である。
【0120】
そして、太文字を描画する場合、ストローク群も複数になるので、これをストローク群グループと呼ぶ。描画順整理手段110は、1つのストローク群グループ内のストローク群を連続で描画するものとする。すなわち、ストローク群グループの1つのストローク群を描画し始めたら、他のストローク群グループの描画を挟まない。
【0121】
図26は、ストローク群グループの描画順を説明する図の一例である。太文字化により3つのストローク群1,2,3が得られている。この3つのストローク群1、2、3に対し、描画順整理手段110は最も端のストローク群1又は3から、法線方向に隣接した順番にレーザ光で描画する。図26(a)は上から順番にストローク群1、2、3を描画する場合のストローク群の描画順を、図26(b)は下から順番にストローク群3、2、1を描画する場合のストローク群の描画順を、それぞれ示す。なお、最も端のストローク群は、平行ストローク発生手段105が平行ストロークを発生した際の、「k」が最大値のストロークを含むストローク群である。
【0122】
ストローク群グループを連続して描画するのは、サーマルリライタブルメディア20の発色特性を考慮したためである。サーマルリライタブルメディア20は、温度Taで発色し、低い温度に冷えた状態から温度Tb(<Ta)に熱した後に冷却すると色が消える性質がある。このため、例えば最も端のストローク群1を描画後、十分に冷えてから隣接したストローク群2を描画すると、既に発色したストローク群1の外側部分が、ストローク群2の熱にさらされ、この熱によりTa程度になると、既に発色したストローク群1の領域では、色が消えてしまう可能性があるからである。
【0123】
したがって、ストローク群1を描画してからストローク群2を描画するまでの時間をあまり空けなければ、ストローク群1の色が消えることはない。このため、ストローク群グループの描画順は隣接した順番とすることが好ましい。
【0124】
しかしながら一方で、ストローク群1の長さが短い場合は、ストローク群1の冷却がほとんど行われないままストローク群2の熱が追加されるため、サーマルリライタブルメディアに過度な熱負荷が加わる可能性がある。
【0125】
以上から、ストローク群グループを描画する場合は、全体制御装置100は、ストローク群1を描画してからストローク群グループ2の描画を開始するまでの時間を制御する。冷却のために最小限確保すべき時間をTmin、それ以上の冷却が好ましくない最大の冷却時間をTmaxとする。後述する描画命令生成手段114は、描画速度(レーザ光の走査速度)とストローク群1の長さから、Tmin以下でストローク群2の描画を開始すると判定した場合、Tminまで時間をおいてから、ストローク群2の描画を開始する。また、描画命令生成手段114は、描画速度とストローク群1の長さから、ストローク群2の描画を開始するまでにTmax以上の時間がかかると判定した場合、ストローク群1を描画しきらずに、ストローク群2の描画を開始する。後者の場合、ストローク群を連続して描画するのでなく、ストローク毎に描画することが考えられる。なお、5ミリ角程度の文字を描画する上で、Tmaxの制約を考慮して描画順を再構成する必要はない。
【0126】
また、時間調整の代わりにレーザ出力を調整してもよい。この場合、例えば、パワー調整手段112は、ストローク群1を描画してからストローク群2の描画を開始するまでの時間がTmin以下の場合、レーザ出力を低減する。また、パワー調整手段は、ストローク群1を描画してからストローク群2の描画を開始するまでの時間がTmax以上の場合、レーザ出力を大きくする。
【0127】
また、一次元バーコードは全て直線で構成されている。したがって、バーコードを描画する場合は折れ線を描くことがないので、ストローク群にまとめた取り扱いが不要である。したがって、一次元バーコードの太い線を描画する場合は、この太い線を構成するストロークを最も端から順に描いていけばよい。
【0128】
ストローク群グループの描画の連続性を確保した後、描画順整理手段110は、描画時間が短くなるよう、換言すると、ストローク群の終点から次のストローク群の始点までの移動距離の総和が短くなるように描画順を調整する。
【0129】
ストロークが重複しないように各ストロークの端点の座標が決定されたら描画命令生成手段114が、描画命令を生成することで、文字を描画することができるが、描画順を最適化することで描画速度を向上させることができる。
【0130】
図10に戻り、描画順整理手段110は、ストロークの座標に基づきストロークの描画順を最適化する。最適化とは、例えばレーザ光の移動距離が最小となることをいう。
【0131】
図27(a)は、グループ化まで完了した文字「B」の各ストロークと描画結果の一例を示す。文字「B」はストローク71〜85により構成されている。この状態では、分割や曲線の線形化によりストロークが増えた場合、そのストロークの描画順はフォントデータが有していた順番を承継したもの,又は、描画順の情報が含まれていないとしてよい。このため、各ストロークに対し改めて描画順を整理する。図27(a)では、Bの元の書き順(筆順)は、I、II、III,IVの順であり、ストローク又はストローク群内の描画方向は、矢印で示したとおりである。
【0132】
描画順整理手段110は、次の手順で描画順を最適化する。
s1)所定のストローク(どのストロークでもよい)の端点と同じ座標を持つ他のストロークの端点を数珠繋ぎ的に探し、数珠繋ぎの順に並べ替えた上で1つのストローク群を決定する。
【0133】
例えば、図27(a)では、ストローク71の端点はストローク72の端点と一致し、ストローク72の端点はストローク73の端点と一致し、ストローク73の端点はストローク74の端点と一致し、ストローク74の端点はストローク75の端点と一致し、ストローク75の端点はストローク76の端点と一致し、ストローク76の端点はストローク77の端点と一致する。したがって、ストローク71〜77は、1つのストローク群であり、ストローク79〜84は、1つのストローク群である。
【0134】
s2)端点が同じ他のストロークがない場合は、1本のストロークのみで1つのストローク群とする。
例えば、図27(a)では、ストローク78,85が1つのストローク群である。
【0135】
s3)すべてのストロークをいずれかのストローク群に所属させる。
図27(a)では4つのストローク群が形成される。
【0136】
s4)ストロークがグループ化されると、描画順整理手段110は、ストローク群の間で描画順を決定する。所定のストローク群の終点にもっとも近い、他のストローク群の始点・終点を次々に探し、その順にストローク群の描画順を並べ替える。
並べ替えるとしたのは、元の描画順が残っているからであるが、元の描画順を初期化してから描画順を決定してもよい。
【0137】
例えば、ストローク群Iから始めると、ストローク群II(又はVIだがここではIIを選択する)があり、ストローク群IIの他方の端点の近くにはストロークグループIIIの端点がある。したがって、ストローク群I,II、III、VIの順番にストローク群の描画順を並べる。
【0138】
s5)注目しているストローク群の終点が、その先にあるストローク群の終点に近いと判断された場合は、その先にあるストローク群のストロークの順番およびその向きを反転させる。
【0139】
ストローク群内の描画方向は、ストローク群毎にストロークに一様な方向であればよく、元の描画順に基づき、ストローク群内の描画方向が既に定められている。図27(a)ではこれを矢印の方向で示したが、描画順を並べ替えた結果、元の描画順に基づく描画方向が適切でない場合がある。そこで、ストローク郡内の各ストロークの描画方向を最適化する。
【0140】
例えば、図27(a)ではストローク群Iの終点に最も近い、始点・終点を持つストローク群はストローク群VIとIIである。ストローク群VIは端点が始点なので、ストローク85の方向を変える必要はないが、ストローク群IIは端点が終点なのでストローク78の方向を逆にする。
【0141】
次に、方向が逆になったストローク群IIの終点に最も近い、始点・終点を持つストロークグループはストローク群IIIである。そのストローク群IIIの端点は終点なので、描画順整理手段110は、ストロークの順番及び方向を並べ替える。図27(b)は、以上のようにして描画方向が変更された描画方向の一例を示す。
s6)ストローク群の描画順、ストローク群内の描画方向を更新する。
以上の処理によりフォントデータに含まれる、ストローク群の描画順、ストローク群内の描画方向が変更されたので、描画順整理手段110は、新たな描画順及び描画方向でフォントデータを更新する。
【0142】
すなわち、描画順を整理する際、連続描画するストローク群を定め、その後、無駄な方向制御ミラー13の動きがないように、ストローク群間の距離が近いものを次の描画対象にし、描画順に応じて描画方向を決定することで、描画にかかる時間を短く(方向制御ミラー13の移動距離が最小となる)することができる。
【0143】
なお、太文字の場合は、ストローク群グループ間の描画順は、通常の太さの文字と同様に決定できる。1つのストローク群グループの描画順は同じになるためである。また、各ストローク群の描画方向は、1つのストローク群グループ内で共通にすればよい。
【0144】
〔描画順の更なる最適化〕
ストローク群の描画順を決定し、ストローク群内の各ストロークの順番及び方向を替える手順に代えて、端点間の距離を指標にしてストローク群の描画順を決定することができる。
図28は、ストローク群の描画順の決定を模式的に説明する図の一例である。図28(a)は「ナ」という文字であるが、重複を排除した結果、第1画が分割され、3つのストロークから構成されている。ここでは、説明のためi番目のストロークをSiと表現する。但し、n=ストロークの数として、i (0≦i≦n-1)である。
【0145】
n本のストロークがある場合、書き順の組み合わせは「n!」通りである。しかし、ストローク毎に、始点と終点のどちらから描画してもよいので、それを考慮すると、1組の描画順について、2^(n-1)通りの並び方が存在する。(^ はべき乗を表す)。
【0146】
したがって、n個のストロークを有する文字について、始点と終点を考慮した書き順の組み合わせは、「n ! × 2^(n-1)」通りの並び方がある。「ナ」についてn=3とすると、書き順は24通り存在する。
【0147】
図28では、例として3通りの並べ方を示した。重複を排除した直後の、ストロークの座標は3つなので、図28(b)に各ストロークの座標を示した。この座標に基づき描画順を最適化する。
図28(c)は、並べ替えを行っていない状態である。
図28(d)は並べ替えを行ったものである。
図28(e)は、始点・終点の逆転したものを交えて並べ替えを行ったものである。図28(c)〜(e)の先頭の[ ]は、「+」が始点と終点を逆転していないものを、「−」が始点と終点を逆転したものをそれぞれ示す。
【0148】
描画順整理手段110は、それぞれの並び方に対し、ストローク群間の距離の和を求める。すなわち、描画を行わずにただ描画対象位置が動く際の距離の合計を求める。
【0149】
図28(c)の例では、(160、32)から(272、480)に描画した後、(16,352)から(240、352)へ描画し、(304、352)から(448、352)に描画する。したがって、描画を行わずにただ描画対象位置が動く際の距離の合計は次のようになる。
【0150】
距離の合計=L1+L3
=√{(272−16)+(480−352)}+√{(240−304)+(352−352) }= 350.2
図28(d)の例では、(16、352)から(240、352)に描画した後、(304,352)から(448、352)へ描画し、(160、32)から(272、480)に描画する。したがって、描画を行わずにただ描画対象位置が動く際の距離の合計は次のようになる。
【0151】
距離の合計=L3+L2
=√{(240−304)+(352−352) }+√{(448−160)+(352−32) } = 494.5
図28(e)の例では、(16、352)から(240、352)に描画した後、(304,352)から(448、352)へ描画し、(270、480)から(160、32)に描画する。したがって、描画を行わずにただ描画対象位置が動く際の距離の合計は次のようになる。
【0152】
距離の合計=L3+L4
=√{(240−304)+(352−352) }+√{(448−272)+(352−480) } = 281.6
描画順整理手段110は、最も距離の合計が小さい描画順を選択する。図28の例では、例示した以外も含めた24通りの組み合わせの中で図28(e)の描画順が最も距離の合計が短い。
【0153】
なお、図28の例は、1文字だけの最適化であるが、2文字以上を連続して描画する場合、1つ前の文字の最後の描画位置と、次の文字の最初の描画位置まで、描画を行わずにただ描画対象位置が動くことになる。したがって、図28の処理を1文字ずつではなく、1枚のサーマルリライタブルメディア20全体の文字列に対し行うことで、処理時間は増大するが、描画そのものにかかる時間をより短くすることができる。
【0154】
フォントデータ生成手段113は、最終的に、描画順が最適化された文字のフォントデータをハードディスク35やメモリ32に記憶する。
【0155】
<S130:描画命令の生成>
図10に戻り、描画命令について説明する。図29は、重複が排除された文字の描画例とその描画命令の一例を示す。この文字「1」は図9に示したように3つのストロークから構成されていたが、ストローク91は交点(112、48)によりストローク91a、91bに分割され、ストローク93は折り返し点(112、448)により短縮されストローク93aとなっている。したがって、重複が排除された結果、ストロークは4つになっている。
【0156】
図29(a)は図9(b)と同じものであり、図29(b)は描画命令の生成対象となるストロークの座標である。フォントデータ生成手段113が生成したフォントデータが図29(a)に相当する。図29(c)は、図29(b)に基づく描画例を示す。なお、すでに描画順の最適化は終了しているものとする。
【0157】
このように、ストロークの座標、描画順、が定まれば、図9で説明した「m」と「d」を座標に対応づけることで描画命令を生成することができる。
図29(d)は、描画命令の一例を示す。図29(d)において「m」と「d」は図9と同じ制御コードであり、「z」は文字属性情報、「t」は文字の太さ、「w」は描画までの待ち時間(動いた方向制御ミラー13が完全停止するまでまって描画を安定させるための制御コード)を含んでいる。なお、「w」はレーザ照射部160に適した固定値が予め与えられており、例えばミリ秒やマイクロ秒、又は、レーザ照射部160に特有のユニット時間を単位とする。文字属性情報「z」は、太文字の場合に所定値(例えばストローク数)が入力される。文字の太さ「t」はユーザにより入力された値である。
【0158】
図29(b)によれば、最初に座標(48,48)まで描画せずに移動し、その後、所定時間「w 50」待つので、「m 48 48」「w 50」となる。
【0159】
次に、座標(48,48)から(80,48)まで筆をおいて描画し、その後、描画せずに座標(112,48)に移動し、その後、所定時間「w 50」待つので、「d 80 48」「m 112 48」 「w 50」となる。
【0160】
次に、座標(112,48)から座標(112,448)まで筆をおいて描画し、その後、描画せずに座標(80,400)に移動するので、「d 112 448」「m 80 400」「w 50」となる。
【0161】
次に、座標(80,400)から座標(48,352)まで筆をおいて描画し、その後、描画せずに座標(144,48)に移動するので、「d 48 352」「m 144 48」「w 50」となる。
【0162】
次に、座標(144,48)から座標(176,48)まで筆をおいて描画し、終了なので、「d 176 48」となる。
【0163】
このような描画命令により、図29(c)のように重複のない文字を最短時間で描画することができる。
【0164】
図30は、太文字の描画命令の生成を模式的に示す図の一例を、図31は描画例をそれぞれ示す。描画対象の文字は「イ」であり、フォントデータから取り出した各ストロークの座標は図30(a)のようになる。
【0165】
文字属性情報として太文字が指定されているので、平行ストローク発生手段105が元のストロークから3つの平行なストロークを発生させた。図31では、元のストロークが、ストローク2,ストローク5、ストローク8である。また、太字の一画を構成するストローク又はストローク群は、ストローク群グループとなるので、「イ」では2つのストローク群グループI、IIが生成される。
【0166】
この文字には折れ線部があるので、平行ストローク6、9には重複が、平行ストローク4,7には断絶が発生する。平行ストローク長さ調整手段106は、平行ストローク6、9の重複、平行ストローク4,7の断絶を解消し、平行ストローク6、9、4,7に新たな座標を設定する。図30(b)に示すように、この座標が平行ストローク6、9の(38,260)、平行ストローク4、7の(42,240)、である。実際には元のストローク2,5、8は除去されるが、3本の場合は、元のストロークと同じ位置に新たに発生された平行ストロークが描画されるので、除去のステップは省略する。
【0167】
次に、重複ストローク算出手段108は、平行ストローク1とストローク4〜9の重複、ストローク2とストローク4〜9の重複、平行ストローク3とストローク4〜9の重複、を検出する。そして、ストローク分割・短縮手段109は、平行ストローク1〜3を短縮する。図30(c)に示すように、短縮後の平行ストローク1〜3の終点の座標がそれぞれ(50,200)、(48,190)、(52,210)である。
【0168】
次に、描画順整理手段110が、ストロークが連続しており、かつ、それらが交わる角度が浅い部分を検出し、ストローク群に区分する。平行ストローク4,7が1つのストローク群、元のストローク5,8が1つのストローク群、平行ストローク6,9が1つのストローク群である。図30(d)に示すように、描画順整理手段110はストローク群毎に座標を集約する。
【0169】
次に描画順整理手段110は、描画順を整理する。図31では、図示する矢印の方向が最も描画時間が短いとする。
【0170】
次に、描画順整理手段110は、1つのストローク群グループ内のストローク群を連続で描画する。図30(e)に示すように、ストローク1、2、3、ストローク4,7、ストローク5,8、ストローク6,9の順に、描画順が整理された。図30(e)が、最終的なフォントデータに相当する。フォントデータ生成手段113はこのフォントデータをハードディスク35又はメモリ32に記憶させる。
【0171】
描画命令生成手段114は、図30(e)に基づき描画命令を生成する。描画命令生成手段114は、描画順に「m」「d」と座標を組み合わせて描画命令を生成する。図30(f)は、太文字の「イ」の描画命令の一例を示す。
【0172】
<S140:レーザによる描画>
かかる描画命令に従い、全体制御装置は文字を描画する。
I)全体制御装置は、座標(48,48)にて「50」単位時間待機した後、座標(80、48)までレーザ光で描画する。
II)その後、座標(80,48)から座標(112,48)まで、全体制御装置はレーザを照射せずに方向制御ミラーを駆動してレーザの照射位置を(112,48)まで移動させ、「50」単位時間待機した後、座標(112、448)までレーザ光で描画する。
III)その後、全体制御装置はレーザを照射せずに方向制御ミラーを駆動してレーザの照射位置を(80,400)までレーザを照射せずに移動し、座標(80,400)で「50」単位時間待機した後、座標(48、352)まで描画する。
IV)その後、全体制御装置はレーザを照射せずに方向制御ミラーを駆動してレーザの照射位置を、座標(144,48)まで移動させ、座標(144,48)で「50」単位時間待機した後、座標(176、48)まで描画する。
以上で図11の処理が終了する。
【0173】
〔太文字の描画方法の適用例〕
平行ストローク発生手段105が発生させた平行ストロークから、ストローク除去手段107が、最も端の2つの平行ストロークのみを残して、除去することで、内部が塗りつぶされない太文字、又は、袋文字を描画することができる。
図32は、内部が塗りつぶされた太文字と、内部が塗りつぶされていない太文字を示す図の一例である。図32(a)では「3」という文字が3本の平行ストロークで太文字にされている。
【0174】
図32(a)の「3」から、中心部の平行ストロークを削除し、外側だけ残すことにより、内部が塗りつぶされていない太文字が描画される 。「3」の中心部のように折れ線部の角度が深いと、重複を解消することに伴い塗りつぶされない空白部が生じるが、中心部のストロークを削除することで意匠性が向上する。
【0175】
また、図32(b)において、さらに他と接続しない平行ストロークの端部(点線部)に、平行ストロークとは垂直の方向のストロークを新たに発生させることで、輪郭のみからなる「袋文字」を描画することができる。例えば、平行ストローク発生手段105は、他と接続しない平行ストロークの端部から、太文字の太さ程度の距離内に別の、他と接続しない平行ストロークの端部を検出する。そして、それぞれの端部から重複しないように離れた位置に、平行ストロークの座標を決定することで、平行ストロークの端部に、平行ストロークとは垂直の方向のストロークを新たに発生させることができる。
【0176】
以上説明したように、本実施例のレーザ照射装置200は、太文字のためにストロークを発生させ、さらに、レーザ光の太さを考慮して、重複又は断絶を解消するので、サーマルリライタブルメディア20を過熱せずにかつ優れた美観の太文字を描画できる。
【0177】
なお、本実施例ではレーザで描画する場合を例に説明したが、熱風や冷風により描画してもよいし、電子線や放射線を用いてこれらに反応するメディアに描画してもよい。また、レーザは非接触で描画することができるが、プローブ(スタイラス)等を直接サーマルリライタブルメディアに接触させて描画してもよい。
【実施例2】
【0178】
実施例1では、レーザ照射装置が単体で文字を描画したが、レーザ照射装置をシステムとして実装してもよい。
図33は、本実施例のレーザ照射システム300のハードウェア構成図の一例を示す。図33において図5と同一部には同一の符号を付しその説明は省略する。図5の全体制御装置100が、図33の制御装置340、及び、描画命令生成用PC320に対応している。基幹システム330と描画命令生成用PC320はネットワーク又は専用線で接続されており、描画命令生成用PC320と制御装置340はネットワーク又は専用線で接続されている。
【0179】
基幹システム330は、例えば、コンテナで搬送する商品を管理するシステムで、各サーマルリライタブルメディア20に印刷する文字を、描画命令生成用PC320に指示する。指示には、商品名、日時情報、等、商品を管理するための描画対象データが含まれる。描画命令生成用PC320は、描画対象データを受信し、描画命令を生成する。描画命令の生成方法は実施例1と同様である。描画命令生成用PC320は、生成した描画命令を制御装置340に送信する。
【0180】
図34は、本実施例のレーザ照射システム300の機能ブロック図の一例を示す。図34において図10と同一部には同一の符号を付しその説明は省略する。図34では、描画命令生成用PC320が、図10の各機能を提供する。すなわち、描画命令を生成する機能を描画命令生成用PC320で行い、描画命令をレーザマーカ310に送信することになる。レーザマーカ310は描画命令を解釈し、方向制御ミラー13を駆動したり、レーザ光のON/OFFを切り替えてサーマルリライタブルメディア20に描画する。
【0181】
図35は、描画命令生成用PC320のハードウェア構成図の一例を示す。図35において図6と同一部には同一の符号を付しその説明は省略する。描画対象の元になるデータ(例えば描画したい文字の文字コード、文字の太さや大きさ、書体などの文字属性)は、基幹システム330からネットワーク装置1を介してハードディスク35などに記憶されている。また、文字を描く際に必要なフォントデータは、予めCD-ROM33から読み出され、ハードディスクに格納されている。
【0182】
CPU31は、記録媒体38から上述した処理機能、手順を実現する文字描画プログラム42を必要なデータとともに読み出し、処理の結果を、ネットワーク装置2を介してレーザマーカ310に送信する。必要に応じて処理結果をハードディスク35に保存したり、ディスプレイ37に出力したりすることもできる。
【0183】
本実施例によれば、描画命令生成用PC320とレーザマーカ310を別体にしたので、1つのレーザマーカ310に複数の描画命令生成用PC320を接続したり、描画命令生成用PC320だけを移動したり交換するなど、システムの柔軟性を向上できる。
【実施例3】
【0184】
実施例1、2では、文字の描画毎に、曲線を含む文字を直線化してから描画命令を生成した。しかし、フォントデータが曲線描画用のものであった場合(例えば、ベジェ曲線で表示されたスケラーブルフォントの場合)、ラスター処理して文字の形状が得られるまで座標が不明であり、その後、得られた曲線の文字を直線近似するため、処理負荷が大きい。
【0185】
そこで、本実施例では、描画命令を生成する・しないに関係なく、準備処理として、曲線を含む文字について曲線を直線に変換する準備処理を行うレーザ照射装置200又はレーザ照射システム300、について説明する。
【0186】
図36は、準備処理の手順を示すフローチャート図の一例を示す。準備処理は曲線の直線化なので、図10の直線近似手段111が実行する。
【0187】
直線近似手段111は、曲線ストロークフォント情報を取得する(S501)。曲線ストロークフォント情報は、ハードディスク35に記憶されている。曲線ストロークフォント情報は、曲線を有する文字のフォントデータである。曲線を有する文字には、予め、曲線を有する旨の識別情報が与えられている。
【0188】
直線近似手段111は、曲線ストロークフォント情報が有する曲線を直線化する(S502)。直線化の方法は図21で説明したとおりである。文字の大きさによって、同じストローク(曲線の)でも何本の直線により直線化されるかは異なるので、直線化は文字のサイズ毎に(例えば、5ミリ角、7ミリ角、10ミリ角等)行っておくことが好ましい。
【0189】
直線化近似手段111は、準備処理を施したフォントデータを、例えばハードディスク35に記憶する(S503)。直線近似手段111は、以上の処理を全ての曲線ストロークフォント情報に対し繰り返す。
【0190】
図36の処理により直線近似が終了したことになるので、以降は図11のステップS30以下を各手段が実行する。処理負荷の大きい曲線の文字を直線化を予め終了させておくことで、描画命令の生成時間を短縮でき、描画が終了するまでの時間も短縮できる。
【実施例4】
【0191】
実施例3の準備処理だけでなく、実施例1と同じ手順でさらにフォントデータから重複を排除し描画順を最適化したフォントデータ(以下、最適化フォントデータという)を予め生成し、記憶しておくことができる。最適化フォントデータを予め用意しておくことで、最適化フォントデータから容易に描画命令を生成できる。したがって、描画時の処理負荷や描画完了時間を低減できる。
【0192】
図37(a)は最適化フォントデータを生成するフォントデータ生成装置170の機能ブロック図の一例を示し、図37(b)はレーザ照射装置200の機能ブロック図を示す。なお、図37(a)において図10と同一部には同一の符号を付しその説明は省略する。
【0193】
図37(a)では、最適化フォントデータ生成手段123と最適化フォントデータ格納手段121を有し、図37(b)では最適化フォントデータ格納手段121を有する点で図10と異なる。フォントデータ生成装置170は、全体制御装置100と同様にコンピュータを実体とする。図37(a)と図10を比較すると明らかなように、最適化フォントデータの生成手順は実施例1と同様である。
【0194】
このうち、最適化フォントデータ生成手段123は、フォントデータ生成手段113と同様に、重複を解消した最適化フォントデータを最適化フォントデータ格納手段121に格納する。
【0195】
本実施例では、最適化フォントデータ格納手段121がハードディスク35に実装されている。最適化フォントデータ格納手段121は、記憶媒体に記憶したりネットワークを介して配布可能である。最適化フォントデータ格納手段121には、最適化フォントデータが文字コードに対応づけて記憶されており、最適化フォントデータ取得手段122は、最適化フォントデータ格納手段121から文字コードに対応づけられた最適化フォントデータを読み出す。
【0196】
最適化フォントデータは、例えば、図29(b)、図30(e)である。最適化フォントデータは、そのフォントデータから直接(複雑な演算処理することなく)、描画命令を生成できるフォントデータであれば、図29(b)、図30(e)とフォーマットが異なっていてもよい。
【0197】
最適化フォントデータは線の太さにより異なるので、最適化フォントデータ生成手段123は、線の太さ毎に最適化フォントデータを生成し、ハードディスク35に記憶する。また、線の太さに幅を設け、太さt1〜t2、t2〜t3、…のように、最適化フォントデータを用意しておいてもよい。これにより、ハードディスク35の容量を低減できる。なお、最適化フォントデータ格納手段121又は最適化フォントデータをサーバに登録しておき、描画の際にハードディスク35にダウンロードしてもよい。
【0198】
同様に、ストロークフォントデータはスケーラブルフォントなので、文字の大きさによって最適化フォントデータが異なる。また、太文字と通常の太さの文字も、最適化フォントは異なる。このため、文字の大きさ、太さ、文字属性毎に、最適化フォントデータを用意しておくことが好適となる。
【0199】
最適化フォントデータが生成されていれば、描画命令生成手段114は、1文字ごとに最適化フォントデータを読み出し、図29(d)、30(f)の描画命令を生成する。描画命令生成手段107は、方向制御ミラー13が完全停止するまでまって描画を安定させるための制御コードである「w」を、ハードディスク35又はレーザ照射部160から読み出す。そして、取得した文字の太さ「t」と、「w」を用いて描画命令を生成する。
【0200】
〔動作手順〕
図38(a)は最適化フォントデータの生成手順を、図38(b)は最適化フォントデータを用いた文字の描画手順をそれぞれ示す。
【0201】
最適化フォントデータの生成手順は、実施例1で説明した手順と同じである。すなわち、太さの情報と大きさの情報を設定し(S601)、対象文字コード取得手段101が対象となる文字の文字コードを取得する(S602)。太さや大きさの情報はユーザにより入力装置36から入力され、文字コードは文字コード表に従い順番に読み出せばよい。
【0202】
そして、フォントデータ取得手段102が、文字コードに対応づけられたフォントデータを読み出す(S603)。直線近似手段111は、読み出した文字のフォントデータに曲線が含まれていれば、直線化を施す(S604)。
【0203】
次に、太さ情報取得手段103は、文字属性情報(S605)を取得する。
【0204】
そして、文字属性取得手段104は、属性が太文字か否かを判定する(S606)。属性が太文字の場合(S606のYes)、平行ストローク発生手段105は平行ストロークを発生させ(S607)、平行ストローク長さ調整手段106は平行ストロークの長さを調整し(S608)、ストローク除去手段107は元のストロークを除去する(S609)。
【0205】
次に、重複ストローク算出手段108が重複ストロークを検出する(S610)。ついで、ストローク分割・短縮手段109がストロークを分割又は短縮する(S611)。
【0206】
そして、描画順整理手段110が描画順を整理する(S612)。そして、描画順に基づき、最適化フォントデータ生成手段123が、最適化フォントデータを生成し(S613)、最適化フォントデータ格納手段121に格納する(S614)。全ての文字を処理すると終了する(S615)。
【0207】
続いて、文字の描画手順について説明する。文字コード取得手段は、描画対象の文字の文字コードを取得する(S701)。また、最適化フォントデータ取得手段122は、文字の太さと大きさの情報を取得する(S702)。
【0208】
そして、最適化フォントデータ取得手段122は、文字コード、太さ、大きさに基づき最適化フォントデータ格納手段121を参照し、最適化フォントデータを読み出す(S703)。描画命令生成手段114は、最適化フォントデータから図24(b)のような描画命令を生成する(S704)。
【0209】
そして、描画対象の全ての文字の描画命令を生成したか否かを判定し(S705)、描画対象の全ての文字を処理するとレーザ照射部160によりサーマルリライタブルメディア20に文字を描画する(S706)。
【0210】
本実施例のレーザ照射装置200によれば、重複を排除し描画順を最適化した最適化フォントデータを予め記憶しておくことで、文字の描画時に処理負荷を低減し、描画時間を短縮することができる。
【符号の説明】
【0211】
11 レーザ発振器
12 方向制御モータ
13 方向制御ミラー
14 スポット径調整レンズ
15 焦点距離調整レンズ
20 サーマルリライタブルメディア
38 CD−ROM(記憶媒体)
41 フォントデータDB
42 文字描画プログラム
100 全体制御装置
101 対象文字コード取得手段
102 フォントデータ取得手段
103 太さ情報取得手段
104 文字属性取得手段
105 平行ストローク発生手段
106 平行ストローク長さ調整手段
107 ストローク除去手段
108 重複ストローク算出手段
109 ストローク分割・短縮手段
110 描画順整理手段
111 直線近似手段
112 パワー調整手段
113 フォントデータ生成手段
114 描画命令生成手段
121 最適化フォントデータ格納手段
160 レーザ照射部
200 レーザ照射装置
1081 ストローク交点検出手段
1082 垂線算出手段
1083 垂線の足存在範囲算出手段
1084 距離算出手段
1085 距離比較手段
【先行技術文献】
【特許文献】
【0212】
【特許文献1】特開2004−90026号公報
【特許文献2】特開2004−341373号公報
【特許文献3】特開昭61‐060177号公報
【特許文献4】特開平08‐279038号公報
【特許文献5】特開平09‐270018号公報
【特許文献6】特開平09‐305779号公報
【特許文献7】特開2008‐062506号公報

【特許請求の範囲】
【請求項1】
発色する媒体に伝達位置を変えながらエネルギーを断続的に伝達することで描画される、線画の描画情報を生成する情報処理装置であって、
線画を構成する一以上のストロークの形状情報を記憶する形状情報記憶手段と、
前記形状情報記憶手段から、描画対象の線画の形状情報を取得する形状情報取得手段と、
線画の太さ情報を取得する太さ情報取得手段と、
前記太さ情報に応じた数の、前記ストロークと略平行な複数の平行ストロークを生成し、複数の平行ストローク間の間隔を、前記太さ情報に基づいて定めるストローク生成手段と、
第1のストロークの第1の平行ストローク、又は、第1のストロークと接続されている第2のストロークの第2の平行ストローク、の少なくとも一方の長さを、調整するストローク長さ調整手段と、
長さの調整された前記平行ストロークの形状情報を、描画対象の線画の描画情報に登録する描画情報生成手段と、
を有することを特徴とする情報処理装置。
【請求項2】
前記太さ情報と前記形状情報に基づき、太さを含めた描画範囲が互いに重なり合う対のストロークを検出する重複線分検出手段と、
接続された2つのストロークのなす角を算出し、なす角が所定値以上の対のストロークを検出する急角度線分検出手段と、
対のストロークの重複、又は、なす角が所定値以上の対のストロークの重複、が解消されるよう、対のストロークの少なくとも一方を、短縮又は分割する形状情報調整手段と、
を有することを特徴とする請求項1の情報処理装置。
【請求項3】
前記太さ情報と前記形状情報に基づき、太さを含めた描画範囲が互いに重なり合う対のストロークを検出する重複線分検出手段と、
接続された2つのストロークのなす角を算出し、なす角が所定値以上の対のストロークを検出する急角度線分検出手段と、
互いに重なり合う対のストローク、及び、なす角が所定値以上の対のストローク、の重複部分を描画する際、前記エネルギーの出力を低減する出力低減手段と、
を有することを特徴とする請求項1又は2記載の情報処理装置。
【請求項4】
前記ストローク生成手段は、前記平行ストロークを、元のストロークと平行、かつ、元のストロークと直交する方向の両側に同じ数ずつ配置する、
ことを特徴とする請求項1〜3いずれか1項記載の情報処理装置。
【請求項5】
前記平行ストロークを生成した後、元のストロークの形状情報を描画情報から除去するストローク除去手段、
を有することを特徴とする請求項1〜4いずれか1項記載の情報処理装置。
【請求項6】
前記ストローク除去手段は、
前記平行ストロークの数が偶数である場合にのみ、元のストロークの形状情報を描画情報から除去する、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記ストローク除去手段は、
複数の前記平行ストロークのうち、元のストロークから最も遠い位置の、元のストロークの両側の前記平行ストロークのみを残し、残りの前記平行ストロークを描画情報から除去する、
ことを特徴とする請求項4記載の情報処理装置。
【請求項8】
複数のストロークの描画順を整理する描画順整理手段を有し、
前記描画順整理手段は、同じストロークから生成された複数の前記平行ストロークを、別のストロークから生成された前記平行ストロークを描画することなく、描画するよう描画順を決定する、
ことを特徴とする請求項1〜7いずれか1項記載の情報処理装置。
【請求項9】
複数のストロークの描画順を整理する描画順整理手段を有し、
前記第1の平行ストロークと前記第2の平行ストロークの端点が接続されている場合、
前記描画順整理手段は、前記第1の平行ストロークと前記第2の平行ストロークを1つのストローク群として扱い、
第1のストローク及び第2のストロークから生成された複数のストローク群を、第1及び第2以外のストロークから生成された前記平行ストロークを描画することなく、描画するよう描画順を決定する、
ことを特徴とする請求項1〜7いずれか1項記載の情報処理装置。
【請求項10】
描画情報に基づき描画命令を生成する際、
直前のストロークの描画時間が所定値以下の場合、直前のストロークの描画後、次のストロークの描画までに待ち時間を挿入する描画命令生成手段、
を有することを特徴とする請求項8又は9項記載の情報処理装置。
【請求項11】
直前のストローク群の描画時間が所定値以下の場合、
次のストローク群の描画の際、前記エネルギーの出力を低減する出力低減手段、
を有することを特徴とする請求項9記載の情報処理装置。
【請求項12】
前記形状情報に曲線が含まれている場合、
該曲線を複数の直線で近似して直線の形状情報を生成する直線近似手段、
を有することを特徴とする請求項1〜11いずれか1項記載の情報処理装置。
【請求項13】
前記ストローク長さ調整手段は、
前記第1の平行ストロークと前記第2の平行ストロークの端点が一致するように、前記第1の平行ストローク又は第2の平行ストローク、の少なくとも一方の長さを調整する、
ことを特徴とする請求項1〜11いずれか1項記載の情報処理装置。
【請求項14】
請求項1〜13いずれか1項記載の情報処理装置と、
レーザを照射するレーザ発振器と、
レーザの照射方向を変える方向制御ミラーと、
方向制御ミラーを駆動する方向制御モータと、
スポット径調整レンズと、
焦点距離調整レンズと、
を有することを特徴とするレーザ照射装置。
【請求項15】
発色する媒体に伝達位置を変えながらエネルギーを断続的に伝達することで描画される、線画の描画情報を生成する描画情報生成方法であって、
形状情報取得手段が、線画を構成する一以上のストロークの形状情報を記憶する形状情報記憶手段から、描画対象の線画の形状情報を取得するステップと、
太さ情報取得手段が、線画の太さ情報を取得するステップと、
ストローク生成手段が、前記太さ情報に応じた数の、前記ストロークと略平行な複数の平行ストロークを生成し、複数の平行ストローク間の間隔を、前記太さ情報に基づいて定めるステップと、
ストローク長さ調整手段が、第1のストロークの第1の平行ストローク、又は、第1のストロークと接続されている第2のストロークの第2の平行ストローク、の少なくとも一方の長さを、調整するステップと、
描画情報生成手段が、長さの調整された前記平行ストロークの形状情報を、描画対象の線画の描画情報に登録するステップと、
を有することを特徴とする描画情報生成方法。
【請求項16】
伝達位置を変えながらエネルギーを断続的に伝達して媒体を発色させる装置と、描画対象の線画の描画情報を生成する情報処理装置と、を有する制御システムであって、
前記情報処理装置は、
前記形状情報記憶手段から、描画対象の線画の形状情報を取得する形状情報取得手段と、
線画の太さ情報を取得する太さ情報取得手段と、
前記太さ情報に応じた数の、前記ストロークと略平行な複数の平行ストロークを生成し、複数の平行ストローク間の間隔を、前記太さ情報に基づいて定めるストローク生成手段と、
第1のストロークの第1の平行ストローク、又は、第1のストロークと接続されている第2のストロークの第2の平行ストローク、の少なくとも一方の長さを、調整するストローク長さ調整手段と、
長さの調整された前記平行ストロークの形状情報を、描画対象の線画の描画情報に登録する描画情報生成手段と、
描画情報から前記装置が解釈する描画命令を生成する描画命令生成手段と、を有し、
前記装置は、描画命令に基づき伝達位置を変えながらエネルギーを断続的に伝達して媒体を発色させる、
ることを特徴とする制御システム。
【請求項17】
発色する媒体に伝達位置を変えながらエネルギーを断続的に伝達することで描画される、線画の描画情報を生成するプログラムであって、
コンピュータを、
線画を構成する一以上のストロークの形状情報を記憶する形状情報記憶手段から、描画対象の線画の形状情報を取得する形状情報取得手段と、
線画の太さ情報を取得する太さ情報取得手段と、
前記太さ情報に応じた数の、前記ストロークと略平行な複数の平行ストロークを生成し、複数の平行ストローク間の間隔を、前記太さ情報に基づいて定めるストローク生成手段と、
第1のストロークの第1の平行ストローク、又は、第1のストロークと接続されている第2のストロークの第2の平行ストローク、の少なくとも一方の長さを、調整するストローク長さ調整手段と、
長さの調整された前記平行ストロークの形状情報を、描画対象の線画の描画情報に登録する描画情報生成手段と、
として機能させることを特徴とするプログラム。
【請求項18】
請求項17記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項19】
請求項1〜13いずれか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

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate


【公開番号】特開2010−264691(P2010−264691A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−118907(P2009−118907)
【出願日】平成21年5月15日(2009.5.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】