JP4198098B2 - 表示装置、プログラムおよび記録媒体 - Google Patents

表示装置、プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4198098B2
JP4198098B2 JP2004216462A JP2004216462A JP4198098B2 JP 4198098 B2 JP4198098 B2 JP 4198098B2 JP 2004216462 A JP2004216462 A JP 2004216462A JP 2004216462 A JP2004216462 A JP 2004216462A JP 4198098 B2 JP4198098 B2 JP 4198098B2
Authority
JP
Japan
Prior art keywords
point
line
display device
pattern
positional relationship
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004216462A
Other languages
English (en)
Other versions
JP2006039780A (ja
Inventor
至幸 小山
瑞 作田
収 西田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2004216462A priority Critical patent/JP4198098B2/ja
Priority to PCT/JP2005/013426 priority patent/WO2006009228A1/ja
Priority to CN2005800246142A priority patent/CN1998024B/zh
Priority to KR1020077000567A priority patent/KR100866362B1/ko
Publication of JP2006039780A publication Critical patent/JP2006039780A/ja
Priority to HK07113184.2A priority patent/HK1104864A1/xx
Application granted granted Critical
Publication of JP4198098B2 publication Critical patent/JP4198098B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Description

本発明は、線を表示する表示デバイスと、表示デバイスを制御する制御部とを備えた表示装置、プログラムおよび記録媒体に関する。本発明によって、例えば、低中解像度の表示装置に曲線を有する文字を高速で表示できる。
アウトラインフォントは、閉曲線の輪郭で文字を表す。このアウトラインフォントは、ベクトルデータに基づいて文字を表示する技術に広く用いられている。アウトラインフォントは、例えば、TrueTypeフォントおよびPostScriptフォントである。TrueTypeフォントの曲線では、2次のB−スプライン曲線が使用される(式1参照)。PostScriptフォントの曲線では、ベジェ曲線が使用される(式2参照)。
〔式1〕
x=(1−t)+2t(1−t)x+t
y=(1−t)+2t(1−t)y+t
0≦t≦1
〔式2〕
x=(1−t)+3(1−t)tx+3(1−t)t+t
y=(1−t)+3t(1−t)ty+3(1−t)t+t
0≦t≦1
高解像度の表示装置に文字を表示する場合に、これらのフォントは適している。特に、文字を紙に印刷する場合に、これらのフォントは好適である。なお、式1および式2で表される曲線は、曲線の両端(始点と終点)は通るが、始点と終点との間の点(制御点)は通らない。
ストロークフォントは、厚みを持たないストロークで文字を表す。このストロークフォントは、アウトラインフォントと同様に、ベクトルデータに基づいて文字を表示する技術に広く用いられている。
低中解像度の表示装置に文字を表示する場合に、このフォントは適している。このストロークフォントを表示装置に表示する際には、一般的に、表現すべき線が曲線であるか直線であるかを問わず、複数の点の各々を直線で結ぶことによって、曲線または直線を表現するため、アウトラインフォントに比べて高速に描画できる。
特許文献1は、2点を結ぶ直線を高速に描画する技術を開示する。
この技術は、直線の傾きに基づいて商数列を求める。次に、商数列から制御数列を求め、制御数列に基づいて、直線を高速で描画する。
例えば、直線の傾き7/18に基づいて商数列{2,1,1,3}を求める。次に、商数列{2,1,1,3}から制御数列{1,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,0}を求める。直線の描画位置をx方向に増加する際に、制御行列の値が「1」である場合には、yの値を増加して直線を描画し、制御行列の値が「0」である場合には、yの値を増加せずに、直線を描画する。
特許文献1には、商数列および制御数列を予め計算しておくことも開示されている。
特許文献2は、曲線を高速に描画する技術を開示する。この技術は、媒介変数に関する値を予め計算し、記憶しておき、曲線をベジェ曲線等で表現する際に、これらの値を用いる。
例えば、式2で媒介変数tを1024分割した場合、tのとりうる値は(0,1/1024,2/1024,3/1024,…,1023/1024,1024/1024)となる。ここで、tの値とtの値との関係およびtの値と3(1−t)tの値との関係を予め計算し、これらの関係をテーブル化しておく。また(1−t)および3t(1−t)の計算は、tの値、3(1−t)tの値を利用する。このように、特許文献2に開示の技術によれば、高速に、式2で示される計算を処理できる。
特開平9−161082号公報 特開平1−255076号公報
しかし、従来の技術には、以下に示す問題点がある。
中低解像度の表示装置にアウトラインフォントを表示する場合には、線幅のばらつきおよび線の潰れが発生しやすく、文字の品位がよくない。
特許文献2の技術では、複数の点の各々を描画するたびに浮動小数点演算を伴った計算が発生し、表示の高速化に限界がある。一般に、CPUの浮動小数点演算は、CPUの整数演算より遅い。
表示装置にストロークフォントを表示する場合には、文字の曲線部分にガタツキが目立つ。ストロークフォントは、文字の曲線部分を直線で表すからである。特に、文字を大きくしていくと、ガタツキが顕著になる。
文字の曲線部分を2次のB−スプライン曲線またはベジェ曲線で表現することでは、厚みのないストロークフォントをデザインすることが難しい。線が曲線の両端の間の制御点を通らないからである。制御点をすべて通る曲線補間として、3次スプラインを利用した曲線補間がある。しかし、この補間は、端点に対して制約条件を設ける必要があり、条件付けが難しいという問題がある。また高速化が難しいという問題もある
本発明は、上記問題点に鑑みてなされたものであり、高速に線を描画でき、かつ線を示すデータの記録容量を少なくできる文字図形表示装置、プログラムおよび記録媒体を提供することを目的とする。
本発明の表示装置は、線を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた表示装置であって、前記制御部は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を、前記第1点と前記第2点とを結ぶ第1直線と前記第2点と前記第3点とを結ぶ第2直線との角度に応じて決定するとともに、前記第1点、前記第2点および第4点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第4点との第2の位置関係を決定し、予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するとともに、前記少なくとも1つの線のパターンの中から、前記決定された第2の位置関係に対応する1つの線のパターンを選択し、前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するものであり前記制御部では、前記第3点と前記第4点とが、前記第2点の周囲に割当てられた複数の領域のうちの同じ領域に与えられたとき、前記選択された第1の位置関係に対応する1つの線のパターンと前記選択された第2の位置関係に対応する1つの線のパターンとが同じにされ、これにより、上記目的が達成される。
前記第1の位置関係と前記線のパターンとの対応関係を示すパターン情報を保持する保持部をさらに備え、前記線のパターンの選択は、前記保持部に保持されている前記パターン情報を参照して行われてもよい。
前記第1点は原点に与えられ、前記第2点は第象限に与えられてもよい。
本発明の表示装置は、線を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた表示装置であって、前記制御部は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定し、予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択し、前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するものであり、前記第3点は、前記第2点の周囲に割り当てられた複数の領域のうちの1つに与えられるものであり、前記複数の領域のうちの1つの領域と、前記1つの領域とは異なる領域とは、異なった大きさを有しており、これにより上記目的が達成される
本発明の表示装置は、線を表示する表示デバイスと、前記表示デバイスを制御する制御部とを備えた表示装置であって、前記制御部は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定し、予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択し、前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するものであり、前記第3点は、前記第2点の周囲の一部のみに割り当てられた複数の領域のうちの1つに与えられるものであり、これにより上記目的が達成される
本発明のプログラムは、線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータに表示処理を実行させるプログラムであって、前記表示処理は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を、前記第1点と前記第2点とを結ぶ第1直線と前記第2点と前記第3点とを結ぶ第2直線との角度に応じて決定するとともに、前記第1点、前記第2点および第4点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第4点との第2の位置関係を決定するステップと、予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するとともに、前記少なくとも1つの線のパターンの中から、前記決定された第2の位置関係に対応する1つの線のパターンを選択するステップと、前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するステップとを包含し、前記線のパターンを選択するステップでは、前記第3点と前記第4点とが、前記第2点の周囲に割当てられた複数の領域のうちの同じ領域に与えられたとき、前記選択された第1の位置関係に対応する1つの線のパターンと前記選択された第2の位置関係に対応する1つの線のパターンとが同じにされ、これにより、上記目的が達成される。
本発明のプログラムは、線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータに表示処理を実行させるプログラムであって、前記表示処理は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定するステップと、予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するステップと、前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するステップとを包含し、前記第3点は、前記第2点の周囲に割り当てられた複数の領域のうちの1つに与えられるものであり、前記複数の領域のうちの1つの領域と、前記1つの領域とは異なる領域とは、異なった大きさを有し、これにより上記目的が達成される。
本発明のプログラムは、線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータに表示処理を実行させるプログラムであって、前記表示処理は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定するステップと、予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するステップと、前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するステップとを包含し、前記第3点は、前記第2点の周囲の一部のみに割り当てられた複数の領域のうちの1つに与えられるものであり、これにより上記目的が達成される。
本発明の記録媒体は、線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータによって読み取り可能な記録媒体であって、前記記録媒体は、前記情報表示装置を構成するコンピュータに表示処理を実行させるプログラムとして、上述した本発明のいずれかのプログラムを記録したものであり、これにより、上記目的が達成される。
本発明の表示装置、プログラムおよび記録媒体によれば、第1点と第2点とを通る線の軌道を計算によって求めることなく、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された位置関係に対応する1つの線のパターンを選択することによって、第1点と第2点とを通る線を表示できる。したがって、複雑な計算が必要とされる第1点と第2点とを通る線の軌道の計算を行う必要がなく、第1点と第2点とを通る線を高速に表示できる。
本発明では、第1点と第2点とを通る線のパターンと3点の位置関係との対応を示すテーブルを利用して、3点を結ぶ曲線を描画する。したがって、テーブルの読み出しのみで曲線の描画が可能となり、複雑な演算が発生しない。その結果、第1点と第2点とを通る線を高速に描画できる。
さらに、第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度を分類し、テーブル化する。その結果、容量を少なくできる。
さらに、第2点が第1象限にある場合のみ、第1点と第2点とを通る直線と第2点と第3点とを通る直線の角度の分類とテーブル化とを行う。したがって、3点の位置の組み合わせを減らすことができる。その結果、さらに容量を少なくできる。
1.本発明の原理
以下、図を参照して、本発明の原理を説明する。
本発明は、曲線を描画する際に、3点を結ぶ曲線に注目し、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された位置関係に対応する1つの線のパターンを選択することによって、第1点と第2点とを通る線を表示できる。第1点と第2点とを通る線の軌跡を計算することなく、第1点と第2点とを通る線のパターンを選択することによって、第1点と第2点とを通る線を高速で表示できる。
また、位置関係と線のパターンとの対応関係を示すパターン情報を保持する保持部をさらに備え、線のパターンの選択は、保持部に保持されているパターン情報を参照して行う。パターン情報をテーブルで表し、このテーブルに基づいて曲線を描画する。
パターン情報をテーブルで表し、これらのテーブルに基づいて曲線を描画する理由を以下に示す。
第1点は、原点(0,0)とする。第2点は、第1点からのx方向の距離の増減およびy方向の距離の増減が±d以内であるとする。第3点は、第2点からのx方向の距離の増減およびy方向の距離の増減が±d以内であるとする。
これらの場合には、第1点と第2点との組み合わせは(2d+1)×(2d+1)通りである。第2点と第3点の組み合わせも(2d+1)×(2d+1)通りである。したがって、3点の組み合わせは、(2d+1)通りである。このように、3点の位置の組み合わせは、dに応じて劇的に増加する。例えば、d=5である場合には、14,641通りであるが、d=10である場合には、194481通りであり、d=20である場合には、2825761通りである。文字表示装置に格納可能なデータの容量には限界があるため、3点の位置の組み合わせが多い場合には、これらの組み合わせをテーブルで表し、これらのテーブルを文字表示装置に格納することは、困難である。
上述のように、本発明は、2つの異なった曲線(第1曲線、第2曲線)を表示する場合でも、第1曲線の第1点および第2点と第2曲線の第1点および第2点とが同じであり、第1曲線の第1点と第2点とを通る直線と第1曲線の第2点と第3点とを通る直線との角度と、第2曲線の第1点と第2点とを通る直線と第2曲線の第2点と第3点とを通る直線との角度とが所定の値より近い場合には、第1点と第2点とを通る線のパターンは、同じパターンにしても、第1曲線と第2曲線とを観る者には違和感がないことに着目する。
図1は、3点を通る曲線の一例を示す。
この曲線は、第1点(0,0)、第2点(7,4)、第3点(10,10)を通る。図1において、黒塗りの点は、これらの3点であり、ハッチの多い点は、第1点と第2点とを通る線に含まれる点であり、ハッチの少ない点は、第2点と第3点とを通る線に含まれる点である。また第1点と第2点とを通る直線と、第2点と第3点とを通る直線とが示されている。
図2は、3点を通る曲線の別の一例を示す。
この曲線は、第1点(0,0)、第2点(7,4)、第3点(13,16)を通る。第1点(0,0)および第2点(7,4)は、図1の第1点および第2点と同じであり、第3点(13,16)は、図1の第2点と第3点とを通る直線の延長上の点である。
図1の線のパターンと図2の線のパターンとを比較した場合、第2点と第3点とを通る線のパターンは異なるが、第1点と第2点とを通る線のパターンは同じである。
図3は、3点を通る曲線の更に別の一例を示す。
この曲線は、第1点(0,0)、第2点(7,4)、第3点(12,17)を通る。第1点(0,0)および第2点(7,4)は、図2の第1点および第2点と同じであり、第3点(12,17)は、図2の第3点の左上の点である。図2の第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度と、図3の第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度は、近くなっている。
図2の線のパターンと図3の線のパターンとを比較した場合、第2点と第3点とを通る線のパターンは異なるが、第1点と第2点とを通る線のパターンは同じである。
図4は、3点を通る曲線の更に別の一例を示す。
この曲線は、第1点(0,0)、第2点(7,4)、第3点(14,16)を通る。第1点(0,0)および第2点(7,4)は、図2の第1点および第2点と同じであり、第3点(14,16)は、図3の第3点の右下の点である。
図2の線のパターンと図4の線のパターンとを比較した場合、第2点と第3点とを通る線のパターンは異なるが、第1点と第2点とを通る線のパターンは同じである。
図1〜図4を参照して説明したように、異なった曲線を描画する場合に第1点と第2点とを通る線のパターンを同じにしても、曲線を観る者には違和感が生じない。
図5は、3点を通る曲線の更に別の一例を示す。この曲線は、第1点(0,0)、第2点(7,4)、第3点(5,12)を通る。
図6は、3点を通る曲線の更に別の一例を示す。この曲線は、第1点(0,0)、第2点(7,4)、第3点(14,6)を通る。
図5および図6で示された第1点(0,0)、第2点(7,4)は、図1〜図4で示された第1点、第2点と同じであるが、第1点と第2点とを通る直線と、第2点と第3点とを通る直線の角度が図1〜図4で示された角度と大きく異なっており、第1点と第2点とを通る線の軌跡は図1〜図4と異なる。
図7は、第2点の周囲に割り当てられた領域1〜領域28を示す。
領域1〜領域28は、第2点の周囲の領域を28等分割することによって割り当てられる。同じ領域に第3点がある場合には、第1点と第2点とを通る線のパターンを同じにすることで、3点の組み合わせを少なくする。例えば、第1曲線では、第3点が領域1内の位置Aにあり、第2曲線では、第3点が領域1内であって、位置Aとは異なる位置Bにある場合には、第1曲線の第1点と第2点とを通る線のパターンと第2曲線の第1点と第2点とを通る線のパターンとを同じにする。
第2点の周囲に領域1〜領域28が割り当てられ、第1点が原点(0,0)、第2点が(X,Y)(X≦±d、Y≦±d:第1点からのx方向の距離およびy方向の距離の増減が±d以内)である場合には、第3点の位置は、領域1〜領域28の何れかである。したがって、3点の組み合わせは、(2d+1)×28通りである。
さらに、第2点が第1象限にある場合のみ、位置関係と線のパターンとの対応関係を示すテーブルを生成し、第2点が第1象限以外の象限にある場合、このテーブルを利用して位置関係と線のパターンとの対応関係を求めることによって、テーブルの数を減らすことが可能である。
第2点が第1象限にある場合のみ、第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度と第1点と第2点とを通る曲線のパターンとの対応関係をテーブルで表す。第2点が第2象限にある場合はy軸に対する対称性を考慮し、第2点が第3象限にある場合は原点に対する対称性を考慮し、第2点が第4象限にある場合にはx軸に対する対称性を考慮する。この場合、3点の組み合わせは、(d+1)×28通りである。例えば、d=5である場合には、組み合わせは1008通り、d=10である場合には、組み合わせは3388通り、d=20である場合には、組み合わせは12348通りであり、これらの組み合わせを表したテーブルを格納するために必要な容量を小さくできる。
なお、第2点の周囲に割り当てる領域は、28分割に限定されない。分割数は任意である。分割数を増やすとテーブルの容量は増えるが、曲線の品位を上げることが可能である。また均等な分割に限定されない。角度の浅いところでは、細かく分割し、角度が深いところでは粗く分割してもよい。
図28は、第2点の周囲に割り当てられた領域の一例を示す。
図28(a)は、大きさが異なる複数の領域(分割形態1)を示す。
第2点の周囲には、複数の領域1〜領域8が割り当てられている。第3点は、領域2に与えられている。例えば、領域1と領域4とは異なった大きさである。
図28(b)は、第2点の周囲の一部のみに割り当てられた領域(分割形態2)を示す。
第2点の周囲には、複数の領域1〜領域5が割り当てられている。しかし、それ以外の部分(斜線部分)には、領域が割り当てられていない。
表示対象に応じて、第2点の周囲の分割形態を選択できる。例えば、漢字を表示する場合には、分割形態1を選択する。カタカナを表示する場合には、分割形態2を選択する。なお、「表示対象」とは、表示デバイスに表示される対象を意味する。例えば、文字(漢字、平仮名、カタカナ、アルファベットなど)、図形、記号である。
以下、図を参照して本発明の実施の形態を説明する。
2.文字表示装置
図8は、本発明の実施の形態の文字表示装置100の構成を示す。
文字表示装置100は、例えばパーソナルコンピュータであり得る。パーソナルコンピュータとしては、デスクトップ型、ラップトップ型などの任意のタイプのコンピュータが使用され得る。あるいは、文字表示装置は、ワードプロセッサであってもよい。
さらに、文字表示装置は、表示デバイスを備えた電子機器、情報機器など任意の情報表示端末であり得る。例えば、文字表示装置は、液晶表示デバイスを備えた電子機器、携帯情報ツールである携帯情報端末、PHSを含む携帯電話または一般の電話機/FAXなどの通信機器であってもよい。
文字表示装置100は、入力デバイス10と、線を表示する表示デバイス30と、表示デバイス30を制御する制御部20と、補助記憶装置40とを含む。
入力デバイス10は、表示デバイス30に表示すべき文字を表す情報を制御部20に入力するために使用される。文字を表す情報は、例えば、文字を認識するコードと文字の大きさを示すサイズ情報とを含む。
入力デバイス10としては、コードとサイズを入力することが可能な任意のタイプの入力デバイスが使用され得る。キーボード、マウスまたはペン入力装置などの入力デバイスが使用され得る。文字表示装置100が携帯電話である場合には、通信先の電話番号を指定するための数字キーがコードやサイズを入力するために用いられてもよい。文字表示装置100がインターネットを含む通信回線に接続するための手段を備えている場合には、その通信回線から受信した電子メールに含まれるメッセージが表示デバイス30に表示されてもよい。この場合には、その通信回線に接続するための手段が、入力デバイス10として機能する。
補助記憶装置40には、文字表示プログラム41と、プログラムを実行するために必要な文字データ42、直線テーブル43および曲線テーブル44が格納されている。
文字表示プログラム41は、表示デバイスに出力するサイズに合わせて文字データ42をスケーリングするスケーリングプログラム41aと、スケーリングされた結果を量子化する量子化プログラム41bと、量子化された結果が表示デバイスに表示可能になるように量子化された結果を描画データ化する描画データ化プログラム41cとを含む。
補助記憶装置40としては、文字表示プログラム41、文字データ42、直線テーブル43および曲線テーブル44を格納することが可能な任意のタイプの補助記憶装置が使用され得る。補助記憶装置40において、文字表示プログラム41、文字データ42、直線テーブル43および曲線テーブル44を格納する記憶媒体としては、任意の記録媒体が使用され得る。例えば、ハードディスク、CD−ROM、CD−R、MO、DVD、ICカードが好適に使用され得る。
なお、文字表示プログラム41、文字データ42、直線テーブル43および曲線テーブル44は、補助記憶装置40に備えられた記録媒体に格納されることに限定しない。例えば、文字表示プログラム41、文字データ42、直線テーブル43および曲線テーブル44は、主メモリ22に格納されてもよいし、ROM(図示せず)に格納されてもよい。ROMは、例えばマスクROM、EPROM、EEPROM、フラッシュROMであり得る。これらのデータをROMに格納する場合には、そのROMを交換するだけでいろいろな処理のバリエーションを容易に実現することができる。例えば、ROMは、文字表示装置が携帯型の情報端末または携帯電話である場合に好適に適用されうる。
さらに、文字表示プログラム41、文字データ42、直線テーブル43および曲線テーブル44は、上記ディスクやカードなどの記憶装置や半導体メモリなどのようにプログラムやデータを固定的に保持する記憶媒体に保持され得る。文字表示装置がインターネットを含む通信回線に接続するための手段を備えている場合には、その通信回線から文字表示プログラム41、文字データ42、直線テーブル43および曲線テーブル44の少なくとも一部をダウンロードすることが出来る。この場合、ダウンロードに必要なローダープログラムは、ROM(図示せず)に予め格納されていてもよいし、補助記憶装置40から制御部20にインストールされてもよい。
制御部20は、CPU21と主メモリ22とを含む。
CPU21は、文字表示装置の全体を制御および監視するとともに、補助記憶装置40に格納されている文字表示プログラム41を実行する。
主メモリ22は、入力デバイス10から入力されたデータおよび出力デバイス30に表示するためのデータや文字表示プログラム41を実行するのに必要なデータを一時的に格納する。主メモリ22は、CPU21によって制御される。
CPU21は、主メモリ22に格納された各種のデータに基づいて文字表示プログラム41を実行することにより、描画データを生成する。生成された描画データは、主メモリ22にいったん格納された後、表示デバイス30に出力される。描画データが表示デバイス30に出力されるタイミングは、CPU21によって制御される。
図9は、文字データ42の一例を示す。具体的には、図9に示された文字データは、文字「大」のベクトルデータであり、256メッシュの解像度を有する。図9に示された文字データは、複数の座標データを含む。
ラインNoは、文字「大」を構成するラインに付された番号である。Xは、文字「大」を構成するライン上の点のX座標値を示す。Yは、文字「大」を構成するライン上の点のY座標値を示す。
文字「大」は、3本のラインで構成されている。3本のラインの各々は、位置を表す座標データを複数有する。ラインNo1は、(8,184)と(247,184)との2点を結び、ラインNo2は、(127,246)、(127,181)、(103,106)、(61,49)および(11,14)の5点を結び、ラインNo3は、(127,181)、(144,127)、(176,73)、(208,40)および(246,14)を結ぶ。
図10は、文字データ42の表示の一例である。具体的には、図9に示された文字データの表示である。
図11は、直線テーブル43の一例を示す。直線テーブル43は、補助記憶装置40に格納されている(図8参照)。
「index」は、テーブルのレコード番号を示し、「(dx,dy)」は第1点からのx方向の増加分およびy方向の増加分を示す。
本実施例では、x方向の増加およびy方向の増加は20以内であるが、x方向の増加およびy方向の増加は20以内に限らない。x方向の増加およびy方向の増加は、任意である。
「制御列」は、「0」と「1」とで表される。dx≧dyの場合には、x方向に1増加した場合のyの増加分を「0」および「1」で示す。「0」は、x方向に1増加した場合にはy方向の増加は0であることを示し、「1」は、x方向に1増加した場合にはy方向の増加は1であることを示す。
例えば、(dx,dy)=(2,1)の場合には、制御列は{0,1}である。この制御列{0,1}は、第1点からx方向に1増加した場合には、y方向の増加は0であり、次にx方向に1増加した場合には、y方向の増加が1であることを示す。この制御列によって表される線のパターンは、第1点と第2点とを通る線のパターンを示す。
図12は、曲線テーブル44の一例を示す。曲線テーブル44は、補助記憶装置40に格納されている(図8参照)。
図13は、制御列が有する値を示す。
「index」は、テーブルのレコード番号を示し、「(dx、dy)」は第1点からのx方向の増加分およびy方向の増加分を示す。
本実施例では、x方向の増加およびy方向の増加が15以内であるが、x方向の増加およびy方向の増加は15以内に限らない。x方向の増加およびy方向の増加は、任意である。曲線テーブルのx方向の増加およびy方向の増加の範囲が直線テーブルのx方向の増加およびy方向の増加の範囲より小さいのは、一般に、文字が有する曲線の2点間の距離は、文字が有する直線の2点間の距離より小さいからである。
「角度」は、第3点が領域1〜28の何れにあるかを示す(図7参照)。
「制御列」は、「0」〜「7」で表される(図13参照)。「0」は第2点に対して右への移動を示し、「1」は右上への移動を示し、「2」は上への移動を示し、「3」は左上への移動を示し、「4」は左への移動を示し、「5」は左下への移動を示し、「6」は下への移動を示し、「7」は右下への移動を示す。例えば(dx,dy)=(7,4)で、第3点が領域2にある場合には、制御列は{0,0,1,0,1,1,1}である(図12参照)。この制御列は、第1点からの移動が右、右、右上、右、右上、右上、右上であることを示す。この移動によって表される線のパターンは、3点が第1点(0,0)、第2点(7,4)、第3点(10,10)である場合の第1点と第2点とを通る線のパターンを示す(図1参照)。
図12を参照して説明したように、曲線テーブル44に含まれる情報は、第2点と第3点との位置関係と線のパターンとの対応関係を示す。この曲線テーブル44は、予め補助記憶装置40に用意されている。
なお、曲線テーブル44に含まれる「制御列」によって表される線のパターンは、曲線に限らない。「制御列」によって表される線のパターンは、直線であり得る。このような制御列は、例えば、{1,1,1,1}である。
以上、図1〜図13および図28を参照して、本発明の実施の形態の文字表示装置100を説明した。
例えば、図1〜図13および図28の例では、表示デバイス30が「線を表示する表示デバイス」に対応し、制御部20が「表示デバイスを制御する制御部」、「与えられた第1点、第2点および第3点に対して、第1点および第2点のうちの少なくとも一方と第3点との第1の位置関係を決定する制御部」、「予め用意された少なくとも1つの線のパターンであって、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された第1の位置関係に対応する1つの線のパターンを選択する制御部」および「選択された線のパターンに応じて、第1点と第2点とを通る線を表示デバイスに表示する制御部」に対応する。さらに、直線テーブル42および曲線テーブル44を記憶する補助記憶装置40が「第1の位置関係と線のパターンとの対応関係を示すパターン情報を保持する保持部」に対応する。
しかし、図1〜図13および図28に示される実施の形態は、本発明の文字表示装置の機能の一例を示したに過ぎない。上述した各手段の機能が達成される限りは、任意の構成を有する文字表示装置が本発明の範囲内に含まれ得る。
例えば、直線テーブル42および曲線テーブル44が表示装置の外部から表示装置に入力されてもよい。例えば、ネットワークを介して表示装置と結ばれた保持部に直線テーブル42および曲線テーブル44が保持されている場合には、直線テーブル42および曲線テーブル44が表示装置の外部から表示装置に入力される。
例えば、上述した各手段は、ハードウェアによって実現されてもよいし、ソフトウェアによって実現されてもよいし、ハードウェアとソフトウェアとによって実現されてもよい。
例えば、文字表示装置には、文字表示処理手順を実行させるためのプログラム(以下、文字表示処理プログラムという)が格納されている。文字表示処理プログラムは、コンピュータの出荷時に、文字表示装置に含まれるプログラム格納手段に予め格納されていてもよい。
あるいは、コンピュータの出荷後に、文字表示処理プログラムをプログラム格納手段に格納するようにしてもよい。例えば、ユーザがインターネット上の特定のウェブサイトから文字表示処理プログラムを有料または無料でダウンロードし、そのダウンロードされたプログラムをコンピュータにインストールするようにしてもよい。文字表示処理プログラムがフレキシブルディスク、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な記録媒体に記録されている場合には、入力装置(例えば、ディスクドライブ装置)を用いて文字表示処理プログラムをコンピュータにインストールするようにしてもよい。インストールされたプログラムは、プログラム格納手段に格納される。
なお、文字表示処理手順の詳細は、後述される。
図1〜図13および図28を参照して説明したように、本発明の表示装置によれば、第1点と第2点とを通る線の軌道を計算によって求めることなく、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された位置関係に対応する1つの線のパターンを選択することによって、第1点と第2点とを通る線を表示できる。したがって、複雑な計算が必要とされる第1点と第2点とを通る線の軌道の計算を行う必要がなく、第1点と第2点とを通る線を高速に表示できる。
本発明では、第1点と第2点とを通る線のパターンと3点の位置関係との対応を示すテーブルを利用して、3点を結ぶ曲線を描画する。したがって、テーブルの読み出しのみで曲線の描画が可能となり、複雑な演算が発生しない。その結果、第1点と第2点とを通る線を高速に描画できる。
さらに、第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度を分類し、テーブル化する。その結果、容量を少なくできる。
さらに、第2点が第1象限にある場合のみ、第1点と第2点とを通る直線と第2点と第3点とを通る直線の角度の分類とテーブル化とを行う。したがって、3点の位置の組み合わせを減らすことができる。その結果、さらに容量を少なくできる。
3.表示方法
図14は、文字表示処理手順を示す。CPU121が文字表示プログラム141を実行することによって、文字表示処理が行われる。
以下、図8および図14を参照して文字表示処理手順をステップごとに説明する。
ステップS101:入力デバイス10から入力された指示に従って、文字データ42から指定の文字を表す文字データが読み込まれる。例えば、読み込まれる文字データは、複数の座標データを含む(図9参照)。
ステップS102:読み込まれた文字データに含まれた座標データが出力サイズに適合するようにスケーリングされる。出力サイズがnドットである場合には、座標データ(x,y)は所定の計算によってスケーリングされ、スケール化データ(X,Y)に変更される。所定の計算は、X=(n−1)×x/255、Y=(n−1)×y/255である。
例えば、出力サイズが36ドットである場合には、座標データ(x,y)(図9参照)は所定の計算によってスケーリングされ、スケール化データ(図22参照)に変更される。
ステップS103:スケール化データは量子化され、量子化データに変更される。例えば、量子化する方法として、四捨五入がある。例えば、座標データ(x,y)(図9参照)が所定の計算によってスケーリングされ、さらに量子化されることによって、量子化データに変更される(図22参照)。
なお、量子化する方法は、四捨五入に限定されない。本願と同出願人による出願(特願2003−137918号明細書)には、量子化する他の方法が開示されている。開示された方法には、量子化誤差を抑える方法が含まれる。
ステップS104:直線テーブル43および曲線テーブル44を参照して、量子化データから描画データを求める。
ステップS105:描画データに基づいて、イメージを表示デバイス30に表示する。
イメージを表示デバイス30に表示した後、処理は終了する。
図15は、ステップS104で実行される描画データ化処理手順を示す。
以下、図15を参照して描画データ化処理手順をステップごとに説明する。
ステップS201:量子化データが取り出される。例えば、文字「大」の場合には、呼び出されたラインNoに対応する量子化データが取り出される(図22参照)。最初にラインNo.1が呼び出され、対応する量子化データ((1,25)、(34,25))が取り出される。次に、ラインNo2が呼び出され、対応する量子化データ((17,34)、(17,25)、(14,15)、(8,7)、(2,2))が取り出される。最後に、ラインNo.3が呼び出され、対応する量子化データ((17,25)、(20,17)、(24,10)、(29,5)、(34,2))が取り出される。
ステップS202:呼び出されたラインNoに対応する量子化データに3点以上の座標点が含まれるか否かが判定される。
3点以上の座標点が含まれると判定された場合(Yes)には、処理は、ステップS204に進む。3点以上の座標点が含まれないと判定された場合(No)には、処理は、ステップS203に進む。
ステップS203:呼び出されたラインNoによって示されるラインが直線で描画されるように描画データが求められる。直線テーブル43を参照して、量子化データから描画データが求められる。
ステップS204:呼び出されたラインNoによって示されるラインが曲線で描画されるように描画データが求められる。曲線テーブル44を参照して、量子化データから描画データが求められる。
ステップS205:呼び出すべきラインがあるか否かを判定する。
呼び出すべきラインがあると判定された場合(Yes)には、処理は、ステップS201に進む。呼び出すべきラインがないと判定された場合(No)には、処理は終了する。
図16は、ステップS203で実行される直線描画処理手順を示す。
以下、図16を参照して直線描画処理手順をステップごとに説明する。
ステップS301:与えられた2点の座標点(x,y)、(x,y)の次の値を求める。dx←abs(x−x)によって、xとxとの距離dxを求め、dy←abs(y−y)によって、yとyとの距離dyを求める。
なお、関数abs(t)はtの絶対値を示す。
さらに、描画位置を示す変数を(x,y)で表した場合、x←xおよびy←yは第1点を描画開始位置に設定する処理を示す。
ステップS302:第1点(x,y)を描画データ化する。
ステップS303:直線テーブル43から制御列を取得する。直線テーブルへのアクセスは、次の計算で行われる。
テーブルの範囲をnとすると、直線テーブル43のうちの((n+1)×dy+dx+1)番目の制御列を取得する。本実施例ではテーブルの範囲を20としているので、((20+1)×dy+dx+1)番目の制御列を取得する。
ステップS304:xおよびxのうちどちらが大きいかを判定する。
がx以上であると判定された場合(Yes)には、処理はステップS305に進む。xがxより小さいと判定された場合(No)には、処理はステップS306に進む。
ステップS305:変数incxに値「1」をセットする。変数incxによって、x方向の増減が制御される。
ステップS306:変数incxに値「−1」をセットする。変数incxによって、x方向の増減が制御される。
ステップS307:yおよびyのうちどちらが大きいかを判定する。
がy以上であると判定された場合(Yes)には、処理はステップS308に進む。yがyより小さいと判定された場合(No)には、処理はステップS309に進む。
ステップS308:変数incyに値「1」をセットする。変数incyによって、y方向の増減が制御される。
ステップS309:変数incyに値「−1」をセットする。変数incyによって、y方向の増減が制御される
ステップS310:dxおよびdyのうちどちらが大きいかを判定する。
dxがdy以上であると判定された場合(Yes)には、処理はステップS311に進む。dxがdyより小さいと判定された場合(No)には、処理はステップS314に進む。
ステップS311:制御列が終わりか否かが判定される。制御列が終わりであると判定された場合(Yes)には、処理は終了する。制御列が終わりでないと判定された場合(No)には、処理はステップS312に進む。
ステップS312:(x,y)の次の点を計算する。具体的はxにxの増減を制御するincxの値を加え(xの次の値=x+incx)、yにyの増減を制御するincyに制御列の値(Δy)を掛けた値を加える(yの次の値=y+incy×Δy)。
ステップS313:(x+incx)および(y+incy×Δy)を描画データ化する。具体的には、点(x+incx,y+incy×Δy)をプロットする。その後、処理はステップS311に進む。
ステップS314:制御列が終わりか否かが判定される。制御列が終わりであると判定された場合(Yes)には、処理は終了する。制御列が終わりでないと判定された場合(No)には、処理はステップS315に進む。
ステップS315:(x,y)の次の点を計算する。具体的はxにxの増減を制御するincxに制御列の値(Δx)を掛けた値を加え(xの次の値=x+incx×Δx)、yにyの増減を制御するincyの値を加える(yの次の値=y+incy)。
ステップS316:(x+incx×Δx)および(y+incy)を描画データ化する。具体的には、点(x+incx×Δx,y+incy)をプロットする。その後、処理はステップS314に進む。
図17は、ステップS204で実行される曲線描画処理手順を示す。
以下、図17を参照して曲線描画処理手順をステップごとに説明する。
ステップS401:与えられた座標点から3点を取り出す。例えば、与えられた座標点が5点((a,b)、(a,b)、(a,b)、(a,b)、(a,b))である場合には、最初の呼び出しでは(a,b)、(a,b)、(a,b)の3点が取り出され、次の呼び出しでは(a,b)、(a,b)、(a,b)が取り出される。このように連続した3点を1点ずつ、ずらしながら取り出す。
ステップS402:取り出された3点の座標点(x,y)、(x,y)、(x,y)の次の値を求める。dx←abs(x−x)によって、xとxの距離dxを求め、dy←abs(y−y)によって、yとyとの距離dyを求める。
さらに、描画位置を示す変数を(x,y)で表した場合、x←xおよびy←yは、第3点のうち第1点を描画開始位置に設定する処理を示す。
ステップS403:取り出された3点の内、第1点(x,y)を描画データ化する。
ステップS404:第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度から角度パターンを求める。
角度パターンa=round(((Θ−Θ)×28)/(2×Π))として計算できる。
ここで、角度Θは、第1点と第2点とを通る直線とx軸との角度(Θ=tan−1((y−y)/(x−x)))であり、角度Θは、第2点と第3点とを通る直線とx軸との角度(Θ=tan−1((y−y)/(x−x)))である。
関数round(t)は、tの四捨五入を示す。tan−1の計算は処理が複雑であるが、本発明の場合、最終的に28分割された何れかの角度パターンに当てはめればよいもので、精度の要求は高くない。したがって、tan−1の引数を何パターンかに分類したテーブルを用いて、tan−1の計算を高速化することも可能である。
なお、tan−1の引数とtan−1の値との対応を示すテーブルを用いてtan−1の計算を高速化する手法の詳細は、後述される。
以上、ステップS401〜ステップS404を参照して説明したように、ステップS401〜ステップS404を実行することによって、与えられた第1点、第2点および第3点に対して、第1点および第2点のうちの少なくとも一方と第3点との位置関係が決定される。
ステップS405:曲線テーブル44から制御列を取得(選択)する。曲線テーブルへのアクセスは、次の計算で行われる。
テーブルの範囲をn、分割数をt、角度パターンをaとすると、曲線テーブル44のうちの((n+1)×t×dy+t×dx+a)番目の制御列を取得する。本実施例ではテーブルの範囲を15とし、分割数を28としているので、((15+1)×28×dy+28×dx+a)番目の制御列を取得する。
ステップS405を参照して説明したように、ステップS405を実行することによって、第2点と第3点との位置関係と線のパターンとの対応関係を示す情報が含まれた曲線テーブル44から、所望の線のパターンを示す制御列が選択される。
ステップS406:xおよびxのうちどちらが大きいかを判定する。
がx以上であると判定された場合(Yes)には、処理はステップS407に進む。xがxより小さいと判定された場合(No)には、処理はステップS408に進む。
ステップS407:yおよびyのうちどちらが大きいかを判定する。
がy以上であると判定された場合(Yes)には、処理はステップS409に進む。yがyより小さいと判定された場合(No)には、処理はステップS410に進む。
ステップS408:yおよびyのうちどちらが大きいかを判定する。
がy以上であると判定された場合(Yes)には、処理はステップS411に進む。yがyより小さいと判定された場合(No)には、処理はステップS412に進む。
ステップS409:第1点を原点とした場合に、第2点が第1象限にある場合の第1象限描画をする。
ステップS410:第1点を原点とした場合に、第2点が第2象限にある場合の第2象限描画をする。
ステップS411:第1点を原点とした場合に、第2点が第3象限にある場合の第3象限描画をする。
ステップS412:第1点を原点とした場合に、第2点が第4象限にある場合の第4象限描画をする。
ステップS413:フラグがセットされているかを判定する。フラグがセットされていると判定された場合(Yes)には、処理は終了する。フラグがセットされていないと判定された場合(No)には、処理はステップS414に進む。
ステップS414:ステップS401を実行することによって取得された3点が最後の3点か否かを判定する。
例えば、曲線描画処理に与えられた座標点が(a,b)、(a,b)、(a,b)、(a,b)、(a,b)の5点である場合には、ステップS401で取り出された3点が最後の3点(a,b)、(a,b)、(a,b)であるか否かを判定する。
最後の3点であると判定された場合(Yes)には、処理はステップS415に進む。最後の3点でないと判定された場合(No)には、処理はステップS401に進む。
ステップS415:フラグをセットし、3点を逆にセットする。
例えば、最後の3点が(a,b)、(a,b)、(a,b)の順にセットされている場合には、最後の3点を(a,b)、(a,b)、(a,b)の順にセットするように変更する。(a,b)と(a,b)とが描画されなくなることを防ぐためである。
順に3点を取り出し処理をする場合(ステップS401参照)において、描画されるのは、3点の内、第1点と第2点との間であり、第2点と第3点との間は描画されない。最終的に最後の区間((a,b)と(a,b)との間)が描画されないのを防ぐため、最後に点(a,b)と点(a,b)とを入れ替え、最後の区間を描画する。
なお、本実施例では、最後の3点を逆にセットしたが、「ステップ414の処理」を「取得された3点がラインの真ん中よりも前か否かを判定する処理」に変更してもよい。この場合には、取得された3点が真ん中より前であると判定された場合には、第1点から正順に3点を取り出し(ステップS401参照)、取得された3点が真ん中よりも前ではないと判定された場合には、最後の点から逆順に3点を取り出す。
図27は、tan−1の値とtan−1の引数との対応を示す。tan−1の値は、角度(度)であり、tan−1の引数は、dy/dxである。角度θは、(no×360)/56で示される。
tan−1の値とtan−1の引数との対応を示すテーブルを用いることで、tan−1の計算を行う必要はなくなる。但し、tan−1の値は、0〜180°(第1象限、第2象限のみ)であり、180°<tan−1<360に対応するtan−1の引数は、計算で求める。例えば(0,0)と(10,5)とを通る直線はdy/dx=0.5(dy=5、dx=10)であるため、no4とno5の間にあることがわかる。この実施例では小さいほうのnoを選ぶとすると、no=4になる。また(0,0)と(−10,−5)とを通る直線はdy/dx=0.5(dy=5、dx=10)であるため、no=4になるが、第3象限の値なので28を加算しno=32とする。つまり、Θ=tan−1((y−y)/(x−x))は、第1点と第2点を通る直線と水平線との角度を求めることに相当するが、精度を下げることが許される場合には、テーブルのnoを求めることに置きかえることができる。
tan −1 (y−y)/(x−x))の値をテーブルで求めたものをnoとし、tan −1 (y−y)/(x−x))の値をテーブルで求めたものをnoとすると、a=round(((Θ−Θ)×28)/(2×Π))の計算は、a=round(abs(no−no)/2)に置き換えることが出来る。
以下、図1〜図4を参照して具体的に説明する。
図1は、(0,0)、(7,4)、(10,10)を通る曲線を示す。noの値は4である。(4−0)/(7−0)=0.571だからである。noの値は9である。(10−4)/(10−7)=2だからである。角度パターンaは、3である(a=round(abs(9−4)/2))。
図2は、(0,0)、(7,4)、(13,16)を通る曲線を示す。noの値は4である。(4−0)/(7−0)=0.571だからである。noの値は9である。(16−4)/(13−7)=2だからである。角度パターンaは、3である(a=round(abs(9−4)/2))。
図3は、(0,0)、(7,4)、(12,17)を通る曲線を示す。noの値は4である。(4−0)/(7−0)=0.571だからである。noの値は10である。(17−4)/(12−7)=2.6だからである。角度パターンaは、3である(a=round(abs(10−4)/2))。
図4は、(0,0)、(7,4)、(14,16)を通る曲線を示す。noの値は4である。(4−0)/(7−0)=0.571だからである。noの値は15である。(14−4)/(6−7)=−10だからである。角度パターンaは、6である(a=round(abs(15−4)/2))。
このようなテーブルを用いる場合には、複雑な三角関数を計算することなく角度パターンを求めることができる。
図18は、ステップS409で実行される第1象限描画処理手順を示す。
以下、図18を参照して第1象限描画処理手順をステップごとに説明する。
ステップS501:ステップS405で取得された制御列が終わりか否かを判定する。
制御列が終わりであると判定された場合(Yes)には、処理は終了する。終わりでないと判定された場合(No)には、処理はステップS502に進む。
ステップS502:制御列の値(値「0」〜「7」:図13参照)に応じて、処理は分岐する。
制御値「0」である場合には、処理はステップS503に進む。制御値「1」である場合には、処理はステップS504に進む。制御値「2」である場合には、処理はステップS505に進む。制御値「3」である場合には、処理はステップS506に進む。制御値「4」である場合には、処理はステップS507に進む。制御値「5」である場合には、処理はステップS508に進む。制御値「6」である場合には、処理はステップS509に進む。制御値「7」である場合には、処理はステップS510に進む。
ステップS503:x方向の値を制御するxの値を1増加させる。処理はステップS511に進む。
ステップS504:x方向の値を制御するxの値を1増加させ、y方向の値を制御するyの値を1増加させる。処理はステップS511に進む。
ステップS505:y方向の値を制御するyの値を1増加させる。処理はステップS511に進む。
ステップS506:x方向の値を制御するxの値を1減少させ、y方向の値を制御するyの値を1増加させる。処理はステップS511に進む。
ステップS507:x方向の値を制御するxの値を1減少させる。処理はステップS511に進む。
ステップS508:x方向の値を制御するxの値を1減少させ、y方向の値を制御するyの値を1減少させる。処理はステップS511に進む。
ステップS509:y方向の値を制御するyの値を1減少させる。処理はステップS511に進む。
ステップS510:x方向の値を制御するxの値を1増加させ、y方向の値を制御するyの値を1させる。処理はステップS511に進む。
ステップS511:ステップS503〜ステップS510で計算された点(x,y)を描画データ化する。例えば、点(x,y)をプロットする。
図19は、ステップS410で実行される第2象限描画処理手順を示す。
第2象限は、第1象限に対してy軸対称である。したがって、第1象限描画処理手順(図18参照)との処理手順の違いは、制御値に応じたxの増減が逆になるだけであるので、ステップS601〜ステップS611の説明は省略する。
図20は、ステップS411で実行される第3象限描画処理手順を示す。
第3象限は、第1象限に対して原点対称である。したがって、第1象限描画処理手順(図18参照)との処理手順の違いは、制御値に応じたxの増減およびyの増減がそれぞれ逆になるだけであるので、ステップS701〜ステップS711の説明は省略する。
図21は、ステップS412で実行される第4象限描画処理手順を示す。
第4象限は、第1象限に対してx軸対称である。したがって、第1象限描画処理手順(図18参照)との処理手順の違いは、制御値に応じたyの増減が逆になるだけであるので、ステップS801〜ステップS811の説明は省略する。
図22は、座標データ、スケール化データおよび量子化データを示す。
ベクトルデータ(図9参照)をスケール処理、量子化処理した結果である。
図23は、図22に示された量子化データに基づいて描画した結果を示す。
量子化データ(図22参照)を描画データ化処理(図15参照)によって描画した結果を示す。曲線描画により、文字が高品位に描画できている。
図24は、テーブルの編集処理手順を示す。
図25は、表示点を変更した後の線のパターンを示す。
図26は、表示点を変更した後の曲線描画テーブルを示す。
以下、図1、図12、図24〜図26を参照してテーブルの編集処理手順をステップごとに説明する。
ステップS901:3点を通る制御列を呼び出し、線のパターンを編集画面に表示する。編集画面に表示された線のパターンは、例えば、図1に示される。2点を通る線のパターンが編集画面に表示されている。
ステップS902:表示された線のパターンを画面を見ながら変更する。例えば、図1に示された線のパターンを図25に示された線のパターンに編集する。
ステップS903:変更された線のパターンのうち第1点と第2点とを通る線のパターンのみを制御列で示し、テーブルを書き換える。図12で示された曲線テーブルの1990番目の制御列{0,0,1,0,1,1,1}が図26で示された曲線テーブルの1990番目の制御列{0,1,0,1,0,1,1}に書き換えられる。
このように、曲線テーブルの内容は変更可能である。ただし変更結果は、第1点と第2点とを通る直線と第2点と第3点とを通る直線の角度が同じ角度パターンに分割する全ての場合に影響する。
以上、図14〜図21および図24を参照して本発明の表示手順を説明した。
例えば、図14〜図21および図24の例では、ステップS401〜ステップS404が「与えられた第1点、第2点および第3点に対して、第1点および第2点のうちの少なくとも一方と第3点との第1の位置関係を決定するステップ」に対応し、ステップS405が「予め用意された少なくとも1つの線のパターンであって、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された第1の位置関係に対応する1つの線のパターンを選択するステップ」に対応し、ステップS409〜ステップS412が「選択された線のパターンに応じて、第1点と第2点とを通る線を表示デバイスに表示するステップ」に対応する。しかし、図14〜図21および図24の例は、本発明の表示手順の一例を示したに過ぎない。上述した各ステップが実行される限りは、任意のステップを有する表示手順が本発明の範囲に含まれ得る。
本発明のプログラムおよび記録媒体によれば、第1点と第2点とを通る線の軌道を計算によって求めることなく、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された位置関係に対応する1つの線のパターンを選択することによって、第1点と第2点とを通る線を表示できる。したがって、複雑な計算が必要とされる第1点と第2点とを通る線の軌道の計算を行う必要がなく、第1点と第2点とを通る線を高速に表示できる。
上述した実施の形態では、文字を表示する場合を例にとり説明したが、本発明はこれに限定されない。文字に代えて、あるいは文字に加えて、図形を表示する場合にも本発明を適用することができる。この場合、文字表示プログラム41に代えて、あるいは文字表示プログラム41に加えて図形表示プログラムを使用するようにし、文字データ42に代えて、あるいは文字データ42に加えて図形データを使用するようにすればよい。図形表示プログラムもまた、文字表示プログラム41と同様のステップを含み得る。図形には、例えば、文字の一部、模様、記号などが含まれる。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
本発明の表示装置、プログラムおよび記録媒体によれば、第1点と第2点とを通る線の軌道を計算によって求めることなく、第1点と第2点とを通る少なくとも1つの線のパターンの中から、決定された位置関係に対応する1つの線のパターンを選択することによって、第1点と第2点とを通る線を表示できる。したがって、複雑な計算が必要とされる第1点と第2点とを通る線の軌道の計算を行う必要がなく、第1点と第2点とを通る線を高速に表示できる。
本発明では、第1点と第2点とを通る線のパターンと3点の位置関係との対応を示すテーブルを利用して、3点を結ぶ曲線を描画する。したがって、テーブルの読み出しのみで曲線の描画が可能となり、複雑な演算が発生しない。その結果、第1点と第2点とを通る線を高速に描画できる。
さらに、第1点と第2点とを通る直線と第2点と第3点とを通る直線との角度を分類し、テーブル化する。その結果、容量を少なくできる。
さらに、第2点が第1象限にある場合のみ、第1点と第2点とを通る直線と第2点と第3点とを通る直線の角度の分類とテーブル化とを行う。したがって、3点の位置の組み合わせを減らすことができる。その結果、さらに容量を少なくできる。
3点を通る曲線の一例を示す図である。 3点を通る曲線の別の一例を示す図である。 3点を通る曲線の更に別の一例を示す図である。 3点を通る曲線の更に別の一例を示す図である。 3点を通る曲線の更に別の一例を示す図である。 3点を通る曲線の更に別の一例を示す図である。 第2点の周囲に割り当てられた領域1〜領域28を示す図である。 本発明の実施の形態の文字表示装置100の構成を示す図である。 文字データ42の一例を示す図である。 文字データ42の表示の一例を示す図である。 直線テーブル43の一例を示す図である。 曲線テーブル44の一例を示す図である。 制御列が有する値を示す図である。 文字表示処理手順を示すフローチャートである。 ステップS104で実行される描画データ化処理手順を示すフローチャートである。 ステップS203で実行される直線描画処理手順を示すフローチャートである。 ステップS204で実行される曲線描画処理手順を示すフローチャートである。 ステップS409で実行される第1象限描画処理手順を示すフローチャートである。 ステップS410で実行される第2象限描画処理手順を示すフローチャートである。 ステップS411で実行される第3象限描画処理手順を示すフローチャートである。 ステップS412で実行される第4象限描画処理手順を示すフローチャートである。 座標データ、スケール化データおよび量子化データを示す図である。 図22に示された量子化データに基づいて描画した結果を示す図である。 テーブルの編集処理手順を示すフローチャートである。 表示点を変更した後の線のパターンを示す図である。 表示点を変更した後の曲線描画テーブルを示す図である。 tan−1の値とtan−1の引数との対応を示す図である。 第2点の周囲に割り当てられた領域の一例を示す図である。
符号の説明
10 入力デバイス
20 制御部
21 CPU
22 主メモリ
30 表示デバイス
40 補助記憶装置
41 文字表示プログラム
42 文字データ
43 直線テーブル
44 曲線テーブル
100 文字表示装置1

Claims (9)

  1. 線を表示する表示デバイスと、
    前記表示デバイスを制御する制御部と
    を備えた表示装置であって、
    前記制御部は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を、前記第1点と前記第2点とを結ぶ第1直線と前記第2点と前記第3点とを結ぶ第2直線との角度に応じて決定するとともに、前記第1点、前記第2点および第4点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第4点との第2の位置関係を決定し、
    予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するとともに、前記少なくとも1つの線のパターンの中から、前記決定された第2の位置関係に対応する1つの線のパターンを選択し、
    前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するものであり、
    前記制御部では、前記第3点と前記第4点とが、前記第2点の周囲に割当てられた複数の領域のうちの同じ領域に与えられたとき、前記選択された第1の位置関係に対応する1つの線のパターンと前記選択された第2の位置関係に対応する1つの線のパターンとが同じにされる、表示装置。
  2. 前記第1の位置関係と前記線のパターンとの対応関係を示すパターン情報を保持する保持部をさらに備え、
    前記線のパターンの選択は、前記保持部に保持されている前記パターン情報を参照して行われる、請求項1に記載の表示装置。
  3. 前記第1点は原点に与えられ、前記第2点は第象限に与えられる、請求項1に記載の表示装置。
  4. 線を表示する表示デバイスと、
    前記表示デバイスを制御する制御部と
    を備えた表示装置であって、
    前記制御部は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定し、
    予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択し、
    前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するものであり、
    前記第3点は、前記第2点の周囲に割り当てられた複数の領域のうちの1つに与えられるものであり
    前記複数の領域のうちの1つの領域と、前記1つの領域とは異なる領域とは、異なった大きさを有する表示装置。
  5. 線を表示する表示デバイスと、
    前記表示デバイスを制御する制御部と
    を備えた表示装置であって、
    前記制御部は、与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定し、
    予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択し、
    前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するものであり、
    前記第3点は、前記第2点の周囲の一部のみに割り当てられた複数の領域のうちの1つに与えられるものである、表示装置。
  6. 線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータに表示処理を実行させるプログラムであって、
    前記表示処理は、
    与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を、前記第1点と前記第2点とを結ぶ第1直線と前記第2点と前記第3点とを結ぶ第2直線との角度に応じて決定するとともに、前記第1点、前記第2点および第4点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第4点との第2の位置関係を決定するステップと、
    予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するとともに、前記少なくとも1つの線のパターンの中から、前記決定された第2の位置関係に対応する1つの線のパターンを選択するステップと、
    前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するステップと
    を包含し、
    前記線のパターンを選択するステップでは、前記第3点と前記第4点とが、前記第2点の周囲に割当てられた複数の領域のうちの同じ領域に与えられたとき、前記選択された第1の位置関係に対応する1つの線のパターンと前記選択された第2の位置関係に対応する1つの線のパターンとが同じにされる、プログラム。
  7. 線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータに表示処理を実行させるプログラムであって、
    前記表示処理は、
    与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定するステップと、
    予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するステップと、
    前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するステップと
    を包含し、
    前記第3点は、前記第2点の周囲に割り当てられた複数の領域のうちの1つに与えられるものであり、
    前記複数の領域のうちの1つの領域と、前記1つの領域とは異なる領域とは、異なった大きさを有する、プログラム。
  8. 線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータに表示処理を実行させるプログラムであって、
    前記表示処理は、
    与えられた第1点、第2点および第3点に対して、前記第1点および前記第2点のうちの少なくとも一方と前記第3点との第1の位置関係を決定するステップと、
    予め用意された少なくとも1つの線のパターンであって、前記第1点と前記第2点とを通る少なくとも1つの線のパターンの中から、前記決定された第1の位置関係に対応する1つの線のパターンを選択するステップと、
    前記選択された線のパターンに応じて、前記第1点と前記第2点とを通る線を前記表示デバイスに表示するステップと
    を包含し、
    前記第3点は、前記第2点の周囲の一部のみに割り当てられた複数の領域のうちの1つに与えられるものである、プログラム。
  9. 線を表示する表示デバイスを備えた情報表示装置を構成するコンピュータによって読み取り可能な記録媒体であって、
    前記記録媒体は、前記情報表示装置を構成するコンピュータに表示処理を実行させるプログラムとして、請求項6ないし8のいずれかに記載のプログラムを記録したものである、記録媒体。
JP2004216462A 2004-07-23 2004-07-23 表示装置、プログラムおよび記録媒体 Expired - Fee Related JP4198098B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004216462A JP4198098B2 (ja) 2004-07-23 2004-07-23 表示装置、プログラムおよび記録媒体
PCT/JP2005/013426 WO2006009228A1 (ja) 2004-07-23 2005-07-21 表示装置、プログラムおよび記録媒体
CN2005800246142A CN1998024B (zh) 2004-07-23 2005-07-21 显示装置、程序以及记录介质
KR1020077000567A KR100866362B1 (ko) 2004-07-23 2005-07-21 표시장치, 프로그램 및 기록매체
HK07113184.2A HK1104864A1 (en) 2004-07-23 2007-12-03 Display apparatus, program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004216462A JP4198098B2 (ja) 2004-07-23 2004-07-23 表示装置、プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2006039780A JP2006039780A (ja) 2006-02-09
JP4198098B2 true JP4198098B2 (ja) 2008-12-17

Family

ID=35785336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004216462A Expired - Fee Related JP4198098B2 (ja) 2004-07-23 2004-07-23 表示装置、プログラムおよび記録媒体

Country Status (5)

Country Link
JP (1) JP4198098B2 (ja)
KR (1) KR100866362B1 (ja)
CN (1) CN1998024B (ja)
HK (1) HK1104864A1 (ja)
WO (1) WO2006009228A1 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04174494A (ja) * 1990-11-07 1992-06-22 Nec Off Syst Ltd 文字発生方式
KR960015761B1 (en) * 1992-01-27 1996-11-21 Fujitsu Ltd Charaster gerenating method and apparatus
TW262547B (ja) * 1992-11-30 1995-11-11 Canon Kk
JPH10293854A (ja) * 1997-04-18 1998-11-04 Koubundou:Kk 曲線表示方法及び装置、同曲線を表すデータの作成方法及び装置、並びに同表示方法及び作成方法を実現するためのプログラムを記録した記録媒体
CN1159666C (zh) * 2002-03-29 2004-07-28 上海汉峰信息科技有限公司 基于笔划中心线技术的曲线字形的还原显示方法

Also Published As

Publication number Publication date
CN1998024B (zh) 2010-10-06
WO2006009228A1 (ja) 2006-01-26
HK1104864A1 (en) 2008-01-25
KR20070026795A (ko) 2007-03-08
JP2006039780A (ja) 2006-02-09
KR100866362B1 (ko) 2008-11-03
CN1998024A (zh) 2007-07-11

Similar Documents

Publication Publication Date Title
JP4418044B2 (ja) デジタルフォントにおけるキャラクタを表示する方法、デジタルフォントのキャラクタを画定する方法、及びデジタルフォントにおけるキャラクタを発生する方法
JPH03208094A (ja) 種々の寸法の記号映像のアウトラインを処理する方法およびコンピュータ表示装置
EP2330560B1 (en) Method and device for processing vector graphics
US6437793B1 (en) System for rapidly performing scan conversion with anti-aliasing upon outline fonts and other graphic elements
JP4356752B2 (ja) 文書編集装置、プログラムおよび記憶媒体
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
JP2009301284A (ja) 描画装置および方法
JP4198098B2 (ja) 表示装置、プログラムおよび記録媒体
JP2007322810A (ja) フォントデータベース生成プログラム及びフォントデータ構造
JP3603593B2 (ja) 画像処理方法および装置
JP3479282B2 (ja) 文字図形変形処理装置
TWI282947B (en) Silhouette oriented gray font generation
JP2888745B2 (ja) 文字間隔調整方法
US6034702A (en) Character forming apparatus
JP5492911B2 (ja) 文字作成方法、および文字作成装置
JPS63217394A (ja) 文字輪郭線生成方式
JP6085197B2 (ja) 携帯情報処理装置、表示処理方法、表示処理プログラム
JP3127959B2 (ja) 文字生成処理装置、文字生成処理方法、及びコンピュータ読み取り可能な記録媒体
US20170257521A1 (en) Electronic apparatus and display method of electronic apparatus
JP4666071B2 (ja) 文書編集装置、プログラムおよび記憶媒体
JP4911240B2 (ja) 文書編集装置、プログラムおよび記憶媒体
JPS6132676B2 (ja)
JPH1039736A (ja) 動的文字生成方法及び動的文字表示方法
JPH06110442A (ja) 文字図形処理装置、及び文字または図形の変形処理方法
JPH10171795A (ja) 数式および関数グラフをディスプレイ画面上に描画する方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080930

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

LAPS Cancellation because of no payment of annual fees