(57)【特許請求の範囲】
【請求項１】
グラフィックデータを生成して出力する情報処理装置において、
筆記具を幾何学的に表現する筆記具モデルの姿勢、位置、時間情報を有する筆記運動モデルを生成する筆記運動モデル生成手段（２）と、
筆記具モデルが筆記運動モデルに従って動いたとき、筆記面を幾何学的に表現する筆記面モデルと形成する断面形状をグラフィックデータの素片として生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【請求項２】
前記グラフィックデータはフォントまたは図形を表すことを特徴とする請求項１記載のグラフィックデータ生成装置。
【請求項３】
前記素片生成手段は、生成された前記グラフィックデータの複数の部分を合わせて、前記グラフィックデータの全体を生成することを特徴とする請求項１記載のグラフィックデータ生成装置。
【請求項４】
筆記運動を所定の離散的な形態で表現した筆記運動形式を生成する筆記運動形式生成手段（１）をさらに有し、
前記筆記運動モデル生成手段は、前記筆記運動形式を用いて前記筆記運動モデルを生成することを特徴とする請求項１記載のグラフィックデータ生成装置。
【請求項５】
前記筆記運動形式生成手段は、各頂点において前記筆記運動を記述する多角形である制御多角形を用いて、前記筆記運動形式を生成することを特徴とする請求項４記載のグラフィックデータ生成装置。
【請求項６】
前記筆記運動形式生成手段は、前記筆記運動形式の有する離散的な情報を用いて演算を行うことにより、異なる筆記運動に関する筆記運動形式を生成することを特徴とする請求項４記載のグラフィックデータ生成装置。
【請求項７】
前記筆記運動形式生成手段は、前記筆記運動の始点に対応する離散的な情報と、前記筆記運動の終点に対応する離散的な情報とを有する前記筆記運動形式を生成することを特徴とする請求項４記載のグラフィックデータ生成装置。
【請求項８】
筆記具を表す筆記具モデルを生成する筆記具モデル生成手段（３）をさらに有し、
前記素片生成手段は、前記筆記具モデルを用いて前記グラフィックデータの一部分を生成することを特徴とする請求項１記載のグラフィックデータ生成装置。
【請求項９】
前記筆記面を表す筆記面モデルを生成する筆記面モデル生成手段（４）をさらに有し、
前記素片生成手段は、前記筆記面モデルを用いて前記グラフィックデータの一部分を生成することを特徴とする請求項１記載のグラフィックデータ生成装置。
【請求項１０】
筆記具を表す筆記具モデルを生成する筆記具モデル生成手段（３）と、
前記筆記面を表す筆記面モデルを生成する筆記面モデル生成手段（４）とをさらに有し、
前記素片生成手段は、前記筆記具モデルと前記筆記面モデルの間の関係と、前記筆記具モデルと、前記筆記面モデルとを用いて、前記グラフィックデータの一部分を生成することを特徴とする請求項１記載のグラフィックデータ生成装置。
【請求項１１】
グラフィックデータを生成して出力する情報処理装置において、
筆記具を幾何学的に表す筆記具モデルを生成する筆記具モデル生成手段（３）と、
筆記面を幾何学的に表す筆記面モデルを生成する筆記面モデル生成手段（４）と、
前記筆記具モデルと前記筆記面モデルが交差する部分の断面形状を求めて、前記グラフィックデータの一部分を生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【請求項１２】
グラフィックデータを生成して出力する情報処理装置において、
筆記具を幾何学的に表現する筆記具モデルの位置、姿勢、時間に沿った運動等の筆記運動を表す筆記運動モデルを生成する筆記運動モデル生成手段（２）と、
前記筆記具モデルが筆記面を幾何学的に表現する筆記面モデルと交差する部分の断面形状を求めて、前記筆記具の種類に応じて肉付けされたグラフィックデータの一部分を生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【請求項１３】
グラフィックデータを生成して出力する情報処理装置において、
筆記具の位置、姿勢の時間的変化として捉えられた筆記運動モデルを生成する筆記運動モデル生成手段（２）と、
前記筆記運動モデルに基づいて、筆記具を幾何学的に表現する筆記具モデルが動作した場合に筆記面を幾何学的に表現する筆記面モデルと生じる断面形状を求めて、前記グラフィックデータの一部分を生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【請求項１４】
前記筆記運動モデル生成手段は、筆記具の姿勢の時間的変化に関する情報を有する前記筆記運動モデルを生成することを特徴とする請求項１３記載のグラフィックデータ生成装置。
【請求項１５】
グラフィックデータを生成して出力する情報処理装置において、
局所的な基底関数の重ね合わせにより構成される筆記運動モデルを生成する筆記運動モデル生成手段（２）と、
前記筆記運動モデルに従って筆記具を幾何学的に表現する筆記具モデルが移動した場合に、筆記面を幾何学的に表現する筆記面モデルと生じる断面形状を求めて、前記グラフィックデータの一部分を生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【請求項１６】
前記筆記運動モデル生成手段は、前記基底関数として滑らかな関数を用いることにより、滑らかな前記筆記運動モデルを生成することを特徴とする請求項１５記載のグラフィックデータ生成装置。
【請求項１７】
グラフィックデータを生成して出力する情報処理装置において、
各頂点において筆記運動を記述する多角形である制御多角形の、前記各頂点の座標値を用いて構成される筆記運動モデルを生成する筆記運動モデル生成手段（２）と、
前記筆記運動モデルに従って筆記具を幾何学的に表現する筆記具モデルが移動した場合に筆記面を幾何学的に表現する筆記面モデルと生じる断面形状を生成し、前記グラフィックデータの一部分を生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【請求項１８】
グラフィックデータを生成して出力する情報処理装置において、
時刻をパラメータとして筆記情報を記述した筆記運動モデルを生成する筆記運動モデル生成手段（２）と、
前記筆記運動モデルに従って筆記具を幾何学的に表現する筆記具モデルが、前記時刻の経過とともに時系列的に動作した場合に筆記面を幾何学的に表現する筆記面モデルと生じる断面形状を生成することによって、前記グラフィックデータを動的に生成する素片生成手段（５）と、
を有することを特徴とするグラフィックデータ生成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、表示装置やプリンタ等の出力装置により出力されるグラフィックデータの生成装置とその方法に関する。
【０００２】
【従来の技術】
今日、ワードプロセッサやコンピュータ、また、それに伴う記憶装置や出力装置などの情報処理機器が目覚ましい発展を遂げ、あらゆる分野へと普及してきている。印刷や出版の分野もその例に漏れず、それらが普及するにつれて、専門の業者だけでなく、ワードプロセッサやコンピュータのエンドユーザ自身が印刷や出版に直接関わるようになってきた。このような技術的および社会的背景の下で、専門的あるいは個人的な印刷や出版の多様なニーズを満足させるために、高品質かつ多様なグラフィックデータ、例えばフォント（字体）や図形、を手軽に設計可能な設計支援ツールの供給が望まれるようになってきた。
【０００３】
従来のフォントの生成方式は、ドット行列方式、輪郭ベクトル方式、および骨格ベクトル方式の３種類に分類される（上原  徹三、フォント関連技術の現状と課題、情報処理、31(11)：1570-1580, November 1990. ）。
【０００４】
図２１は、これらの生成方式により生成された従来のフォントの例を示している。図２１（ａ）はドット行列方式により生成されたフォント「愛」を示し、図２１（ｂ）は輪郭ベクトル方式により生成されたフォント「愛」を示し、図２１（ｃ）は骨格ベクトル方式により生成されたフォント「愛」を示す。
【０００５】
図２２は、従来のフォント生成方式の開発状況、使用状況、および特徴を示す図である。図２２において、「◎」印は、特徴欄に記載された対応する機能または効果の実現に最適であることを表し、「○」印は適格であることを表し、「△」印はやや適することを表し、「×」印は不適格であることを表す。
【０００６】
ドット行列方式は、元来、フォントがプリンタやＣＲＴ（Cathode Ray Tube）上にドットの集まりとして出力されるということから、最も初期に考案された。しかしながら、ドット行列方式は、拡大、縮小、あるいは回転などの幾何学的な変換を施すと品質が極度に劣化する、という欠点を有している。そのために、同じ形で異なる大きさの複数のフォントを使用する場合や、他の幾何学的な変換結果に相当するフォントを使用する場合には、それらを別々に設計し、記憶しなければならず、膨大な設計の手間および記憶容量が必要となる。従って、１つの文字についての多種類の異なる書体（多書体）のフォントを設計するのには適さない。現在では輪郭ベクトル方式のフォントに対して補助的に用いられることが多い。
【０００７】
輪郭ベクトル方式は、ドット行列方式の欠点を克服するために考案された方式で、フォントの各部の輪郭を区分的な曲線によって表現することによってフォントを生成する。この方式においては、さらに、輪郭の内部に含まれるドットを求めて輪郭上のドットと一緒に用いることによって、ドット行列フォントを生成することができる。フォントに対する各種の幾何学的な変換は数式によって表現された輪郭に対してなされ、その後、輪郭の内部のドットを求めてドット行列フォントに変換されるので、変換後も品質は全く劣化しない。従って、ドット行列方式よりも異なるフォントの生成が容易であり、記憶容量も削減される。
【０００８】
輪郭ベクトル方式は、レーザビームプリンタおよびページ記述言語の開発とともに発展し、現在、最も普及している方式である。ただし、この方式においてはフォントの輪郭が直接生成されるので、例えば明朝体からゴシック体への変換のように輪郭が大きく異なる書体の間での変換はほとんど不可能である。言い換えると、輪郭ベクトル方式においては、書体の数だけの輪郭ベクトルを準備しなければ多種類の書体のフォントを生成することができない。
【０００９】
骨格ベクトル方式は、このようなドット行列方式および輪郭ベクトル方式の欠点を全て克服するために考案された最も根源的な方式であり、現在開発途上にある。この方式においては、フォントはその元となる文字の骨格を肉付けすることによって生成される。文字の骨格となる骨格ベクトルは、１つまたは複数の部分的な骨格ベクトルを適切に組み合わせて構成され、部分的な骨格ベクトルの各々を所望の書体に応じて肉付けすることによりフォントが生成される。図２１（ｃ）のフォントの輪郭内の実線が文字「愛」の骨格を表している。
【００１０】
骨格自身は区分的な曲線などの数式によって表現されるので、各種の幾何学的な変換を施しても品質は劣化せず、また、肉付けのし方を変更することによって１ないしは数種類の骨格ベクトルから明朝体やゴシック体を初めとする多種類の書体を生成することができるものと見込まれている。多種類の書体が必要に応じて骨格ベクトルから生成されるので、予め全ての多書体に対応するフォントを記憶しておく必要がなく、記憶容量が大幅に削減される。
【００１１】
骨格ベクトルフォントからは輪郭ベクトルフォントとドット行列フォントの両方を生成することができる。また骨格ベクトル方式は、図２２が示すように、フォントの幾何学的変換や多書体フォント生成の機能に優れ、記憶容量も小さくて済むため、将来の有力なフォント生成方式となる可能性を持っている。
【００１２】
【発明が解決しようとする課題】
しかしながら、上述の従来のフォント生成方式は、高品質かつ多様なグラフィックデータを手軽に設計するための設計支援ツールのニーズを十分に満足しているとはいえない。
【００１３】
まず最も普及している輪郭ベクトル方式においては、書体の数だけの輪郭ベクトルを準備しなければ、多種類の書体のフォントを生成することができない。このため輪郭ベクトルを用意する手間がかかり、それらを格納するメモリ領域も必要となり、多書体の設計には適さない。さらに図形を設計する場合は、その骨格パターンが同じでも輪郭が異なれば、別の輪郭ベクトルを用意しなければならず、多様な図形の設計にも適さない。
【００１４】
また、将来最も有望とされている骨格ベクトル方式においては、骨格ベクトルの肉付けのし方が一意的には決められず、フォントの生成が難しいという問題がある。また、骨格ベクトルはフォント生成の対象となる文字毎に独立しているため、活字体の書体を生成することはできるが、筆記体等による続け字のフォントの生成が不可能である。
【００１５】
さらに、従来のいずれのフォント生成方式においても、フォントをＣＲＴやプリンタ上の単なる出力記号として捉え、その出力データを予めメモリ内に格納しておく方法を採っている。このため、人の手により文字が書き綴られる際の書字運動の進行に沿って、フォントを動的に生成・出力することはできない。
【００１６】
本発明は、ディスプレイやプリンタ等に出力されるグラフィックデータの設計支援システムにおいて、高品質かつ多様なグラフィックデータを容易に生成するグラフィックデータの生成装置とその方法を提供することを目的とする。
【００１７】
より具体的には、少ない労力と記憶容量で、多様なフォントや図形を自動的に生成することを目的とする。
また、フォントや図形を時間経過に従って動的に生成し、ディスプレイやプリンタ等に動的に出力することを目的とする。
【００１８】
【課題を解決するための手段】
従来のフォント生成方式の問題点は、フォントが単なる平面上の図形パターンとして扱われていることに起因する。元来、文字や図形は、人がその手に筆やペンなどの筆記具を持って行う空間的かつ時間的な性質を有する筆記運動（書字運動）を平面上に投影することによって生成されてきた。そして、これらの文字や記号を活字として図形パターン化することによって得られたものがフォントである。したがって、図形パターン化されたとはいえ、フォントには筆記運動パターンとしての空間的かつ時間的な特徴が数多く残されている。
【００１９】
例えば「ハネ」、「ウロコ」（明朝体の横線の右上端部の三角形のこと）、あるいは「セリフ」（欧文文字の始終端部における飾りのことで、和文文字におけるウロコに相当する）などが筆記運動パターンに相当し、これらは筆記運動の結果としての筆やペンの軌跡の特徴を図形パターン化して表現したものである。
【００２０】
本発明は、筆記具を用いた空間的かつ時間的な筆記運動パターンを、筆記面上に投影することによってグラフィックデータを生成するグラフィックデータ生成装置とその方法である。
【００２１】
図１は、本発明のグラフィックデータ生成装置の原理図である。本発明のグラフィックデータ生成装置は、筆記運動形式生成手段１、筆記運動モデル生成手段２、筆記具モデル生成手段３、筆記面モデル生成手段４、および素片生成手段５を備える。
【００２２】
筆記運動形式生成手段１は、筆記運動を所定の離散的な形態で表現した筆記運動形式を生成する（図４のステップＳ１）。筆記運動形式生成手段１はまた、生成された筆記運動形式の有する離散的な情報を用いて、空間的あるいは構造的な演算を行うことにより、異なる筆記運動に関する筆記運動形式を生成する（図４のステップＳ２）。
【００２３】
筆記運動モデル生成手段２は、得られた筆記運動形式を用いて、空間的かつ時間的な筆記情報を有する筆記運動モデル（書字運動モデル）を生成する（図４のステップＳ２）。
【００２４】
筆記具モデル生成手段３は、筆記具を表す筆記具モデルを生成し、筆記面モデル生成手段４は、筆記面を表す筆記面モデルを生成する（図４のステップＳ６）。
【００２５】
筆記運動モデル生成手段２が生成する筆記運動モデルは、時刻をパラメータとして筆記具モデルの位置および姿勢の時間的変化を記述し、筆記具モデルと筆記面モデルの間の関係を与える（図４のステップＳ５）。
【００２６】
素片生成手段５は、これらの筆記具モデルと筆記面モデルを用いて、上記筆記運動モデルが有する筆記情報をパターンとして筆記面上に投影し、グラフィックデータの一部分である素片を生成する（図４のステップＳ７）。素片生成手段５により生成されるグラフィックデータの素片は、筆記具モデルと筆記面モデルが共有する点により構成される。
【００２７】
本発明の筆記運動形式生成手段１、筆記運動モデル生成手段２、筆記具モデル生成手段３、筆記面モデル生成手段４、および素片生成手段５は、例えば、それぞれの機能を有する中央処理装置（図２のＣＰＵ１３）等により実現される。
【００２８】
【作用】
筆記運動形式生成手段１により生成される筆記運動形式は、筆記運動を所定の離散的な形態で表現した情報、例えば生成すべきグラフィックデータ（フォントや図形）の骨格に相当する情報を有する。これにより、グラフィックデータの概略的な形状が与えられる。
【００２９】
筆記運動形式の有する離散的な情報を用いて、空間的な演算を行うことにより、グラフィックデータの骨格を拡大・縮小したり、並進させたり、あるいはまた、回転や傾斜を加えたりすることができる。また、構造的な演算を行うことにより、複数のグラフィックデータの骨格を組み合わせたり、１つのグラフィックデータの骨格を複数の部分に分割したりすることができる。従って、既に生成された筆記運動形式を基にして、異なる文字や図形の筆記運動に関する筆記運動形式を生成することが可能になる。
【００３０】
筆記運動モデル生成手段２は、筆記運動形式が離散的に記述している筆記運動を、空間的かつ時間的に連続した滑らかな筆記運動モデルに変換する。１つの筆記運動形式から多様な種類の筆記運動モデルを生成することも可能である。この筆記運動モデルの有する情報を、筆記具モデル生成手段３が生成する筆記具モデルの位置および姿勢の時間的変化に対応させれば、筆記具の軌跡とその姿勢の変化を記述することができる。
【００３１】
さらに、筆記運動モデルの有する情報を、筆記面モデル生成手段４が生成する筆記面モデルに対する筆記具モデルの位置および姿勢に対応させれば、各時刻における筆記具モデルと筆記面モデルの間の関係が定まる。従って、各時刻における筆記具モデルと筆記面モデルの共有する点が自動的に求まり、素片生成手段５は、筆記運動を図形パターンとして筆記面モデル上に投影することができる。
【００３２】
筆記具モデルの形状や姿勢を変化させることにより、１つの筆記運動形式から多様な書体のグラフィックデータを生成できる。
素片生成手段５が生成するグラフィックデータの複数の素片を合わせれば、グラフィックデータの全体像が容易に生成され、これを処理結果として、ディスプレイやプリンタ等の出力装置に出力したり、あるいはまた、他の情報処理装置に転送したりすることができる。
【００３３】
また、素片生成手段５が生成するグラフィックデータの素片を、時刻の経過とともに時系列的に出力すれば、グラフィックデータを動的に出力することができる。
【００３４】
【実施例】
以下、図面を参照しながら本発明の実施例について説明する。
図２は、本発明によるグラフィックデータ生成装置の構成図である。図２のグラフィックデータ生成装置は、バス１５に接続されたディスプレイ装置１１、プリンタ１２、ＣＰＵ（Central Processing Unit ）１３、及びメモリ１４を有する情報処理装置として実現される。
【００３５】
本実施例においては、グラフィックデータの一例であるフォントを例に採って説明するので、筆記運動のことを書字運動と記し、筆記運動形式、筆記運動モデルは、それぞれ、書字運動形式、書字運動モデルと記すことにする。
【００３６】
ＣＰＵ１３は、メモリ１４に格納された書字運動形式から書字運動モデルを生成して、メモリ１４に格納する。またオペレータの指定に基づいて筆記具モデルと筆記面モデルを生成して、メモリ１４に格納する。
【００３７】
次にＣＰＵ１３は、格納された書字運動モデル、筆記具モデル、及び筆記面モデルを読み出してこれらに関する演算を行い、フォントまたは図形の素片を表すデータを生成する。そして生成した素片データをメモリ１４に格納する。
【００３８】
格納された素片データは、ディスプレイ装置１１若しくはプリンタ１２に転送され、フォントまたは図形として、ディスプレイ装置１１の画面上若しくはプリンタ１２による印刷画面上に出力される。
【００３９】
図３は、図２の実施例のグラフィックデータ生成装置において用いられる構成要素を示している。この構成要素は３つの部分に分類される。
第１の部分は、書字運動モデル、書字運動に対する演算のモデル、書字運動の形式的な表現（書字運動形式）、および書字運動に対する演算の形式的な表現から構成される。
【００４０】
本実施例においては、筆記具の位置を表す３成分のパラメータと、筆記具の姿勢を表す３成分のパラメータの、時間的変化として書字運動を捉え、これらのパラメータの各々をある滑らかさを有する局所的な基底関数の重ね合わせによって書字運動モデルを構成する。任意の書字運動は各基底関数に対する重み係数を指定することによって生成される。したがって、この重み係数の系列を書字運動の形式的な表現と見なすことができる。
【００４１】
重み係数の系列を連結したものは制御多角形とよばれ、書字運動の外観を表し、これが所望のフォントあるいは図形の骨格ベクトルとなる。制御多角形という書字運動の形式的な表現を導入することにより、運動という時間情報を含む連続的な量を、制御多角形という幾何学的な離散値の系列によって扱うことが可能になる。制御多角形はこれを用いた設計のしやすさからＣＡＤの分野で自由曲線および曲面を設計するのに広く用いられている（R.H.Bartels, J.C.Beatty, and B.A.Barsky. An Introduction to Splines for Use in Computer Graphics and Geometric Modeling. Morgan Kaufmann, 1987; G.Farin. Curves and Surfaces for Computer Aided Geometric Design-A Practical Guide (Second Edition). Academic Press,1990. ）。
【００４２】
本実施例においてはまた、多様なフォントの設計を支援するために、拡大あるいは縮小、並進、回転、あるいは、連結、分離などの、書字運動に対する各種の演算のモデルを導入する。これらの演算を書字運動に適用することによって、斜体や続け字を含む様々なフォントや図形を設計することが容易になる。これらの書字運動に対する演算モデルも、制御多角形に対する演算として形式的に表現でき、書字運動に対する演算の形式的な表現となる。
【００４３】
こうして結果的に、制御多角形および制御多角形に対する各種の演算を用いて書字運動を設計することが可能になり、フォントや図形の設計の労力が軽減される。
【００４４】
次に第２の部分は、筆記具モデル、筆記面モデル、および筆記具に固定された座標系と筆記面に固定された座標系の間の関係から構成される。そして、第３の部分はフォントおよび図形の生成アルゴリズムであり、ＣＰＵ１３が実行するフォントおよび図形の生成処理のプログラムがこれに相当する。
【００４５】
図４は、実施例のフォントおよび図形の生成アルゴリズムを示すフローチャートである。本アルゴリズムは、第１段階と第２段階の２つの段階に大別される。第１段階においてＣＰＵ１３は書字運動を設計する。ここでは、まず、所望のフォントあるいは図形の骨格を表す制御多角形によって書字運動の外観を設計する（ステップＳ１）。次に、必要に応じてその制御多角形に各種の演算を施し、書字運動モデルを生成する（ステップＳ２）。
【００４６】
第２段階では、ＣＰＵ１３は第１段階で設計された書字運動モデルを基にして、フォントあるいは図形を生成する。
まず、初期時刻を設定し（ステップＳ３）、その時刻における書字運動を表すパラメータ値（書字運動の素片）を計算する（ステップＳ４）。次に、筆記具に固定された座標系と筆記面に固定された座標系の間の変換行列を計算し（ステップＳ５）、筆記具の座標系における筆記具モデルの数式表現と、筆記面の座標系における筆記面モデルの数式表現を設計する（ステップＳ６）。そして、ステップＳ４からＳ６で得られた処理結果を用いて、その時刻におけるフォントあるいは図形を表すパラメータ値（フォント素片あるいは図形素片）を計算する（ステップＳ７）。
【００４７】
次に、設定された時刻が最終時刻を越えたかどうか判定し（ステップＳ８）、最終時刻に到達していなければ次の時刻を設定して（ステップＳ９）、ステップＳ４からＳ７までの処理を繰り返す。ステップＳ８で、設定時刻が最終時刻になっていれば、処理を終了する。
【００４８】
次に、書字運動モデル、書字運動に対する演算のモデル、書字運動の形式的な表現、および書字運動に対する演算の形式的な表現について、図５から図８までを参照しながら具体的に説明する。
【００４９】
書字運動を記述するための、ある滑らかさを有する局所的な基底関数としては、Ｂ−スプライン関数を用いる（J.H.Ahlberg, E.N.Nilson, and J.L.Walsh. The Theory of Splines and their Applications. Academic Press, 1967; C.de Boor. A Practical Guide to Splines. Springer-Verlag, 1978. ）。このとき、書字運動の外観を表す制御多角形は、Ｂ−スプライン制御多角形と呼ばれる（R.H.Bartels, J.C.Beatty, and B.A.Barsky; G.Farin）。書字運動に対する演算としては、拡大あるいは縮小、並進、回転、傾斜、連結、および分離の演算を定義する。
【００５０】
一般に、書字運動は筆記具の位置および姿勢の時間的変化によって記述することができる。本実施例においては、書字運動（書字運動モデル）は
【００５１】
【数１】
0003641283.tif 000002
【００５２】
により与えられる。（１）式の書字運動ｐ(t) は筆記具の代表点の位置および筆記具の姿勢の時間的変化を表す６次元ベクトルであり、
【００５３】
【数２】
0003641283.tif 000003
【００５４】
と定義される。ここで、ｘ(t) は筆記具の代表点の位置の時間的変化を表す３次元ベクトルであり、
【００５５】
【数３】
0003641283.tif 000004
【００５６】
と定義される。（３）式のｘ(t) 、ｙ(t) 、およびｚ(t) は、それぞれ時刻ｔにおける代表点のｘ、ｙ、およびｚ座標を表す。
また、（２）式のφ(t) は筆記具の姿勢の時間的変化を表す３次元ベクトルであり、
【００５７】
【数４】
0003641283.tif 000005
【００５８】
と定義される。（４）式のφ(t) 、θ(t) 、およびψ(t) は、筆記具に固定された３次元座標系と筆記面に固定された３次元座標系の間の、時刻ｔにおけるオイラー角としてを表す。
【００５９】
（１）式において、ｌ及びｍはｌ＜ｍを満たす整数であり、ｋは正の整数である。またｐ* l-k+1,・・・,ｐ* m+k-1 は６次元定数ベクトルであり、diag（ｐ* i ）はｐ* i の各々の成分を対角成分として持つ６×６対角定数行列である。１はすべての成分が１である６次元定数ベクトルであり、さらに、αは正定数スカラーである。ｔl-k ,・・・, ｔl-1,ｔl , ｔl+1 , ・・・,ｔm+k-2 は時刻を表すスカラーであり、
【００６０】
【数５】
0003641283.tif 000006
【００６１】
と定義される。時刻ｔl は書字運動の始点に相当し、時刻ｔm+k-1 は書字運動の終点に相当する。またＢk （α（ｔ−ｔi-1 ））は、多重性のない等間隔な点列ｔi-1,・・・,ｔi+k を節点として有する正規化されたｋ次のＢ−スプライン関数である。
【００６２】
ここで、等間隔の非多重の節点を有する正規化されたＢ−スプライン関数を計算するためのアルゴリズムについて説明する。このアルゴリズムは、一般的なＢ−スプライン関数を安定に計算するために、de Boor 及びCox によって提案されたアルゴリズム（C. de Boor）を単純化することにより導出される。
【００６３】
ｐ個の非多重の実数の節点ｓ＝ｓ1 ，・・・,ｓp （ただし、ｓ1 ＜・・・ ＜ｓp ）を有するｋ次のスプライン関数Ｓk (s) ＝Ｓk （ｓ; ｓ1 ，・・・,ｓp ）は次の２つの条件を満たす実関数として定義される。
【００６４】
２つの条件とは、ｉ＝０,・・・, ｐに対する各区間（ｓi ，ｓi+1 ）において、Ｓk (s) がｓに関する高々ｋ次の多項式であること、および、区間（−∞，＋∞）において、Ｓk (s) はＣk-1 級に属する、すなわち、ｊ＝１,・・・, ｋ−１に対してＳk (s) のｊ階の導関数が存在し連続であることである。ただし、ｓ0 ＝−∞およびｓp+1 ＝＋∞とする。
【００６５】
Ｂ−スプライン関数は局所的かつ最小の台を有する、スプライン関数の基底として定義される。すなわち、任意のスプライン関数は対応するＢ−スプライン関数の線形結合によって構成することができる。
【００６６】
de Boor およびCox によるアルゴリズムを変形することによって、等間隔の非多重の節点ｓ＝０,・・・, ｋ＋１を有する正規化されたｋ次のＢ−スプライン関数Ｂk （ｓ；０,・・・, ｋ＋１）は
【００６７】
【数６】
0003641283.tif 000007
【００６８】
のように計算することができる。ここで、関数Ｎ0,k (s),・・・,Ｎk,k (s) は再帰的に
【００６９】
【数７】
0003641283.tif 000008
【００７０】
のように定義され、関係
【００７１】
【数８】
0003641283.tif 000009
【００７２】
を満たす。
このとき、等間隔の非多重の節点ｓ＝ｌ,・・・, ｍ＋ｋ−１を有する正規化されたｋ次のスプライン関数Ｓk （ｓ；ｌ,・・・, ｍ＋ｋ−１）は対応するＢ−スプライン関数Ｂk （ｓ−（ｌ−ｋ）），・・・,Ｂk （ｓ−（ｍ＋ｋ−２））の線形結合として、定数ｃl-k+1,・・・,ｃm+k-1 の適切な選択によって、
【００７３】
【数９】
0003641283.tif 000010
【００７４】
のように構成することができる。（６）式に示されるＢ−スプライン関数の局所的な性質により、（９）式は
【００７５】
【数１０】
0003641283.tif 000011
【００７６】
のような形に変形され、さらに、
【００７７】
【数１１】
0003641283.tif 000012
【００７８】
となる。
特に、ｃl-k+1 ＝・・・ ＝ｃm+k-1 ＝１の場合には、（８）式により、（１１）式は
【００７９】
【数１２】
0003641283.tif 000013
【００８０】
となり、それゆえ、
【００８１】
【数１３】
0003641283.tif 000014
【００８２】
となる。
ところで、（１）式において、ベクトル１Ｂk （α（ｔ−ｔl-k ）），・・・，１Ｂk （α（ｔ−ｔm+k-2 ））は時間軸方向のずれを除いて全く同じ時間的概観を有している。すなわち、ベクトル１Ｂk （α（ｔ−ｔi-1 ））の各成分を表すＢ−スプライン関数Ｂk （α（ｔ−ｔi-1 ））は、Ｂ−スプライン関数Ｂk （α（ｔ））を時間軸方向にｔi-1 だけシフトさせることにより得られる。このことは（１）式の右辺の計算量の減少に通じる。
【００８３】
これらの基底関数Ｂk （α（ｔ−ｔl-k ）），・・・，Ｂk （α（ｔ−ｔm+k-2 ））に対する係数ベクトルの系列ｐ* l-k+1,・・・，ｐ* m+k-1 を任意に指定することにより、書字運動ｐ(t) の各成分は、以下での考察の主要な対象となる区間ｔl ＜ｔ＜ｔm+k-1 において、ｔl ，・・・，ｔm+k-1 を節点として有する任意のｋ次のスプライン関数になり、また、付随的な区間ｔ＜ｔl およびｔm+k-1 ＜ｔにおいて、それぞれ・・・，ｔl-1 ，ｔl およびｔm+k-1 ，ｔm+k ，・・・を節点として有するあるｋ次のスプライン関数になる。
【００８４】
スプライン関数は、上述したように、ある滑らかさを有するようにいくつかの区分的な多項式関数を連結することによって得られる関数である。Ｂ−スプライン関数はスプライン関数によって形成される空間に対して局所的な最小の台を有する基底を与える関数である。従って、スプライン関数の滑らかさにより、滑らかな書字運動が生成される。また、（６）式に示されるＢ−スプライン関数の局所性により、書字運動を局所的、あるいは時間区間毎に動的に生成することが可能になる。
【００８５】
係数ベクトルｐ* l-k+1,・・・，ｐ* m+k-1 のうち、ｐ* l-k+1,・・・，ｐ* l-1 およびｐ* m+1,・・・，ｐ* m+k-1 は、境界条件
【００８６】
【数１４】
0003641283.tif 000015
【００８７】
を与えることによって、それぞれｐ* l およびｐ* m の関数として一意的に決定される。ここで、ｐ1 l , ・・・，ｐk-1 l およびｐ1 m+k-1 , ・・・，ｐk-1 m+k-1 は、時刻ｔl およびｔm+k-1 における書字運動ｐ(t) の速度、加速度等の微分係数を与える６次元定数ベクトルである。
【００８８】
（１４）式で表される一般的な境界条件を課すことにより、始点および終点における書字運動ｐ(t) の形を任意に規定することができる。
特に、境界条件
【００８９】
【数１５】
0003641283.tif 000016
【００９０】
を与えることによって、これらは
【００９１】
【数１６】
0003641283.tif 000017
【００９２】
のように一意に決定される。ここで０は全ての成分が０である６次元の零ベクトルである。（１６）式は、書字運動ｐ(t) の各成分の値が、始点および終点において一定時間の間一定の値を保持することを表す。以下の実施例では、特に指定のない限り、境界条件（１５）を仮定することにする。
【００９３】
図５は、一実施例における書字運動ｐ(t) のｘ成分の時間変化を示している。図５の例では、（１）式においてｋ＝５、ｍ＝ｌ＋１、α＝１０とし、書字運動ｐ(t) のｘ成分ｘ＝ｘ（ｔ）は、
【００９４】
【数１７】
0003641283.tif 000018
【００９５】
のように表される。
（１７）式の右辺は、ｉ＝ｌ−４，・・・，ｌ＋５に対応する１０個の項ｘ* l-4 Ｂ5 （１０（ｔ−ｔl-5 ）），・・・，ｘ* l+5 Ｂ5 （１０（ｔ−ｔl+4 ））の和として与えられ、各項は図５の単位運動Ｕ１，・・・，Ｕ１０のそれぞれを与える局所的な関数である。
【００９６】
この場合（１６）式により、ｘ* l-4 ＝ｘ* l-3 ＝ｘ* l-2 ＝ｘ* l-1 ＝ｘ* l およびｘ* l+5 ＝ｘ* l+4 ＝ｘ* l+3 ＝ｘ* l+2 ＝ｘ* l+1 が成り立つ。従って、５つの単位運動Ｕ１，・・・，Ｕ５の関数形は時間軸方向のずれを除いて等しく、また他の５つの単位運動Ｕ６，・・・，Ｕ１０の関数形も時間軸方向のずれを除いて等しい。ｘ* l 、ｘ* l+1 の値はｘ（ｔl ）＝０．１、ｘ（ｔl+5 ）＝０．４となるように適当に定めた。
【００９７】
こうして得られたｘ（ｔ）は、図５の太い実線が示すように、（−∞，＋∞）の無限時間区間において滑らかで、かつ、区間（ｔl-k ，ｔm+2k-1）＝（ｔl-5 ，ｔl+10）に局在する局所的な関数となる。この関数ｘ（ｔ）は、ｘ＝０．１の位置を始点とし、ｘ＝０．４の位置を終点として、これらの２つの端点を結ぶ直線上の書字運動を表している。始点における最初の運動速度は０であり、徐々に一定の速度まで加速し、終点に向かって移動する。そして終点付近で徐々に速度を落とし、終点に到達した時の速度は０となる。
【００９８】
次に（１）式により構成される書字運動に対して、拡大あるは縮小、並進、回転、および傾斜を含む空間的演算を次のように定義する。
【００９９】
【数１８】
0003641283.tif 000019
【０１００】
【数１９】
0003641283.tif 000020
【０１０１】
【数２０】
0003641283.tif 000021
【０１０２】
【数２１】
0003641283.tif 000022
【０１０３】
ここで、書字運動ｐ′(t) は、書字運動ｐ(t) に対して各演算を施した結果得られる書字運動を表す。
また（１８）式のｃは、拡大あるいは縮小演算のための、各々の成分がすべて正定数スカラーである３次元定数ベクトルであり、（１９）式のｂは、並進演算のための３次元定数ベクトルである。また（２０）式および（２１）式のθおよびψは、それぞれ回転演算および傾斜演算のためのオイラー角を表す３次元定数ベクトルである。
【０１０４】
scale ( ｐ(t),ｃ）は、ｐ(t) に対する拡大あるいは縮小の演算結果を表し、位置の時間的変化（位置の軌道）ｘ(t) の各々の成分を、原点に関してｃの対応する各々の成分倍だけ拡大あるいは縮小することによって得られる書字運動を意味する。
【０１０５】
translate （ｐ(t) ，ｂ）は、ｐ(t) に対する並進演算の結果を表し、位置の軌道ｘ(t) を変位ｂだけ並進することによって得られる書字運動を意味する。
rotate（ｐ(t) ，θ）は、ｐ(t) に対する回転演算の結果を表し、位置の軌道ｘ(t) を原点に関してオイラー角θだけ回転することによって得られる書字運動を意味する。
【０１０６】
また、tilt (ｐ(t) ，ψ）は、ｐ(t) に対する傾斜演算の結果を表し、オイラー角により表される筆記具の姿勢の時間的変化（姿勢の軌道）φ(t) に一定のオイラー角ψを加算することによって得られる書字運動を意味する。
【０１０７】
書字運動の連結および分離を含む構造的な演算も、空間的な演算と同様に定義することができる。しかしながら、それらはその形式的な表現によってより簡潔に記述することができるので、書字運動の形式的な表現を説明した後に定義することにする。
【０１０８】
次に、書字運動の形式的な表現について説明する。本実施例においては、任意の書字運動は、（１）式により、基底関数に対する係数ベクトルの系列を指定することによって生成される。これらの係数ベクトルの系列を連結させたものを
【０１０９】
【数２２】
0003641283.tif 000023
【０１１０】
と書くことにする。（２２）式は書字運動の形式的な表現を与える。
ここで、Ｍは書字運動の主要な部分を表し、
【０１１１】
【数２３】
0003641283.tif 000024
【０１１２】
により定義される。“initial ”および“ final”はそれぞれ始端および終端における境界条件を満足させるための付加的な部分を表し、
【０１１３】
【数２４】
0003641283.tif 000025
【０１１４】
により定義される。もし境界条件（１５）を仮定すると、（１６）式が成立する。このとき、特に（２２）式の書字運動の形式的な表現を
【０１１５】
【数２５】
0003641283.tif 000026
【０１１６】
と書くことにする。（２５）式においては、書字運動の主要部分Ｍが与えられると“initial ”および“ final”の部分は自動的に定まるので、この場合（２３）式を書字運動の形式的な表現と見なすことができる。
【０１１７】
本実施例においては、書字運動を形式的に表現することが可能であるのと同様に、書字運動に対する演算も形式的に表現することが可能である。（１８）〜（２１）式により定義された空間的な演算に対する形式的な表現は
【０１１８】
【数２６】
0003641283.tif 000027
【０１１９】
【数２７】
0003641283.tif 000028
【０１２０】
【数２８】
0003641283.tif 000029
【０１２１】
【数２９】
0003641283.tif 000030
【０１２２】
となる。（２６）〜（２９）式において、ＭおよびＭ′はそれぞれ演算前および演算後の書字運動の形式的な表現を表す。
またscale （Ｍ，ｃ），translate （Ｍ，ｂ），rotate（Ｍ，θ），およびtilt（Ｍ，ψ）は、それぞれ、演算scale （ｐ(t) ，ｃ），translate （ｐ(t) ，ｂ），rotate（ｐ(t) ，θ），およびtilt（ｐ(t) ，ψ）の形式的な表現である。
【０１２３】
これらの空間的な演算に加えて、書字運動の連結および分離の操作に必要な構造的な演算を導入することができる。それらは形式的に
【０１２４】
【数３０】
0003641283.tif 000031
【０１２５】
【数３１】
0003641283.tif 000032
【０１２６】
【数３２】
0003641283.tif 000033
【０１２７】
のように表現される。（３１）、（３２）式において、ｒは１＜ｒ＜ｍ−ｌ＋１を満たす整数である。
（３０）式のconcatenate （Ｍ1 ，Ｍ2 ）は、単にＭ1 ・Ｍ2 あるいはＭ1 Ｍ2 と書かれ、書字運動Ｍ1 とＭ2 を連結することによって得られる書字運動を意味する。つまり、concatenate （Ｍ1 ，Ｍ2 ）は書字運動Ｍ1 を行った後に連続して書字運動Ｍ2 を行うことを意味する。concatenate （Ｍ1 ，Ｍ2 ）により得られる書字運動は、明らかにconcatenate （Ｍ2 ，Ｍ1 ）により得られる書字運動とは異なる。
【０１２８】
（３１）式のhead（Ｍ，ｒ）は、書字運動Ｍを構成する係数ベクトルのうち始めのｒ個のみを取り出すことによって得られる書字運動を意味し、（３２）式のtail（Ｍ，ｒ）は、書字運動Ｍを構成する係数ベクトルのうち終わりのｒ個のみを取り出すことによって得られる書字運動を意味する。headとtailを同じ書字運動Ｍに別々に適用すれば、書字運動Ｍを２つの部分に分離することができる。
【０１２９】
このように、書字運動に対する演算の形式的な表現によって、空間的な演算および構造的な演算（書字運動に対する演算のモデル）を、より簡潔に記述することができる。
【０１３０】
（２３）式、あるいは（２２）、（２５）式の書字運動の形式的な表現の各ベクトルに対応して６次元空間内の点を適当に定義し、これらの点を順に線分で結んでいくと、６次元空間における幾何学的な１つの折れ線が得られる。この折れ線は基底関数に対する制御多角形と呼ばれ、また、その各点は制御点と呼ばれる。制御多角形は速度あるいは加速度のような運動学的な量から形成されるのではなく、位置および姿勢という純粋に幾何学的な量から形成され、この制御多角形を指定することによって、（１）式から任意の書字運動が生成される。
【０１３１】
例えば（２３）式は、係数ベクトルｐ* l , ・・・，ｐ* m のそれぞれに対応するｍ−ｌ＋１個の制御点を、順に線分で結んだ制御多角形を表現している。
本実施例においては、書字運動という運動学的な連続量が、制御多角形という幾何学的な離散値の系列によって形式的に表現される。また、書字運動に対する演算は、制御多角形という書字運動の形式的な表現に対する幾何学的な演算によって形式的に表現される。
【０１３２】
図６（ａ）〜（ｄ）は、アルファベット「ａ」のフォントの生成処理における書字運動モデルの設計例を示している。
図６（ａ）は、アルファベット「ａ」の書字運動の設計に用いる制御多角形をｘ−ｙ平面上に投影した図である。また図６（ｂ）は、図６（ａ）の制御多角形のｙ成分の時間的変化を等時間間隔の折れ線で示し、さらに、その折れ線の各頂点の座標の値に応じて重み付けられたある滑らかさを有する局所的な基底関数の系列を示したものである。
【０１３３】
図６（ｄ）は、図６（ｂ）の重み付けられた基底関数（単位運動）を（１）式により重ね合わせた結果を示している。また図６（ｃ）は、（１）式を用いてｘ成分についてもｙ成分と同様の操作を施すことによって得られた、ｘ−ｙ平面上の滑らかな書字運動の軌道を示している。（１）式が示すように、書字運動モデルは本来６次元的な量であるが、図６（ｃ）はそのｘ−ｙ平面上への投影図を表している。
【０１３４】
図６（ａ）〜（ｄ）の例においては、ｌ＝１、ｍ＝１１、ｋ＝５、α＝１０として計算し、各基底関数の重み付け係数は、制御多角形の各制御点における座標値を基にして算定した。
【０１３５】
例えば、図６（ｂ）および（ｄ）の実線で示される１１個の単位運動の重み付け係数ｙ* 1 、・・・、ｙ* 11は、それぞれ時刻ｔ1 、・・・、ｔ11における制御点のｙ成分を基にして決められている。また、その左側および右側に破線で示される複数の単位運動はの重み付け係数は、（１６）式により、それぞれｙ* 1 およびｙ* 11に等しくなっている。これらの破線で示される単位運動は、書字運動モデルの始点および終点の状態を規定する付加的な部分である。
【０１３６】
（１６）式を用いた結果、単位運動の重ね合わせにより得られる書字運動モデルのｙ成分は、図６（ｄ）に示されるように、始点（ｔ1 ）および終点（ｔ15）付近においてそれぞれ一定値を保持している。また、図６（ｄ）ではｔ＜ｔ1 およびｔ15＜ｔの部分が示されていないが、（１）式から分かるように、書字運動モデルｐ(t) の各成分は区間（ｔ-4，ｔ20）において０でない値を持ち、この区間の外では０になる。つまり、書字運動モデルｐ(t) は区間（ｔ-4，ｔ20）に局所的に存在する。
【０１３７】
図６（ａ）の制御多角形は離散値の系列によって表されるが、（１）式の右辺の各Ｂ−スプライン関数が持つ滑らかさにより、それらの重ね合わせである書字運動モデルｐ(t) の各成分もまた、時刻ｔの滑らかな関数になる。
【０１３８】
図７（ａ）〜（ｄ）は、制御多角形に対して（３０）式の連結演算を適用して、アルファベット「ａ」を書く運動とアルファベット「ｃ」を書く運動を連結することによって得られた、文字列「ａｃ」を書く書字運動を示している。
【０１３９】
図７（ａ）は、連結演算により得られた文字列「ａｃ」の制御多角形をｘ−ｙ平面上に投影した図である。図７（ａ）の制御多角形を得るために、アルファベット「ａ」の制御多角形としては、図６（ａ）と同じものを用いた。また図７（ｂ）は、図７（ａ）の制御多角形のｙ成分の時間的変化を表す折れ線と、その折れ線の各頂点の座標の値に応じて重み付けられた基底関数の系列を示している。
【０１４０】
図７（ｄ）は、図７（ｂ）の重み付けられた基底関数を重ね合わせた結果を示している。また図７（ｃ）は、ｘ成分についてもｙ成分と同様の操作を施して得られた、ｘ−ｙ平面上の滑らかな書字運動の軌道を示している。
【０１４１】
図７（ａ）〜（ｄ）の例においては、ｌ＝１、ｍ＝１７、ｋ＝５、α＝１０として計算した。図７（ｂ）および（ｄ）の実線で示される１７個の単位運動の重み付け係数ｙ* 1 、・・・、ｙ* 17は、それぞれ時刻ｔ1 、・・・、ｔ17における制御点のｙ成分を基にして決められている。図７（ｄ）において、時刻ｔ1 は書字運動の始点に対応し、時刻ｔ21は書字運動の終点に対応する。
【０１４２】
図７（ａ）では、アルファベット「ａ」に対して図６（ａ）と同じ制御多角形が用いられているにも係わらず、図６（ｃ）に示されるアルファベット「ａ」を書く運動の終端部の形状が、図７（ｃ）の文字列「ａｃ」を書く運動の対応する部分の形状と異なっている。これは、連結演算によりアルファベット「ａ」の制御多角形の終点が、アルファベット「ｃ」の制御多角形の始点に接続されたためである。図７（ｃ）では、アルファベット「ａ」とアルファベット「ｃ」が滑らかに繋がった書字運動モデルが生成されていることが分かる。
【０１４３】
このように、連結演算を用いて個別の文字の制御多角形を接続すれば、任意の文字を組み合わせた続け字の書字運動モデルを生成することができる。３文字以上の続け字についても同様である。
【０１４４】
図８は、制御多角形に対する各種の演算を組み合わせて得られた複雑な書字運動の例を示している。
文字列「ｃａ」の制御多角形は、図７（ａ）の例で用いたアルファベット「ｃ」およびアルファベット「ａ」の制御多角形を用いて設計される。まず最初にアルファベット「ａ」の制御多角形に（２６）式のscale 演算を施して縮小し、次に（２７）式のtranslate 演算により、縮小されたアルファベット「ａ」の制御多角形とアルファベット「ｃ」の制御多角形の位置の相対関係を整え、（３０）式のconcatenate 演算を用いてこれら２つの制御多角形を連結する。最後に連結された文字列「ｃａ」の制御多角形に（２８）式のrotate演算を施して回転を加えれば、図８にその投影図が示されているような制御多角形が得られる。
【０１４５】
得られた文字列「ｃａ」の制御多角形を用いて、（１）式の右辺を計算すると、例えば図８のような書字運動モデルのｘ−ｙ平面上の軌道が得られる。図８においては、図７（ａ）〜（ｄ）と同様に、ｌ＝１、ｍ＝１７、ｋ＝５、α＝１０として計算した。
【０１４６】
図８では、アルファベット「ａ」とアルファベット「ｃ」の順番が図７（ｃ）とは逆になった続け字の書字運動が得られている。この場合、アルファベット「ｃ」の制御多角形の終点がアルファベット「ａ」の制御多角形の始点に接続されるため、アルファベット「ｃ」から「ａ」へと連続的に繋がった軌道が得られる。
【０１４７】
次に、図９および図１０を参照しながら、筆記具モデル、筆記面モデル、および、筆記具に固定された座標系と筆記面に固定された座標系の間の関係の具体例について説明する。
【０１４８】
図９は、図４の第２段階においてフォントあるいは図形が生成される様子を示している。
図９において、 pＯ− pＸ pＹ pＺは筆記具に固定された座標系であり、筆記具は頂点が原点 pＯで中心線が pＺ軸の楕円錐２１としてモデル化されている。
【０１４９】
oＯ− oＸ oＹ oＺは筆記面に固定された座標系であり、この図においては、筆記面は oＯ− oＸ oＹ平面２４としてモデル化されている。以下の実施例においては、筆記具として仮想的な楕円錐形の筆記具モデル２１を用い、また、筆記面として単純な２次元平面の筆記面モデル２４を用いる。
【０１５０】
筆記具モデル２１の頂点 pＯを代表点として選ぶと、これが書字運動を行う書字運動素片２５となる。書字運動素片２５が、第１段階で設計された書字運動モデルに従って、その oＯ− oＸ oＹ oＺ空間内の軌道２３上を移動することにより、筆記具モデル２１と筆記面モデル２４の交差面２６が筆記面モデル２４上にフォントあるいは図形２２を形成していく。図９においては、この交差面２６は楕円形になる。交差面２６は、フォントあるいは図形２２を生成するので、フォント素片（あるいは図形素片）と呼ぶことにする。
【０１５１】
筆記具に固定された座標系 pＯ− pＸ pＹ pＺにおける点の座標を
【０１５２】
【数３３】
0003641283.tif 000034
【０１５３】
で表すと、この座標系の下で筆記具モデル２１は、
【０１５４】
【数３４】
0003641283.tif 000035
【０１５５】
のように表される。（３４）式において、βおよびγは定数スカラーである。（３４）式は、頂点が原点 pＯ、中心線が pＺ軸、かつ、 pＯ− pＸ pＹ平面に平行な水平断面の径が座標 pz の大きさに比例するような楕円錐の表面を表している。
【０１５６】
筆記面に固定された座標系 oＯ− oＸ oＹ oＺにおける点の座標を
【０１５７】
【数３５】
0003641283.tif 000036
【０１５８】
で表すと、この座標系の下で筆記面モデル２４は、
【０１５９】
【数３６】
0003641283.tif 000037
【０１６０】
のように表される。（３６）式は、 oＯ− oＸ oＹ平面を表している。
座標系 pＯ− pＸ pＹ pＺにおいて表現されるベクトル pｘは、座標系 oＯ− oＸ oＹ oＺにおいては、
【０１６１】
【数３７】
0003641283.tif 000038
【０１６２】
のように表現される。ここでベクトルｘは、座標系 pＯ− pＸ pＹ pＺの原点 pＯの座標系 oＯ− oＸ oＹ oＺにおける位置を表す。またＲ（φ）は、
【０１６３】
【数３８】
0003641283.tif 000039
【０１６４】
のように定義される３×３行列である。
（３７）、（３８）式のφは、座標系 pＯ− pＸ pＹ pＺと座標系 oＯ− oＸ oＹ oＺの間のオイラー角φ＝［φ，θ，ψ］T を表す。オイラー角φ＝［φ，θ，ψ］T は、図１０（ａ）〜（ｃ）に図示されている。ただし、図１０（ａ）〜（ｃ）においては、ｘは零ベクトルとしている。
【０１６５】
図１０（ａ）は、座標系 oＯ− oＸ oＹ oＺを oＺ軸のまわりに回転角φだけ回転して得られる座標系 oＯ− oＸ′ oＹ′ oＺ′を示している。また図１０（ｂ）は、座標系 oＯ− oＸ′ oＹ′ oＺ′を oＹ′軸のまわりに回転角θだけ回転して得られる座標系 oＯ− oＸ″ oＹ″ oＺ″を示している。また図１０（ｃ）は、座標系 oＯ− oＸ″ oＹ″ oＺ″を oＺ″軸のまわりに回転角ψだけ回転して得られる座標系を示しており、得られた座標系が座標系 pＯ− pＸ pＹ pＺとなる。
【０１６６】
このように、（３７）式は、筆記具に固定された座標系 pＯ− pＸ pＹ pＺと筆記面に固定された座標系 oＯ− oＸ oＹ oＺの間の一般的な関係を与えている。
【０１６７】
本実施例においては、筆記具モデル２１を表す（３４）式、筆記面モデル２４を表す（３６）式、および、筆記具に固定された座標系と筆記面に固定された座標系の間の関係を表す（３７）式を連立させ、それらを（ oｘ， oｙ， oｚ）について解くことにより、図９のフォント素片２６の周囲の座標が求まる。
【０１６８】
さらにその結果に、書字運動モデルを表す（１）式を加えることによって、交差面２６が時間の経過とともに形を変えながら筆記面モデル２４上を移動し、その軌跡としてフォントあるいは図形２２が得られる。ただし、このとき、（３７）式のベクトルｘは書字運動モデルの位置成分により決められ、オイラー角φは書字運動モデルの姿勢成分により決められる。
【０１６９】
（３４）式を満足する pｘ、 pｙを表す媒介パラメータλを、
【０１７０】
【数３９】
0003641283.tif 000040
【０１７１】
のように導入すると、（３６）、（３７）、（３９）、（１）式より、求めるべきフォントあるいは図形２２の形状を表す３次元ベクトル oｆ(t) は、
【０１７２】
【数４０】
0003641283.tif 000041
【０１７３】
【数４１】
0003641283.tif 000042
【０１７４】
【数４２】
0003641283.tif 000043
【０１７５】
となる。ここで、パラメータλはスカラーである。
第１段階で設計された書字運動モデルが（４２）式のように与えられると、（４０）、（４１）式を用いて、任意の時刻における、任意のλについての oｆ(t) を求めることができる。時刻ｔを固定したとき、 oｆ(t) はフォント素片２６の周囲を表し、さらにλを固定すると、 oｆ(t) はフォント素片２６の周上の一点を表す。
【０１７６】
図４のステップＳ７においては、（４０）式によりフォント素片の計算を行い、フォントあるいは図形を生成する。
以下では、図１１から図１９（ｃ）までを参照しながら、本実施例によって生成されたフォントの具体例について説明する。
【０１７７】
図１１および図１２は、図１３（ａ）に示すフォントを生成する処理のフローチャートである。
まず最初に、ＣＰＵ１３は、オペレータからの指示に従って、アルファベット「ａ」の制御多角形とアルファベット「ｃ」の制御多角形を設計する（図１１、ステップＳ１１）。ここで、Ｍa およびＭc は、それぞれ筆記体のフォント「ａ」および「ｃ」を生成するための書字運動の形式的な表現である。
【０１７８】
次に、Ｍa とＭc にＭac＝concatenate(Ｍa ，Ｍc ）＝Ｍa Ｍc なる連結演算を施し、文字列「ａｃ」を生成するための書字運動の形式的な表現Ｍacを得る（ステップＳ１２）。図１３（ｂ）の折れ線は、文字列「ａｃ」の制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示しており、図１３（ｃ）の折れ線は、それを oＯ− oＸ oＹ平面に投影した形状を示している。
【０１７９】
次に、ｊ＝１、ｔj ＝ｔ1 とおき（図１２、ステップＳ１３）、（４２）式により時刻ｔj における書字運動モデル上の点を求める（ステップＳ１４）。このとき、（４２）式の右辺の重み付け係数として、Ｍacのｊ番目の係数ベクトルを用いる。
【０１８０】
次に、ステップＳ１４で得られた書字運動モデルの成分φ（ｔj ），θ（ｔj ），ψ（ｔj ）を用いて、（４１）式の行列の各成分を計算する（ステップＳ１５）。
【０１８１】
そして、得られた行列の各成分を用いて、（４０）式によりフォント素片 oｆ(t) を求める（ステップＳ１６）。ただし、ここでは、λ＝λh ＝２π（ｈ−１）／ｎb 、ｈ＝１，・・・，ｎb （ｎb は正の整数）として、ｎb 個のｈのそれぞれの値について、フォント素片 oｆ(t) を計算する。これは、フォント素片２６の周囲を表すλの範囲０＜λ＜２πをｎb 等分して、得られたλの離散値のそれぞれに対応するフォント素片２６の周上の点を求めることに相当する。
【０１８２】
次に、ｔj が終点に相当するｔ17+k-1になったかどうかを判定し（ステップＳ１７）、ｔj ＝ｔ17+k-1であれば処理を終了する。
ステップＳ１７でｔj が終点に到達していなければ、ｊに１を加算し（ステップＳ１８）、ｔj ＝ｔj ＋（ｊ−１）／ｎa αとおいて（ステップＳ１９）、ステップＳ１４以降の処理を繰り返す。これは、書字運動の始点から終点まで、１／ｎa α刻みでフォント素片 oｆ(t) を計算することを意味する。
【０１８３】
こうして、図１３（ａ）および（ｂ）に示されるような、滑らかな筆記体のフォント「ａｃ」が生成される。ただし、図１３（ａ）〜（ｃ）の例においては、ｌ＝１、ｍ＝１７、ｋ＝５、α＝１０．０、β＝１７．５、γ＝５．０、ｎa ＝１０、ｎb ＝５０として計算した。
【０１８４】
図１３（ａ）において、生成されたフォントの線の太さは、主としてステップＳ１４で得られる書字運動のｚ成分の値に依存している。本実施例では筆記面が oＯ− oＸ oＹ平面にあるため、書字運動のｚ成分が正になると筆記具の頂点２５が筆記面から離れ、フォント素片２６が形成されなくなる。逆に書字運動のｚ成分が小さな負の値のときは、小さなフォント素片２６が形成され、さらにｚ成分が大きな負の値になると、筆記具の頂点２５が筆記面の下に沈み込んで、フォント素片２６が大きくなる。このようにして、フォントの線の太さが変化する。
【０１８５】
図１３（ｃ）の制御多角形の投影図が連続しているのにも係わらず、図１３（ａ）のフォントにおいて「ａ」と「ｃ」が離れているのは、「ａ」の終点と「ｃ」の始点の間で書字運動のｚ成分が一旦正の値をとるためである。
【０１８６】
図１１のステップＳ１２では、姿勢に関する重み付け係数φ* i 、θ* i 、ψ* i の各値がｉに依らず一定値になっている。これらの値をｉとともに、すなわち時刻とともに変化させれば、筆記具を傾斜させたり、回転させたりすることができる。特にフォントの飾り部分や始終端部分の種々の形状を生成するためには、姿勢に関する重み付け係数が変化するような書字運動モデルを設計することが有効になる。
【０１８７】
図１４（ａ）から図１９（ｃ）までは、他の色々なフォントの生成例を示している。これらのフォントの生成処理においても、ｌ＝１、ｋ＝５、α＝１０．０、ｎa ＝１０、ｎb ＝５０として、図１１および図１２に示すのと同様の手順を用いた。
【０１８８】
図１４（ａ）〜（ｃ）は、筆記体のフォント「ａ」の生成例を示している。図１４（ａ）は生成された筆記体のフォント「ａ」を示し、図１４（ｂ）は生成されたフォントと、その制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示し、図１４（ｃ）はそれを oＯ− oＸ oＹ平面に投影した形状を示している。
【０１８９】
図１４（ａ）〜（ｃ）の例においては、ｍ＝１１、β＝１７．５、γ＝５．０として計算した。
フォント「ａ」の制御多角形としては、図１３（ａ）のフォント「ａｃ」を生成するのに用いたのと同じものを採用したが、単独のアルファベット「ａ」の生成処理であるため、フォント「ａ」の終端部の形状は図１３（ａ）と異なっている。これは、図１４（ａ）の場合は、フォント「ａ」の終端部に対して（１６）式の条件が課されているためである。
【０１９０】
図１５（ａ）〜（ｃ）は、筆記体のフォント「ｃａ」の生成例を示している。図１５（ａ）は生成された筆記体のフォント「ｃａ」を示し、図１５（ｂ）は生成されたフォントと、その制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示し、図１５（ｃ）はそれを oＯ− oＸ oＹ平面に投影した形状を示している。
【０１９１】
図１５（ａ）〜（ｃ）の例においては、ｍ＝１７、β＝１７．５、γ＝５．０として計算した。
このフォント「ｃａ」に対応する書字運動モデルは、Ｍ′ca＝rotate(concatenate(translate（Ｍc ，［-0.06, -0.05］T ），translate(scale(Ｍa ，0.50),［0.13, -0.04 ］T )),30.0 °) なる演算を用いて生成された。筆記体のフォント「ｃａ」の書字運動の oＯ− oＸ oＹ平面（ｘ−ｙ平面）への投影図は、図８に示されている。
【０１９２】
このように、本発明のグラフィックデータ生成方法を用いることによって、続け字を含む複雑なフォントを容易に生成することができる。
図１６（ａ）〜（ｃ）は、細行書体のフォント「中」の生成例を示している。図１６（ａ）は生成された細行書体のフォント「中」を示し、図１６（ｂ）は生成されたフォントと、その制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示し、図１６（ｃ）はそれを oＯ− oＸ oＹ平面に投影した形状を示している。
【０１９３】
図１６（ａ）〜（ｃ）の例においては、ｍ＝１６、β＝１７．５、γ＝５．０として計算した。
図１６（ａ）〜（ｃ）において、括弧付き数字（１）〜（１６）は、用いた制御多角形の各制御点に対応する（４２）式の添字ｉの値を表し、文字「中」を書く時の筆順に対応している。例えば、（１）はｉ＝ｌ＝１を表し、書字運動の始点に対応し、（１６）はｉ＝ｍ＝１６を表し、書字運動の終点に対応する。
【０１９４】
図１６（ｂ）に示す（１０）→（１１）→（１２）の線分は、筆記具モデルの頂点、つまり筆記具の先端を筆記面から上に上げる操作を意味し、（１２）→（１３）の線分は、筆記具を他の場所へ移動させる操作を意味する。また、（１３）→（１４）の線分は、筆記具の先端を筆記面の下に沈み込ませて、文字「中」の真ん中の縦線を書き始める操作を意味している。
【０１９５】
図１７（ａ）〜（ｃ）は、太行書体のフォント「中」の生成例を示している。図１７（ａ）は生成された太行書体のフォント「中」を示し、図１７（ｂ）は生成されたフォントと、その制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示し、図１７（ｃ）はそれを oＯ− oＸ oＹ平面に投影した形状を示している。
【０１９６】
図１７（ａ）〜（ｃ）の例では、図１６（ａ）〜（ｃ）と同様の書字運動モデルを用い、ｍ＝１６、β＝１７．５、γ＝１７．５として計算した。β＝γであるから、この場合の筆記具モデルの形状は円錐になり、図１６（ａ）のフォント生成に用いた筆記具モデルよりも太くなっている。このために、図１６（ａ）の場合と同様の書字運動モデルを用いても、フォント素片がより大きくなり、図１６（ａ）よりも太いフォントが得られる。
【０１９７】
以上の図１３（ａ）から図１７（ｃ）の生成例では、毛筆書体に相当するフォントが生成されているが、本発明によれば他の書体も生成することができる。
図１８（ａ）〜（ｃ）は、丸ゴシック体のフォント「中」の生成例を示している。図１８（ａ）は生成された丸ゴシック体のフォント「中」を示し、図１８（ｂ）は生成されたフォントと、その制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示し、図１８（ｃ）はそれを oＯ− oＸ oＹ平面に投影した形状を示している。
【０１９８】
図１８（ａ）〜（ｃ）の例においては、ｍ＝３５、β＝３５．０、γ＝３５．０として計算した。
図１８（ｃ）に示される制御多角形の投影図は、図１６（ｃ）および図１７（ｃ）に示されるものと全く同じである。図１６（ａ）〜（ｃ）および１７（ａ）〜（ｃ）の生成例で用いた制御多角形は、図１８（ａ）〜（ｃ）の生成例で用いた丸ゴシック体の制御多角形を基にして設計された。
【０１９９】
図１９（ａ）〜（ｃ）は、明朝体のフォント「中」の生成例を示している。図１９（ａ）は生成された明朝体のフォント「中」を示し、図１９（ｂ）は生成されたフォントと、その制御多角形を oＯ− oＸ oＹ oＺ空間に投影した形状を示し、図１９（ｃ）はそれを oＯ− oＸ oＹ平面に投影した形状を示している。
【０２００】
図１９（ａ）〜（ｃ）の例においては、ｍ＝４４、β＝３５．０、γ＝５．０として計算した。
図１９（ｃ）に示される制御多角形の投影図は、図１６（ｃ）、図１７（ｃ）、および図１８（ｃ）に示されるものとほとんど同じである。図１９（ａ）〜（ｃ）の生成例で用いた制御多角形もまた、図１８（ａ）〜（ｃ）の生成例で用いた制御多角形を基にして設計された。
【０２０１】
このように、ある文字の制御多角形を１つ設計すれば、それを基にして異なる複数の書体の制御多角形を設計することができ、それらに対応するフォントを容易に生成することができる。
【０２０２】
以上説明したフォントの生成例においては、筆記具モデルの形状として（３４）式に示される楕円錐あるいは円錐を用い、筆記面モデルとしては（３６）式に示される平面を用いた。
【０２０３】
しかしながら、本発明の筆記具モデルはこの形状に限られるものではなく、他の形状を任意に定義して用いることができる。例えば、三角錐、四角錐、楕円柱、円柱、角柱等の形状を用いてもよい。
【０２０４】
また、本発明の筆記面モデルも oＯ− oＸ oＹ平面に限られず、他の形状を任意に定義して用いることができる。例えば、 oＯ− oＸ oＹ oＺ空間内で任意の傾きを持つ平面やそれらの組合せ、あるいは球面等の曲面を用いてもよい。
【０２０５】
従来のフォントは、単なる図形パターンとして生成されるフォントという意味で、静的なフォント（スタティックフォント）であった。これに対して、本発明により生成されるフォントは、空間的かつ時間的な性質を有する書字運動パターンの結果として生成されるフォントという意味において、動的フォント（ダイナミックフォント）と呼ぶことができる。
【０２０６】
本発明の実施例においては、アルファベットや漢字を例にしてフォントの生成例を説明したが、平仮名、片仮名、他の外国語に使用される文字、記号等のフォントも同様に生成される。また、生成される対象はフォントに限られず、任意の図形等、筆記運動として表現できる全てのグラフィックデータもまた、同様にして生成される。
【０２０７】
本発明のグラフィックデータの生成方式によれば、従来の骨格ベクトル方式の有する欠点が全て克服される。図２０は、従来の骨格ベクトル方式と本発明の生成方式の比較を示している。
【０２０８】
図２０において、「◎」印は、特徴欄に記載された対応する機能の実現に最適であることを表し、「○」印は適格であることを表し、「△」印はやや適することを表し、「×」印は不適格であることを表す。
【０２０９】
骨格ベクトル方式では、平面的な位置情報のみからフォントを生成するのに対して、本発明では、空間的な位置情報、空間的な姿勢情報、および時間的な情報を用いてグラフィックデータを生成する。
【０２１０】
また、本発明では、骨格ベクトル方式のように部分的な図形パターンとして肉付けしたものを組み合わせるのではなく、書字運動パターン、あるいは筆記運動パターンとして全体的に肉付けした後にそれらを筆記面上に投影するので、フォントや図形が自動的かつ容易に肉付けされる。
【０２１１】
また、１つの制御多角形を基に、多様な書体に対応する多くの制御多角形および筆記運動（書字運動）を設計できるので、多書体のフォント生成が容易である。
【０２１２】
また、従来の骨格ベクトル方式のように不連続な図形パターンの組み合わせとしてフォントを生成するのではなく、連続的な運動パターンを投影してフォントを生成するので、続け字の生成が可能である。
【０２１３】
さらに、同様の理由で、筆記運動の始点から終点に向かって時系列的に、対応するグラフィックデータを生成・表示するような、筆記過程の動的な出力も可能である。
【０２１４】
【発明の効果】
本発明によれば、１つの制御多角形を基に、多様な書体に対応する多くの制御多角形および筆記運動を設計できるので、１つの文字について異なる書体を生成することが容易になる。
【０２１５】
また、筆記具モデル、筆記面モデル、筆記具の座標系と筆記面の座標系の間の関係を任意に選べるので、複雑なグラフィックデータを生成することが容易になる。
【０２１６】
また、筆記運動の軌道に沿って筆記具モデルを動かすことにより、文字や図形が自動的かつ簡潔に肉付けされるので、異なる書体毎に煩雑な肉付け作業をする必要がない。
【０２１７】
また、本発明によれば、複数の書字運動の形式的な表現を、連結演算を用いて１つの続け字の書字運動の形式的な表現にまとめることができる。得られた続け字の書字運動の形式的な表現を用いて書字運動を設計すれば、任意の並びの続け字のフォントを生成・表示することができる。
【０２１８】
また、拡大、縮小、並進、回転、傾斜等の演算を用いて、書字運動の形式的な表現、あるいは筆記運動の形式的な表現を加工して、別の表現に変換することができる。これにより、幾何学的に変換されたグラフィックデータが得られる。
【０２１９】
さらに、フォント素片が生成される時刻を指定することができるので、あたかも人が筆記具で筆記するように、フォントや図形が生成されていく過程をＣＲＴやプリンタ等の出力装置にオンラインで出力することが可能になる。
【図面の簡単な説明】
【図１】本発明の原理図である。
【図２】本発明の一実施例の構成図である。
【図３】本発明の一実施例の構成要素を示す図である。
【図４】本発明によるフォントおよび図形の生成アルゴリズムを示すフローチャートである。
【図５】本発明による直線的な書字運動の生成例を示す図である。
【図６】本発明による文字「ａ」を書く運動の生成例を示す図である。
【図７】本発明による文字列「ａｃ」を書く運動の生成例を示す図である。
【図８】本発明による文字列「ｃａ」を書く運動の生成例を示す図である。
【図９】本発明によるフォントあるいは図形の生成の様子を示す図である。
【図１０】本発明における筆記具に固定された座標系と筆記面に固定された座標系の間のオイラー角を示す図である。
【図１１】本発明によるフォント「ａｃ」の生成処理のフローチャート（その１）である。
【図１２】本発明によるフォント「ａｃ」の生成処理のフローチャート（その２）である。
【図１３】本発明による筆記体フォント「ａｃ」の生成例を示す図である。
【図１４】本発明による筆記体フォント「ａ」の生成例を示す図である。
【図１５】本発明による筆記体フォント「ｃａ」の生成例を示す図である。
【図１６】本発明による細行書体フォント「中」の生成例を示す図である。
【図１７】本発明による太行書体フォント「中」の生成例を示す図である。
【図１８】本発明による丸ゴシック体フォント「中」の生成例を示す図である。
【図１９】本発明による明朝体フォント「中」の生成例を示す図である。
【図２０】従来の骨格ベクトル方式と本発明の生成方式の違いを示す図である。
【図２１】従来のフォントを示す図である。
【図２２】従来のフォント生成方式の特徴を示す図である。
【符号の説明】
１  筆記運動形式生成手段
２  筆記運動モデル生成手段
３  筆記具モデル生成手段
４  筆記面モデル生成手段
５  素片生成手段
１１  ディスプレイ装置
１２  プリンタ
１３  ＣＰＵ
１４  メモリ
１５  バス
２１  筆記具モデル
２２  フォントあるいは図形
２３  書字運動モデルの軌道
２４  筆記面モデル
２５  書字運動素片
２６  フォント素片
【図１】
0003641283.tif 000044
【図２】
0003641283.tif 000045
【図３】
0003641283.tif 000046
【図４】
0003641283.tif 000047
【図５】
0003641283.tif 000048
【図６】
0003641283.tif 000049
【図７】
0003641283.tif 000050
【図８】
0003641283.tif 000051
【図９】
0003641283.tif 000052
【図１０】
0003641283.tif 000053
【図１１】
0003641283.tif 000054
【図１２】
0003641283.tif 000055
【図１３】
0003641283.tif 000056
【図１４】
0003641283.tif 000057
【図１５】
0003641283.tif 000058
【図１６】
0003641283.tif 000059
【図１７】
0003641283.tif 000060
【図１８】
0003641283.tif 000061
【図１９】
0003641283.tif 000062
【図２０】
0003641283.tif 000063
【図２１】
0003641283.tif 000064
【図２２】
0003641283.tif 000065