JPH11224080A - 毛筆文字描画方法 - Google Patents

毛筆文字描画方法

Info

Publication number
JPH11224080A
JPH11224080A JP10024607A JP2460798A JPH11224080A JP H11224080 A JPH11224080 A JP H11224080A JP 10024607 A JP10024607 A JP 10024607A JP 2460798 A JP2460798 A JP 2460798A JP H11224080 A JPH11224080 A JP H11224080A
Authority
JP
Japan
Prior art keywords
brush
skeleton
character
pattern
skeleton point
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.)
Granted
Application number
JP10024607A
Other languages
English (en)
Other versions
JP2912602B1 (ja
Inventor
Kazuo Kondo
和生 近藤
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.)
ADK FUJI SYSTEM KK
Original Assignee
ADK FUJI SYSTEM KK
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 ADK FUJI SYSTEM KK filed Critical ADK FUJI SYSTEM KK
Priority to JP10024607A priority Critical patent/JP2912602B1/ja
Application granted granted Critical
Publication of JP2912602B1 publication Critical patent/JP2912602B1/ja
Publication of JPH11224080A publication Critical patent/JPH11224080A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】 【課題】 あたかも実際の毛筆で書かれたかのようにワ
ードプロセッサやコンピュータ等の画面上等に毛筆文字
を描画する。 【解決手段】 描画対象となる毛筆文字の各画毎の骨格
線2に沿って、各骨格点Ii における筆触パターンBS
i を演算により求める。さらに、各骨格点Ii ,Ii+1
間における補完用の複数の骨格点Ii,j の筆触パターン
BSi,j を演算により求め、これらの筆触パターンBS
i ,BSi,j を連続的に画面上等に描画していく。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、毛筆を模擬した電
子筆モデルを用いて漢字や連綿ひらがな文字等をワード
プロセッサやコンピュータ等の画面上等に描画する毛筆
文字描画方法に関するものである。
【0002】
【従来の技術】従来、例えば、コンピュータを用いて毛
筆文字や毛筆ひらがなを画面上に描画する場合、描画対
象となる毛筆文字のアウトラインフォントデータを予め
半導体メモリ等の記憶手段に記憶しておき、該アウトラ
インフォントデータを設定された速度で筆順に従って順
次読出し、画面上に表示している。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
毛筆文字描画方法では、予め記憶手段に記憶されたアウ
トラインフォントデータを筆順に従って読出し、画面上
に表示するようになっているので、記憶手段の記憶容量
の制約を受けて記憶できるアウトラインフォントデータ
数に限りがあることから、実際の毛筆で書くような、側
筆と呼ばれる筆法を表現することが困難であった。ま
た、記憶手段には文字毎のアウトラインフォントデータ
が記憶されているので、これらの文字毎のアウトライン
フォントデータを読出しても、和歌等の連綿ひらがな文
字列を生成し、これを画面上に表示することが困難であ
った。本発明は、前記従来技術が持っていた課題を解決
し、あたかも実際の毛筆で書かれたかのようにワードプ
ロセッサやコンピュータ等の画面上等に毛筆文字を書く
ことができる毛筆文字描画方法を提供することを目的と
する。
【0004】
【課題を解決するための手段】前記課題を解決するため
に、本発明のうちの請求項1に係る発明では、毛筆文字
描画方法において、描画対象となる毛筆文字の各画毎の
骨格線上の複数の骨格点Ii (但し、i=1,2,…,
n−1)におけるフォントデータとして、それらの各骨
格点Ii における2次元のXY座標で表現される骨格点
座標値xi ,yi 、筆の上げ下げで変化する筆圧値pw
i 、及び前記筆の通過時刻を示す時間ti の各データ
を、前記毛筆文字の筆順でかつ各画毎に予め記憶してお
く。そして、前記各画毎の骨格点Ii においては、記憶
された前記各筆圧値pwiから前記筆の各半径ri を求
めると共に、該筆の軌跡から各筆先の方向を示す角度θ
i を求め、これらの各半径ri 及び角度θi と記憶され
た前記各骨格点座標値xi ,yi とから、それらの各骨
格点Ii における筆触パターンBSi を算出する。前記
各画毎の各骨格点Ii ,Ii+1 間においては、これらの
各骨格点Ii,Ii+1 間に補完用の複数の骨格点Ii,j
(但し、i=1,2,…,n−1、j=1,2,…,
m)を設定し、これらの各骨格点Ii,j の直前の骨格点
i,j-1のフォントデータから現在の各骨格点Ii,j
骨格点座標値xi,j ,yi,j 、筆圧値pwi,j 、角度θ
i,j 及び時間ti,j を予測演算して前記筆触パターンB
i を補完する筆触パターンBSi,j を算出する。これ
らの算出結果に基づき、前記各画毎の骨格線に沿って前
記筆触パターンBSi 及びBSi,j を連続的に記憶手段
等の仮想空間上に描画していく。
【0005】請求項2の発明では、請求項1の毛筆文字
描画方法において、前記角度θi は、直前の角度
θi-1 、前記筆の進む方向、及び該筆の柔らかさから演
算によって求めるようにしている。請求項3の発明で
は、請求項1の毛筆文字描画方法において、前記半径r
i 及び角度θi は、予め記憶しておき、前記時間ti
データは、前記筆の移動速度vのデータに置き換えて、
前記各画毎の筆触パターンBSi 及びBSi,j を描画し
ていくようにしている。本発明では、このような構成を
採用したことにより、各画毎の骨格線に沿って、各骨格
点Ii における筆触パターンBSi が演算により求めら
れ、さらに各骨格点Ii ,Ii+1 間における補完用の複
数の骨格点Ii,j の筆触パターンBSi, j が演算により
求められ、これらの筆触パターンBSi ,BSi,j が連
続的に記憶手段等の仮想空間上に描画され、あたかも実
際の毛筆で書かれたかのように毛筆文字が表現される。
【0006】
【発明の実施の形態】実施形態の原理説明 本実施形態の毛筆文字描画方法では、毛筆における側筆
と呼ばれる筆法を表現するため、筆先の方向と筆の進む
方向の差と筆の柔らかさによって筆先を回転させる電子
筆の動的モデルを用いる。電子筆は筆順に従って、各画
の骨格点データとして与えられる骨格線上にある点を進
む。線の太さは筆圧値で変化する筆触パターンの直径で
決定される。筆先の回転は、筆の進む方向と現在の筆先
の方向と筆の柔らかさの関数として計算される。全ての
筆の位置が計算できるため、濃淡表現やかすれ表現が実
際のものにより近くできる。また、連綿表現のために骨
格点データの一部に連綿開始臨界点や連綿終了臨界点を
設け、この間をbezier関数等で補間連結することで、和
歌等の連綿ひらがな文字列の表示が行える。以下、図面
を参照しつつ、本実施形態の原理を説明する。毛筆で文
字を書くためには、文字の骨格が最も重要であり、文字
のサイズに合わせた線の太さが2番目に重要である。毛
筆では、筆先の方向が筆の進む方向に常に一致するとは
限らず、毛筆特有の側筆と呼ばれる筆法がある。このた
め、筆先の回転が3番目に重要である。さらに、墨のか
すれや運筆の表現のためには、時間的パラメータ(経過
時間や速度)が4番目に重要である。
【0007】図2(a),(b)は本発明の実施形態に
おける電子筆のモデルと筆触パターンを示す図である。
本実施形態で用いる電子筆1のモデルは、例えば、筆触
パターンBSを円と円錐を投影したものとして定義して
いる。この筆触パターンBSは、2次元のXY座標の座
標値x,yで位置が、電子筆1の半径rで該筆触パター
ンBSの大きさが、角度θで筆先の方向がそれぞれ決め
られる。図3(a)〜(c)は、図2の電子筆1を用い
た例えば漢字「大」の描画方法を示す図である。電子筆
1は、骨格点Iのデータとして与えられる文字の骨格線
2に従って進む。文字の太さは、筆圧値pwで変化する
直径によって決定される。この筆圧値pwは、筆圧値デ
ータとして記憶手段に記憶されている。電子筆モデルは
骨格点データに従って進みながら、筆圧値pwとその時
点で計算される筆先の回転角度θで筆触パターンBSを
描画していく。即ち、図3(a)〜(c)には、骨格点
Iのデータと筆圧値pwのデータとから、電子筆モデル
が筆先の回転角度θを計算しながら筆触パターンBSを
描画し、毛筆文字を出力する様子が示されている。図3
(a)では、骨格点Iのデータ(即ち、座標値x,y)
と、その骨格点Iでの筆圧値pw(黒丸の大きさ)とが
示されている。データは筆順に処理される。図3(b)
では、骨格点Iのデータと筆圧値pwとそれまでの電子
筆1の軌跡から該電子筆1の回転角度θを計算し、筆触
パターンBSを描画していることが示されている。この
図3(b)では、三角形と円で表わされた筆触パターン
BSの動きを見やすくするために、パターンの描画密度
を粗くして示されている。この最終の表示結果が、図3
(c)に示されている。
【0008】毛筆文字描画装置の構成 図4は、本発明の実施形態の毛筆文字描画方法に用いら
れる毛筆文字描画装置を示す概略の構成図である。この
毛筆文字描画装置は、ワードプロセッサやコンピュータ
等で構成されており、データ等の伝送を行うバス10を
有している。バス10には、装置全体をプログラム制御
するために中央処理装置(以下、「CPU」という)等
で構成された電子筆制御手段11と、筆触パターン等を
演算により求めるためにCPU等の演算手段で構成され
た電子筆エンジン12と、筆触パターンのデータを一時
記憶する描画バッファ13と、該描画バッファ13の出
力データに基づき筆の表裏表現や濃淡表現等を行うため
にCPU等で構成された筆描画手段14とが接続されて
いる。電子筆エンジン12には、起筆処理をしたか否か
を表わす起筆処理フラグsf、及び時刻をカウントする
カウンタct等が設けられている。これらの電子筆制御
手段11と電子筆エンジン12と筆描画手段14とは、
例えば、処理の高速化及びリアルタイム処理等を行うた
めにパラレル(並列)に動作するようになっている。
【0009】さらにバス10には、電子筆プログラムを
記憶するプログラム記憶手段15と、電子筆エンジンの
引数パッケージやフォントデータ等を記憶するために半
導体メモリ、ドラム、フロッピディスク等で構成された
データ記憶手段16と、データ等を入力するためにキー
ボードやマウス等で構成された入力手段17と、毛筆文
字等を表示するためにディスプレイで構成された画面表
示手段18と、毛筆文字等のデータを印刷するためのプ
リンタからなる印刷手段19とが接続されている。図5
(a)〜(d)は図4の電子筆エンジン12が用いるデ
ータ(即ち、引数パッケージRP)の内容を示す図であ
り、同図(a)は電子筆エンジン12の引数パッケージ
RPの内容、同図(b)は引数パッケージRP内の筆パ
ラメータBPの内容、同図(c)は筆パラメータBP内
の筆触パターンBSの内容、及び同図(d)は引数パッ
ケージRP内のフォントデータFDの内容をそれぞれ示
す図である。引数パッケージRPは、例えば、図4のデ
ータ記憶手段16に記憶される。
【0010】毛筆文字描画方法の全体説明 図1(a)〜(c)は図4の毛筆文字描画装置を用いた
本発明の実施形態を示す毛筆文字描画方法の説明図であ
り、同図(a)は図3(a)に示す毛筆文字「大」の骨
格線2の説明図、同図(b)は同図(a)の骨格線2上
の骨格点Iの拡大図、及び同図(c)は同図(b)の骨
格点I上の筆触パターンBSの説明図である。図1
(a)の毛筆文字「大」は、画数が「3」であり、各画
毎の骨格線2上に複数の骨格点Ii (但し、i=1,
2,…,n−1)が存在する。これらの複数の骨格点I
i は、フォントデータFDとして予めデータ記憶手段1
6に記憶されており、これらの複数の骨格点Ii を連結
することによって骨格線2が形成される。図1(b)に
示すように、各骨格点Ii ,Ii+1 間(例えば、I1
2 間)においては、補完用の複数の骨格点Ii,j (但
し、i=1,2,…,n−1、j=1,2,…,m)が
設定され、これらの各骨格点Ii,j のフォントデータF
Dが電子筆エンジン12を用いた演算により求められ、
これらの骨格点I1 ,I1,1 ,…上を筆触パターンBS
で描画するようになっている。図1(c)に示すよう
に、骨格点Ii 上の筆触パターンBSi (例えば、骨格
点I1 上の筆触パターンBS1 )は、電子筆1の先端の
座標a1 及び該電子筆1の根元の座標b1 ,d1 により
決定される。骨格点I1 から角度θo 方向に電子筆1が
進んだ補完用骨格点Ii,j (例えば、I1,1 )上の補完
用筆触パターンBSi,j (例えば、BS1,1 )は、電子
筆1の回転(角度θn )に基づく該電子筆1の先端の座
標a1, 1 及び根元の座標b1,1 ,d1,1 により決定され
る。
【0011】図6は、図4の毛筆文字描画装置を用いた
本発明の実施形態の毛筆文字描画方法の全体を示すフロ
ーチャートである。以下、この図6のフローチャートを
参照しつつ、毛筆文字描画方法の処理の全体を説明す
る。図4のプログラム記憶手段15に記憶された電子筆
プログラムに従い、電子筆制御手段11の制御によって
図6のフローチャートの処理が開始されると、ステップ
ST10において、電子筆エンジン12に必要なパラメ
ータを作成するために初期化処理が行われ、ステップS
T11へ進む。ステップST11では、電子筆エンジン
12によって起筆処理を行ったか否かの判断を行う。こ
の場合は処理の初めで起筆処理を行っていないので、ス
テップST20の起筆処理へ進む。ステップST20の
起筆処理では、図1(a)に示す毛筆文字「大」の第1
画における骨格点I1 とI2 のデータの準備等をし、ス
テップST30へ進む。ステップST30では、図1
(b),(c)に示すように、現在地(次の補完用骨格
点I1,1 )における筆圧値を計算すると共に、補完用筆
触パターンBS1, 1 の元になる標準筆触パターンBSを
算出し、ステップST40へ進む。ステップST40で
は、以降のラジアン処理のために方向差分の正規化を行
い、ステップST50へ進む。ステップST50では、
電子筆1の進む方向(即ち、筆の傾き角度θn )を算出
し、ステップST60へ進む。ステップST60では、
標準筆触パターンBSを角度θn だけ回転させる回転演
算を行い、補完用筆触パターンBS1,1 の先端の座標a
1,1 及び根元の座標b1,1 ,d1,1 を求め、これらのデ
ータをステップST70で描画バッファ13へ送って該
描画バッファ13に一時記憶し、ステップST80へ進
む。
【0012】ステップST80では、パラメータ内のロ
ーカル時刻tを更新し、次の補完用骨格点I1,2 のデー
タを準備し、処理ST11へ戻る。この場合は既に起筆
処理が行われているので、ステップST30〜ST60
によって次の補完用骨格点I1,2 の補完用筆触パターン
BS1,2 が演算により求められ、このデータがステップ
ST70で描画バッファ13に一時記憶される。このよ
うにして補完用骨格点I1,m までの補完用筆触パターン
BS1,m が演算により求められ、これらのデータがステ
ップST70で描画バッファ13に記憶されていく。パ
ラメータのローカル時刻tの値の増減と連動した時刻t
tが0から増加して処理を一旦終らせる時間(即ち、加
算時間数)atに達すると、描画バッファ13に記憶さ
れた筆触パターンBS1 ,BS1,1 〜BS1,m のデータ
が出力されて筆描画手段14へ送られ、画面表示手段1
8で表示される。骨格点I2 まで処理が進むと、ステッ
プST80で次の骨格点I3 のデータが準備され、前記
と同様にして骨格点I2 とI3 の間の補完用骨格点I
i,j の補完用筆触パターンBSi,j が演算により求めら
れ、ステップST70で描画バッファ13に記憶されて
いく。描画バッファ13に記憶されたデータは、筆描画
手段14へ送られ、画面表示手段18で表示される。次
に、図1(a)の毛筆文字「大」の第2画の処理へ移
り、ステップST11を介してステップST20で起筆
処理が行われ、該第2画における骨格点Ii ,Ii,j
筆触パターンBSi ,BSi,j のデータが描画バッファ
13に記憶され、この描画バッファ13に記憶されたデ
ータが筆描画手段14へ送られ、画面表示手段18で表
示される。同様に、毛筆文字「大」の第3画の描画処理
が行われ、これらの処理が終了すると、ステップST8
0で電子筆エンジン12がリセット(初期化処理)さ
れ、描画処理が終了する。
【0013】毛筆文字描画方法の詳細説明 図6の毛筆文字描画方法のフローチャートについて、図
面を参照しつつ、各処理(1)〜(8)を詳細に説明す
る。 (1) ステップST10の初期化処理 例えば、図1の毛筆文字「大」を描画する場合、ステッ
プST10の初期化処理では、図4の電子筆エンジン1
2に必要なパラメータを作成する。即ち、図5(a)の
引数パッケージRPにおけるフォントサイズfsや、図
5(b)の筆パラメータBPの筆の長さbl、筆の半径
br及び筆の柔らかさbsを、予め設定された初期化パ
ラメータを元に算出する。さらに、引数パッケージRP
における現在処理中の画数インデックスns、現在処理
中の骨格点インデックスnb、起筆処理をしたかどうか
の起筆処理フラグsf、パラメータのローカル時刻t、
及び処理を一旦終らせる時間atを0に初期化する。
【0014】(2) ステップST20の起筆処理 図7は図6の起筆処理ST20を示すフローチャート、
図8は図7の筆の方向の算出処理ST23を示すフロー
チャート、及び図9は図7の骨格点の情報生成処理ST
26を示すフローチャートである。図6のステップST
11において、電子筆エンジン12によって起筆処理を
行ったか否かの判定が行われ、起筆処理を行っていない
ときには図7の起筆処理ST20を行う。図7のステッ
プST21で起筆処理が開始されると、ステップST2
2において、毛筆文字「大」の第1画における現在の骨
格点I1 と次の骨格点I2 を決定し、これらの図5
(d)のフォントデータFDをデータ記憶手段16から
読出し、ステップST23へ進む。ステップST23で
は、読出された骨格点I1 及びI2 のフォントデータF
Dに基づき、図8のフローチャートに従い、筆の進む方
向を算出する。
【0015】図8のステップST23−1において筆の
方向の算出処理が開始されると、ステップST23−1
において、2点I1 ,I2 間の座標値x,yの差dx,
dyをそれぞれ求め、ステップST23−3へ進む。ス
テップST23−3において、座標値xの差dxが0か
否かを判定し、0でないときには、ステップST23−
4へ進み、差dxが正か否かを判定し、正でないときに
は、ステップST23−5へ進む。ステップST23−
5において、tan-1(dy/(−dx))の値が正か
否かを判定し、正でないときには、ステップST23−
6において、結果としてπ+tan-1(dy/(−d
x))を返し、ステップST23−7で筆の方向の算出
処理を終了する。ステップST23−3の判定の結果、
座標値xの差dxが0のときには、ステップST23−
8へ進み、座標値yの差dyが正か否かを判定する。差
dyが正でないときには、ステップST23−9におい
て、結果として90.0*π/180.0(但し、*は
乗算記号)を返す。ステップST23−8において差d
yが正のときには、ステップST23−10において、
結果として−90.0*π/180.0を返し、ステッ
プST23−7で筆の方向の算出処理を終了する。ステ
ップST23−4の判定処理において、座標値xの差d
xが正のときには、ステップST23−11において、
結果としてtan-1(dy/dx)を返し、ステップS
T23−7で処理を終了する。また、ステップST23
−5の判定処理において、tan-1(dy/(−d
x))の値が正のときには、ステップST23−12に
おいて、結果として−π+tan-1(dy/(−d
x))を返し、ステップST23−7で処理を終了す
る。これらのステップST23−7の処理が終了する
と、図7のステップST24へ進む。
【0016】ステップST24では、ステップST23
で算出した筆の方向の結果を、暫定即ち仮の筆の方向の
角度θf と直前の筆の方向の角度θo に設定し、ステッ
プST25へ進んで骨格点インデックスnbを1に設定
し、ステップST26へ進む。ステップST26では、
図9のフローチャートに従い、次のようにして骨格点I
1 ,I2 における情報を生成する。図9のステップST
26−1において、情報生成処理が開始されると、ステ
ップST26−2で、現在の骨格点I2 と直前の骨格点
1 を選定し、ステップST26−3へ進む。ステップ
ST26−3では、2つの骨格点I1 ,I2 について、
座標値x,yの差dx,dy、2点間の距離、開始時
刻、2点間の時間を計算し、ステップST26−4へ進
む。ステップST26−4では、引数パッケージRPの
速度変化値sp、筆圧変化値ps、開始筆圧値bp、x
方向速度変化値xs、y方向速度変化値ys、及び筆触
パターンBSの中心位置の座標値x,yを決定し、ステ
ップST26−5で情報生成処理を終了し、図7のステ
ップST27へ進んで起筆処理を終了する。
【0017】(3) ステップST30の現在地におけ
る筆圧値の計算と標準筆触パターンBSの算出処理 図10は、図6の筆圧値計算及び標準筆触パターン算出
処理ST30を示すフローチャートである。図10のス
テップST31において、筆圧値計算及び標準筆触パタ
ーン算出処理が開始されると、ステップST32へ進
み、現在の骨格点I1 の時刻btと次の補完用骨格点I
1,1 のローカル時刻tとの時刻差分(即ち、経過時間)
Δt(=t−bt)を算出し、ステップST33へ進
む。ステップST33では、時刻差分Δt、筆圧変化値
ps、及び骨格点I1 の筆圧値bpから、次式に従い補
完用骨格点I1,1 の筆圧値pwを計算し、ステップST
34へ進む。 pw=bp+(Δt*ps) ステップST34では、筆パラメータBPの筆の半径b
r、骨格点I1,1 の筆圧値pw、及び筆パラメータBP
の筆の長さblから、次式に従い、標準筆触パターンB
Sの筆の根元の半径rを算出する。 r=br*pw/bl さらに、引数パッケージRPのフォントサイズfs、骨
格点I1,1 の筆圧値pw、及び筆の根元の半径rから、
次式に従い、標準筆触パターンBSの筆の先端の座標
a、及び筆の根元の座標b,dを算出する。なお、この
標準筆触パターンBSは、筆の回転が加えられていない
パターン、つまり骨格点I1 と同一の筆先方向のパター
ンであるので、後のステップST60で回転演算が加え
られる。 標準筆触パターンBSの先端のx,y座標a=(−fs
*pw,0) 標準筆触パターンBSの根元のx,y座標b=(0,r
*fs) 標準筆触パターンBSの根元のx,y座標d=(0,−
r*fs) (4) ステップST40の方向差分の正規化処理 図11は、図6の方向差分の正規化処理ST40を示す
フローチャートである。図11のステップST41で、
方向差分の正規化処理が開始されると、ステップST4
2へ進む。ステップST42では、筆パラメータBPの
暫定の筆の傾き角度θf と一つ前の筆の傾き角度θo
に着目し、角度θf とθo の角度差Δθ(=θf
θo )がπ(=180°)より開いた場合に角度θo
補正するために、暫定の筆の向きの角度θf と直前の筆
の向きの角度θo との角度差Δθを求め、この角度差Δ
θがπを越えているか否かを判定し、越えていないとき
には、ステップST43で方向差分の正規化処理を終了
する。角度差Δθがπを越えているときには、角度θo
を補正するために、ステップST44で、直前の筆の向
きの角度θf が0を下回っているか否かを判定する。直
前の筆の向きの角度θoが0より大きい場合には、ステ
ップST45で2πを引き、小さい場合には、ステップ
ST46で2πを加え、ステップST43で正規化処理
を終了する。
【0018】(5) ステップST50の筆の方向算出
処理 図12は、図6の筆の方向算出処理ST50を示すフロ
ーチャートである。図12のステップST51で、筆の
方向算出処理が開始されると、筆の進む方向の筆の傾き
角度θn (=θo )を算出するために、ステップST5
2へ進む。ステップST52では、引数パッケージRP
の移動量sp、骨格点I1 と骨格点I1,1 の経過時間で
ある時刻差分Δt、標準筆触パターンBSの筆の根元の
半径r、及び筆パラメータBPの筆の柔らかさbsを用
い、次式に基づいて柔らかさsfを算出し、ステップS
T53へ進む。 sf=bs*ΔL/r2 但し、ΔL=sp*Δt ステップST53では、柔らかさsfが1.0を越える
か否かを判定し、柔らかさsfが1.0を越えないとき
には、そのままステップST54へ進み、越えるときに
は、ステップST55で柔らかさsfを1.0にし、ス
テップST54へ進む。ステップST54では、直前の
筆の傾き角度θo 、筆の方向の角度差Δθ、及び柔らか
さsfを用い、次式に基づいて筆の向きの角度θn を決
定し、ステップST56へ進む。 θn =θo +Δθ*sf ステップST56では、直前の筆の向きの角度θo に、
決定したばかりの筆の向きの角度θn を設定し、ステッ
プST57で筆の方向算出処理を終了する。
【0019】(6) ステップST60の筆触パターン
に回転演算を加える処理 図13は、図6の筆触パターンに回転演算を加える処理
ST60を示すフローチャートである。ステップST6
0の筆触パターンに回転演算を加える処理では、ステッ
プST50の筆の方向算出処理で得られた筆の方向の角
度θn を元に、ステップST30で求めた標準筆触パタ
ーンBSを筆の傾き角度θn の分だけ回転を加え、先に
設定した標準筆触パターンBSの中心位置の座標(骨格
点I1,1 の座標)を考慮して、最終的に出力できる補完
用筆触パターンBS1,1 を算出する。即ち、図13のス
テップST61で、回転演算を加える処理が開始される
と、ステップST62へ進む。ステップST62では、
引数パッケージRPの移動量のx成分xs、移動量のy
成分ys、時刻差分Δt、及び先に求めた標準筆触パタ
ーンBSの中心位置(即ち、補完用骨格点I1,1 の座標
値x,y)に基づき、次式に従い、そのx,y移動量a
x,ayを算出し、ステップST63へ進む。 ax=xs*Δt+(標準筆触パターンBSの中心位置
の座標値x) ay=ys*Δt+(標準筆触パターンBSの中心位置
の座標値y) ステップST63では、回転を加えるための予備計算の
ため、x方向成分cos(s)及びy方向成分sin
(s)を次式より求め、ステップST64へ進む。
【0020】 cos(s)=cos(θn ) sin(s)=sin(θn ) ステップST64では、演算用の座標を変位させ、筆の
回転のx,y方向成分を描画用の座標に加えるために、
標準筆触パターンBSの筆の頂点座標a,b,dそれぞ
れにつき、次式に従い回転を加え、最終的に出力できる
補完用骨格点I1,1 上の補完用筆触パターンBS1,1
データを算出し、ステップST65で処理を終了する。 座標値x1,1 =ax−((標準筆触パターンBSの座標
値x)*cos(s)+(標準筆触パターンBSの座標
値y)*sin(s)) 座標値y1,1 ay−(−(標準筆触パターンBSの座標
値x)*sin(s)+(標準筆触パターンBSの座標
値y)*cos(s)) (7) ステップST70の描画バッファに送る処理 ステップST60で得られた補完用筆触パターンBS
1,1 のデータは、描画バッファ13へ送って記憶する。 (8) ステップST80のパラメータ内の時刻更新と
次データ準備処理 ステップST80の処理では、パラメータのローカル時
刻tに1を加え、この時刻t+1が現在の骨格点I
2 (これは引数パッケージRPの現在処理中の画数イン
デックスns=1と、現在処理中の骨格点インデックス
nb=1で決定できる)の時刻より大きいか否かを判定
し、小さいときには、ステップST11へ戻り、ステッ
プST30〜ST60の処理を行い、次の補完用骨格点
1,2 の補完用筆触パターンBS1,2 を求め、このデー
タを描画バッファ13に記憶する。以降同様に、補完用
骨格点I1,m までの補完用筆触パターンBS1,m を求
め、これらのデータを描画バッファ13に記憶してい
く。パラメータのローカル時刻tの値の増減と連動した
時刻ttが0から増加して処理を一旦終らせる時間at
に達すると、描画バッファ13に記憶された筆触パター
ンBS1 ,BS1,1 ,…のデータを出力して筆描画手段
14へ送り、この筆描画手段14によって画面表示手段
18で表示する。
【0021】一方、前記のパラメータのローカル時刻t
+1が現在の骨格点I2 の時刻より大きいときには、現
在処理中の骨格点インデックスnbに1を加え、この骨
格点インデックスnb+1が骨格点データの個数を越え
ているか否かを判定し、越えていない場合には、次のデ
ータの準備のために、次の骨格点I3 のデータを決定
し、仮の筆の傾き角度θf に、その2つの骨格点I2
3 のデータから求めた角度を設定し、2点I2 ,I3
間の距離と時間差から速度を求め、さらに、筆圧値の変
化量、x方向の移動量とy方向の移動量、及び筆の現在
位置等を求め、ステップST11へ戻る。ステップST
11へ戻ると、ステップST30〜ST80の処理を繰
返すことにより、前記と同様にして骨格点I2 とI3
の補完用骨格点を求め、この補完用骨格点上の補完用筆
触パターンのデータを算出していく。このような処理
を、毛筆文字「大」の第1画の終わりまで続ける。前記
骨格点インデックスnbに1が加えられ、この骨格点イ
ンデックスnb+1が骨格点データの個数を越えた場合
(即ち、第1画の処理が終了した場合)、起筆処理を行
ったかどうかの起筆処理フラグsfを「行っていない」
にし、骨格点インデックスnb及びローカル時刻tをそ
れぞれ0にする。さらに、画数インデックスnsに1を
加え、ステップST11へ戻る。ステップST11で
は、第2画の起筆処理が行われていないので、この第2
画の起筆処理をステップST20で行い、第1画と同様
の処理を行う。画数インデックスnsが毛筆文字「大」
の画数3を越えた場合、ステップST80で電子筆エン
ジン12をリセットし、毛筆文字「大」の描画処理を終
了する。
【0022】実施形態の利点 本実施形態では、次の(i)〜(vii)のような利点があ
る。 (i) 筆順を含めて毛筆での運筆と描画結果との関係
が観測できる。 (ii) フォントデータFDのデータ数を少なくするこ
とによって、毛筆データの圧縮ができる。これにより、
演算処理量等を削減できる。 (iii) 図14(a)〜(d)は、本発明の実施形態に
おける漢字「永」の表示例を示す図である。図14
(a)は濃い墨で書いた文字を示し、同図(b)は毛筆
での運筆がわかるように筆触パターンを示している。図
14(c)は薄い墨で書いた場合で、毛筆の毛の動きが
容易にわかるように筆先のいくつかの毛をより濃くした
ものを示している。また、図14(d)は墨の滲みを表
現したものである。本実施形態では、筆触パターンBS
1 ,…での全ての筆の位置が計算できるため、図14
(a)〜(d)に示すように、筆の裏表の表現や濃淡表
現、あるいは墨のかすれ表現や滲み表現等をより現実的
に描画できる。
【0023】(iv) 線の太さは筆圧値で変化する筆触
パターンBS1 ,…の直径で決定されるので、文字の太
さを任意に変えて表示することができる。そのため、文
字体の変形が容易である。 (v) 図15は、本発明の実施形態における和歌等の
連綿ひらがな文字列の表示例を示す図である。和歌等の
連綿ひらがな文字列を表示する場合、文字の連結部分2
0において骨格点データの一部に連綿開始臨界点や連綿
終了臨界点を設け、この間をbezier関数等で計算する
か、あるいは予め計算結果をデータ記憶手段16等に記
憶しておき、この文字の連結部分20を補間連結するこ
とで、和歌等の連綿ひらがな文字列を容易に表示でき
る。 (vi) 例えば、個人の筆跡等を文字フォントとして登
録する場合、その筆跡等をフォントエディタ(Font-Edi
tor )で解析し、骨格線上の骨格点データを求め、これ
らをフォントデータFDとしてデータ記憶手段16等に
記憶すればよい。このように、個人の筆跡等を文字フォ
ントとして登録しておけば、これを画面表示手段18で
表示したり、あるいは個人の筆跡等の真偽を判定する等
に応用できる。 (vii) 本実施形態の毛筆文字描画方法では、例えば、
毛筆文字の学習ソフトウェア、(古典)毛筆文字の鑑賞
ソフトウェア、仮想平面での毛筆文字の美術作品の作成
ソフトウェア、毛筆ワードプロセッサソフトウェア(既
存のワードプロセッサソフトウェアの出力文字フォント
としても利用可能)等、種々の応用が可能である。
【0024】変形例 本発明は、上記実施形態に限定されず、種々の変形が可
能である。この変形例としては、例えば、次の(A)〜
(C)のようなものがある。 (A) 図16(a),(b)は、本発明における筆触
パターンの他の形状の例を示す図である。本発明の筆触
パターンは、図2(b)のような形状に限定されず、例
えば、図16(a)のような筆先が台形のもの、あるい
は図16(b)のような筆先が複数に割れているもの等
といった、種々の形状のものが適用できる。 (B) 各骨格点Ii において、筆触パターンBSi
半径r及び筆先の方向の角度θi を演算によって求める
ようにしたが、これらを予めデータ記憶手段16等に記
憶しておいてもよい。このようにすれば、演算量を削減
でき、描画方法の処理速度を高速化できる。また、フォ
ントデータFDにおける各画毎の通過時刻tのデータ
は、筆の移動速度vのデータに置き換えても、上記実施
形態とほぼ同様の作用効果が得られる。 (C) 図6に示す毛筆文字描画方法の各処理は、図示
したフローチャート以外の処理内容に変更してもよい。
また、本発明の毛筆文字描画方法に用いられる毛筆文字
描画装置は、図4に示す構成に限定されず、例えば、描
画バッファ13を他の記憶手段で構成する等、種々の構
成に変更することができる。
【0025】
【発明の効果】以上詳細に説明したように、本発明によ
れば、各画毎の骨格点Ii においては筆触パターンBS
i を算出し、各画毎の骨格点Ii ,Ii+1 間においては
前記筆触パターンBSi を補完する筆触パターンBS
i,j を算出し、前記筆触パターンBSi 及びBSi,j
連続的に記憶手段等の仮想空間上に描画するようにした
ので、筆順も含めて毛筆での運筆と描画結果との関係を
表示できる。フォントデータ数を少なくすることによ
り、毛筆データの圧縮ができ、毛筆文字描画処理の簡単
化と高速化が図れる。さらに、毛筆パターンでの全ての
毛筆の位置を計算できるため、筆の裏表の表現や濃淡表
現、あるいは墨のかすれ表現や滲み表現等をより現実的
に描画できる。しかも、線の太さは筆圧値pwi ,pw
i,j で変化する筆触パターンBSi ,BSi,j の直径で
決定されるため、該筆触パターンBSi,BSi,j の直
径を変えることによって文字の太さを任意に変えること
ができ、文字体の変形が容易である。
【図面の簡単な説明】
【図1】本発明の実施形態を示す毛筆文字描画方法の説
明図である。
【図2】本発明の実施形態における電子筆のモデルと筆
触パターンを示す図である。
【図3】図2の電子筆1を用いた漢字「大」の描画方法
を示す図である。
【図4】本発明の実施形態で用いられる毛筆文字描画装
置の概略の構成図である。
【図5】図4の電子筆エンジン12の引数パッケージR
Pの内容を示す図である。
【図6】本発明の実施形態の毛筆文字描画方法の全体を
示すフローチャートである。
【図7】図6の起筆処理ST20を示すフローチャート
である。
【図8】図7の筆の方向の算出処理ST23を示すフロ
ーチャートである。
【図9】図7の骨格点の情報生成処理ST26を示すフ
ローチャートである。
【図10】図6の筆圧値計算及び標準筆触パターン算出
処理ST30を示すフローチャートである。
【図11】図6の方向差分の正規化処理ST40を示す
フローチャートである。
【図12】図6の筆の方向算出処理ST50を示すフロ
ーチャートである。
【図13】図6の筆触パターンに回転演算を加える処理
ST60を示すフローチャートである。
【図14】本発明の実施形態における漢字「永」の表示
例を示す図である。
【図15】本発明の実施形態における連綿ひらがな文字
列の表示例を示す図である。
【図16】本発明における筆触パターンの他の形状の例
を示す図である。
【符号の説明】
1 電子筆 2 骨格線 11 電子筆制御手段 12 電子筆エンジン 13 描画バッファ 14 筆描画手段 15 プログラム記憶手段 16 データ記憶手段 17 入力手段 18 画面表示手段 19 印刷手段 20 文字の連結部分 BS,BSi 筆触パターン BSi,j 補完用筆触パターン Ii 骨格点 Ii,j 補完用骨格点 ST10 初期化処理 ST20 起筆処理 ST30 筆圧値計算及び標準筆触パターン
算出処理 ST40 方向差分の正規化処理 ST50 筆の方向算出処理 ST60 筆触パターンに回転演算を加える
処理 ST70 描画バッファに送る処理 ST80 パラメータ内の時刻更新及び次デ
ータ準備処理
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成11年2月8日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 毛筆文字描画方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、毛筆を模擬した電
子筆モデルを用いて漢字や連綿ひらがな文字等をワード
プロセッサやコンピュータ等の画面上等に描画する毛筆
文字描画方法に関するものである。
【0002】
【従来の技術】従来、例えば、コンピュータを用いて毛
筆文字や毛筆ひらがなを画面上に描画する場合、描画対
象となる毛筆文字のアウトラインフォントデータを予め
半導体メモリ等の記憶手段に記憶しておき、該アウトラ
インフォントデータを設定された速度で筆順に従って順
次読出し、画面上に表示している。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
毛筆文字描画方法では、予め記憶手段に記憶されたアウ
トラインフォントデータを筆順に従って読出し、画面上
に表示するようになっているので、記憶手段の記憶容量
の制約を受けて記憶できるアウトラインフォントデータ
数に限りがあることから、実際の毛筆で書くような、側
筆と呼ばれる筆法を表現することが困難であった。ま
た、記憶手段には文字毎のアウトラインフォントデータ
が記憶されているので、これらの文字毎のアウトライン
フォントデータを読出しても、和歌等の連綿ひらがな文
字列を生成し、これを画面上に表示することが困難であ
った。本発明は、前記従来技術が持っていた課題を解決
し、あたかも実際の毛筆で書かれたかのようにワードプ
ロセッサやコンピュータ等の画面上等に毛筆文字を書く
ことができる毛筆文字描画方法を提供することを目的と
する。
【0004】
【課題を解決するための手段】前記課題を解決するため
に、本発明のうちの請求項1に係る発明では、毛筆文字
描画方法において、毛筆が被描画面に接触するときに描
かれる筆触パターンBSを、半径rの円からなる筆の根
元と、該筆の根元から筆先方向へ延びる筆先部分とで表
し、2次元のXY座標において前記筆の根元の中心を通
るX軸を基準にして、該筆の根元から前記筆先方向へ延
びる中心線の角度を筆先方向の角度θとし、かつ該筆の
根元の中心が移動する方向の角度を筆の進む方向の角度
θ f とする。描画対象となる毛筆文字の各画毎の骨格線
上の複数の骨格点I i (但し、i=1,2,…,n−
1)におけるフォントデータとして、それらの骨格点I
i における前記2次元のXY座標で表現される骨格点座
標値x i ,y i 、前記毛筆の上げ下げで変化する筆圧値
pw i 、及び前記筆触パターンBSの通過時刻を示す時
間t i の各データを、前記毛筆文字の筆順でかつ各画毎
に予め記憶しておく。前記各画毎の骨格点I i において
は、記憶された前記各筆圧値pw i から前記筆触パター
ンBSの根元の各半径r i を求めると共に、筆の進む距
離に対する筆先の回転の程度を表す筆先の回転係数sf
i を、下記の(1)式から該各骨格点I i 毎に求め、さ
らにその筆先の回転係数sf i を用いて下記の(2)式
から各筆先方向の角度θ i を求め、これらの各半径r i
及び角度θ i と記憶された前記各骨格点座標値x i ,y
i とから、それらの各骨格点I i における筆触パターン
BS i を算出する。前記各画毎の各骨格点I i ,I i+1
間においては、これらの各骨格点I i ,I i+1 間に補完
用の複数の骨格点I i,j (但し、i=1,2,…,n−
1、j=1,2,…,m)を設定し、該骨格点I i ,I
i+1 のフォントデータから該各骨格点I i,j の骨格点座
標値x i,j ,y i,j 、筆圧値pw i,j 、及び通過時刻を
示す時間t i,j の各データを求め、前記筆触パターンB
i の算出方法と同様の方法によって各根元の半径r
i,j 、筆先の回転係数sf i,j 、及び筆先方向の角度 i,
j を求め、これらの各半径r i,j 及び角度θ i,j と該各
骨格点座標値x i,j ,y i,j とから、それらの各骨格点
i,j における補完用の筆触パターンBS i,j を算出す
る。そして、前記各画毎の骨格線に沿って前記筆触パタ
ーンBS i 及びBS i,j を連続的に仮想空間上に描画し
ていく。 sf i =bs*ΔL/r i 2 ・・・(1) 但し、 *;乗算記号 bs;筆の柔らかさの程度を表す筆の柔らかさの係数で
あって、予め設定されている。 ΔL;筆の移動距離(=sp*Δt) sp;筆の単位時間当りの移動量 Δt;一つ前の骨格点I i-1 と現在の骨格点I i の通過
時刻差(=t i −t i-1 θ i =θ i-1 +(θ f −θ i )*sf i ・・・(2) 但し、 θ i ;求めようとする現在の筆先方向の角度 θ i-1 ;一つ前の筆先方向の角度(なお、最初の角度は
予め設定されている) θ f ;骨格点I i-1 からI i への筆の進む方向の角度
(これは、骨格点座標値x i-1 ,y i-1 とx i ,y i
から求められる)
【0005】求項の発明では、請求項1の毛筆文字
描画方法において、前記半径ri 及び角度θi は、予め
記憶しておき、前記時間ti のデータは、前記筆の移動
速度vのデータに置き換えて、前記各画毎の筆触パター
ンBSi 及びBSi,j を描画していくようにしている。
本発明では、このような構成を採用したことにより、各
画毎の骨格線に沿って、各骨格点Ii における筆触パタ
ーンBSi が演算により求められ、さらに各骨格点
i ,Ii+1 間における補完用の複数の骨格点Ii,j
筆触パターンBSi, j が演算により求められ、これらの
筆触パターンBSi ,BSi,j が連続的に記憶手段等の
仮想空間上に描画され、あたかも実際の毛筆で書かれた
かのように毛筆文字が表現される。
【0006】
【発明の実施の形態】実施形態の原理説明 本実施形態の毛筆文字描画方法では、毛筆における側筆
と呼ばれる筆法を表現するため、筆先の方向と筆の進む
方向の差と筆の柔らかさによって筆先を回転させる電子
筆の動的モデルを用いる。電子筆は筆順に従って、各画
の骨格点データとして与えられる骨格線上にある点を進
む。線の太さは筆圧値で変化する筆触パターンの直径で
決定される。筆先の回転は、筆の進む方向と現在の筆先
の方向と筆の柔らかさの関数として計算される。全ての
筆の位置が計算できるため、濃淡表現やかすれ表現が実
際のものにより近くできる。また、連綿表現のために骨
格点データの一部に連綿開始臨界点や連綿終了臨界点を
設け、この間をbezier関数等で補間連結することで、和
歌等の連綿ひらがな文字列の表示が行える。以下、図面
を参照しつつ、本実施形態の原理を説明する。毛筆で文
字を書くためには、文字の骨格が最も重要であり、文字
のサイズに合わせた線の太さが2番目に重要である。毛
筆では、筆先の方向が筆の進む方向に常に一致するとは
限らず、毛筆特有の側筆と呼ばれる筆法がある。このた
め、筆先の回転が3番目に重要である。さらに、墨のか
すれや運筆の表現のためには、時間的パラメータ(経過
時間や速度)が4番目に重要である。
【0007】図2(a),(b)は本発明の実施形態に
おける電子筆のモデルと筆触パターンを示す図である。
本実施形態で用いる電子筆1のモデルは、例えば、該電
子筆1の毛筆部1aで描かれる筆触パターンBS i (但
し、i=1,2,…,n−1)を円と円錐を投影したも
のとして定義している。この筆触パターンBS i は、2
次元のXY座標の座標値 i ,y i 根元の円の中心
置が、根元の円の半径 i で該筆触パターンBS i の大
きさが、角度θ i で筆先の方向がそれぞれ決められる。
筆先方向の角度θ i は、筆触パターンBS i の根元の円
の中心座標(x i ,y i )を通るX軸の正方向と、該筆
触パターンBS i の中心座標(x i ,y i )から円錐の
筆先先端へ向う中心線1bとの、なす角度である。図3
(a)〜(c)は、図2の電子筆1を用いた例えば漢字
「大」の描画方法を示す図である。電子筆1は、骨格点
i (但し、i=1,2,…,n−1)のデータとして
与えられる文字の骨格線2に従って進む。文字の太さ
は、筆圧値pw i で変化する筆触パターンBS i の根元
の円の直径2r i によって決定される。この筆圧値pw
i は、筆圧値データとして記憶手段に記憶されている。
電子筆モデルは骨格点データに従って進みながら、筆圧
pw i とその時点で計算される筆先方向の角度θ i
筆触パターンBS i を描画していく。即ち、図3(a)
〜(c)には、骨格点 i のデータと筆圧値pw i のデ
ータとから、電子筆モデルが筆先方向の角度θ i を計算
(但し、入筆時の最初の角度θ i は、予め設定されてい
る)しながら筆触パターンBS i を描画し、毛筆文字を
出力する様子が示されている。図3(a)では、骨格点
i のデータ(即ち、座標値 i ,y i )と、その骨格
i での筆圧値pw i (黒丸の大きさ)とが示されて
いる。データは筆順に処理される。図3(b)では、骨
格点 i のデータと筆圧値pw i とそれまでの電子筆1
の軌跡から該電子筆1の筆先方向の角度θ i を計算
し、筆触パターンBS i を描画していることが示されて
いる。この図3(b)では、三角形と円で表わされた筆
触パターンBS i の動きを見やすくするために、パター
ンの描画密度を粗くして示されている。この最終の表示
結果が、図3(c)に示されている。
【0008】毛筆文字描画装置の構成 図4は、本発明の実施形態の毛筆文字描画方法に用いら
れる毛筆文字描画装置を示す概略の構成図である。この
毛筆文字描画装置は、ワードプロセッサやコンピュータ
等で構成されており、データ等の伝送を行うバス10を
有している。バス10には、装置全体をプログラム制御
するために中央処理装置(以下、「CPU」という)等
で構成された電子筆制御手段11と、筆触パターン等を
演算により求めるためにCPU等の演算手段で構成され
た電子筆エンジン12と、筆触パターンのデータを一時
記憶する描画バッファ13と、該描画バッファ13の出
力データに基づき筆の表裏表現や濃淡表現等を行うため
にCPU等で構成された筆描画手段14とが接続されて
いる。電子筆エンジン12には、起筆処理をしたか否か
を表わす起筆処理フラグsf、及び時刻をカウントする
カウンタct等が設けられている。これらの電子筆制御
手段11と電子筆エンジン12と筆描画手段14とは、
例えば、処理の高速化及びリアルタイム処理等を行うた
めにパラレル(並列)に動作するようになっている。
【0009】さらにバス10には、電子筆プログラムを
記憶するプログラム記憶手段15と、電子筆エンジンの
引数パッケージやフォントデータ等を記憶するために半
導体メモリ、ドラム、フロッピディスク等で構成された
データ記憶手段16と、データ等を入力するためにキー
ボードやマウス等で構成された入力手段17と、毛筆文
字等を表示するためにディスプレイで構成された画面表
示手段18と、毛筆文字等のデータを印刷するためのプ
リンタからなる印刷手段19とが接続されている。図5
(a)〜(d)は図4の電子筆エンジン12が用いるデ
ータ(即ち、引数パッケージRP)の内容を示す図であ
り、同図(a)は電子筆エンジン12の引数パッケージ
RPの内容、同図(b)は引数パッケージRP内の筆パ
ラメータBPの内容、同図(c)は筆パラメータBP内
の筆触パターンBSの内容、及び同図(d)は引数パッ
ケージRP内のフォントデータFDの内容をそれぞれ示
す図である。引数パッケージRPは、例えば、図4のデ
ータ記憶手段16に記憶される。
【0010】毛筆文字描画方法の全体説明 図1(a)〜(c)は図4の毛筆文字描画装置を用いた
本発明の実施形態を示す毛筆文字描画方法の説明図であ
り、同図(a)は図3(a)に示す毛筆文字「大」の骨
格線2の説明図、同図(b)は同図(a)の骨格線2上
の骨格点 i ,I i,j の拡大図、及び同図(c)は同図
(b)の骨格点 1 ,I 1,1 上の筆触パターンBS 1
BS 1,1 の説明図である。図1(a)の毛筆文字「大」
は、画数が「3」であり、各画毎の骨格線2上に複数の
骨格点Ii (但し、i=1,2,…,n−1)が存在す
る。これらの複数の骨格点Ii は、フォントデータFD
として予めデータ記憶手段16に記憶されており、これ
らの複数の骨格点Ii を連結することによって骨格線2
が形成される。図1(b)に示すように、各骨格点
i ,Ii+1 間(例えば、I1 ,I2 間)においては、
補完用の複数の骨格点Ii,j (但し、i=1,2,…,
n−1、j=1,2,…,m)が設定され、これらの各
骨格点Ii,j のフォントデータFDが電子筆エンジン1
2を用いた演算(例えば、各骨格点I 1 ,I i+1 のフォ
ントデータFDを用いた按分計算等)により求められ、
これらの骨格点I1 ,I1, 1 ,…上を筆触パターンBS
1 ,BS 1,1, で描画するようになっている。図1
(c)に示すように、電子筆1で描かれる骨格点Ii
の筆触パターンBSi (例えば、骨格点I1 上の筆触パ
ターンBS1 )は、の先端の座標a1 及びの根元の
座標b1 ,d1 により決定される。骨格点I1 から角度
θ f 方向(但し、角度θ f は、骨格点I 1 を通るX軸の
正方向を基準とする筆の進む方向の角度である)に電子
筆1が進んだ補完用骨格点Ii,j (例えば、I1,1 )上
の補完用筆触パターンBSi,j (例えば、BS1,1
は、電子筆1の筆先方向の角度θ 1,1 (但し、角度θ
1,1 は、骨格点I 1,1 を通るX軸の正方向と、骨格点I
1,1 から筆の先端の座標a 1,1 へ向う方向との、なす角
度である)に基づくの先端の座標a1,1 及び根元の座
標b1,1 ,d1,1 により決定される。
【0011】図6は、図4の毛筆文字描画装置を用いた
本発明の実施形態の毛筆文字描画方法の全体を示すフロ
ーチャートである。以下、この図6のフローチャートを
参照しつつ、毛筆文字描画方法の処理の全体を説明す
る。図4のプログラム記憶手段15に記憶された電子筆
プログラムに従い、電子筆制御手段11の制御によって
図6のフローチャートの処理が開始されると、ステップ
ST10において、電子筆エンジン12に必要なパラメ
ータを作成するために初期化処理が行われ、ステップS
T11へ進む。ステップST11では、電子筆エンジン
12によって起筆処理を行ったか否かの判断を行う。こ
の場合は処理の初めで起筆処理を行っていないので、ス
テップST20の起筆処理へ進む。ステップST20の
起筆処理では、図1(a)に示す毛筆文字「大」の第1
画における骨格点I1 とI2 のデータの準備等をし、
在地(次の補完用骨格点I 1,1 )への電子筆1の進む方
向の角度θ f を算出する等して、ステップST30へ進
む。ステップST30では、図1(b),(c)に示す
ように、例えば、予め設定された骨格点I 1 とI 2 の筆
圧値pw 1 とpw 2 の差分を求めてこの差分を(m+
1)で按分する等して、補完用骨格点I1,1 筆圧値
1,1 を計算すると共に、補完用筆触パターンBS1,1
の元になる標準筆触パターンBS(これは、骨格点I 1
上の筆触パターンBS 1 における予め設定された筆先方
向の角度θ 1 と同一角度のパターンである)を筆圧値p
1,1 等を用いて算出し、ステップST40へ進む。ス
テップST40では、以降のラジアン処理のために方向
差分の正規化を行い、ステップST50へ進む。ステッ
プST50では、補完用筆触パターンBS 1,1 の筆先方
向の角度θ 1,1 を算出し、ステップST60へ進む。ス
テップST60では、標準筆触パターンBSを角度(θ
1 −θ 1,1 だけ回転させる回転演算を行い、補完用筆
触パターンBS1,1 の先端の座標a1,1 及び根元の座標
1,1 ,d1,1 を求め、これらのデータをステップST
70で描画バッファ13へ送って該描画バッファ13に
一時記憶し、ステップST80へ進む。
【0012】ステップST80では、パラメータ内のロ
ーカル時刻tを更新し、次の補完用骨格点I1,2 のデー
タを準備し、処理ST11へ戻る。この場合は既に起筆
処理が行われているので、ステップST30〜ST60
によって次の補完用骨格点I 1,2 の補完用筆触パターン
BS1,2 が演算により求められ、このデータがステップ
ST70で描画バッファ13に一時記憶される。このよ
うにして補完用骨格点I1,m までの補完用筆触パターン
BS1,m が演算により求められ、これらのデータがステ
ップST70で描画バッファ13に記憶されていく。パ
ラメータのローカル時刻tの値の増減と連動した時刻t
tが0から増加して処理を一旦終らせる時間(即ち、加
算時間数)atに達すると、描画バッファ13に記憶さ
れた筆触パターンBS1 ,BS1,1 〜BS1,m のデータ
が出力されて筆描画手段14へ送られ、画面表示手段1
8で表示される。骨格点I2 まで処理が進むと、ステッ
プST80で次の骨格点I3 のデータが準備され、前記
と同様にして骨格点I2 とI3 の間の補完用骨格点I
i,j の補完用筆触パターンBSi,j が演算により求めら
れ、ステップST70で描画バッファ13に記憶されて
いく。描画バッファ13に記憶されたデータは、筆描画
手段14へ送られ、画面表示手段18で表示される。次
に、図1(a)の毛筆文字「大」の第2画の処理へ移
り、ステップST11を介してステップST20で起筆
処理が行われ、該第2画における骨格点Ii ,Ii,j
筆触パターンBSi ,BSi,j のデータが描画バッファ
13に記憶され、この描画バッファ13に記憶されたデ
ータが筆描画手段14へ送られ、画面表示手段18で表
示される。同様に、毛筆文字「大」の第3画の描画処理
が行われ、これらの処理が終了すると、ステップST8
0で電子筆エンジン12がリセット(初期化処理)さ
れ、描画処理が終了する。
【0013】毛筆文字描画方法の詳細説明 図6の毛筆文字描画方法のフローチャートについて、図
面を参照しつつ、各処理(1)〜(8)を詳細に説明す
る。 (1) ステップST10の初期化処理 例えば、図1の毛筆文字「大」を描画する場合、ステッ
プST10の初期化処理では、図4の電子筆エンジン1
2に必要なパラメータを作成する。即ち、図5(a)の
引数パッケージRPにおけるフォントサイズfsや、図
5(b)の筆パラメータBPにおける電子筆1の毛筆部
1aの筆の長さbl、毛筆部1aの最大断面の半径br
及び筆の柔らかさの係数bsを、予め設定された初期化
パラメータを元に算出する。さらに、引数パッケージR
Pにおける現在処理中の画数インデックスns、現在処
理中の骨格点インデックスnb、起筆処理をしたかどう
かの起筆処理フラグsf、パラメータのローカル時刻
t、及び処理を一旦終らせる時間atを0に初期化す
る。
【0014】(2) ステップST20の起筆処理 図7は図6の起筆処理ST20を示すフローチャート、
図8は図7の筆の進む方向の算出処理ST23を示すフ
ローチャート、及び図9は図7の骨格点の情報生成処理
ST26を示すフローチャートである。図6のステップ
ST11において、電子筆エンジン12によって起筆処
理を行ったか否かの判定が行われ、起筆処理を行ってい
ないときには図7の起筆処理ST20を行う。図7のス
テップST21で起筆処理が開始されると、ステップS
T22において、毛筆文字「大」の第1画における現在
の骨格点I1 と次の骨格点I2 を決定し、これらの図5
(d)のフォントデータFDをデータ記憶手段16から
読出し、ステップST23へ進む。ステップST23で
は、読出された骨格点I1 及びI2 のフォントデータF
Dに基づき、図8のフローチャートに従い、筆の進む方
向を算出する。
【0015】図8のステップST23−1において筆の
進む方向の算出処理が開始されると、ステップST23
−1において、2点I1 ,I2 間の座標値x,yの差d
x,dyをそれぞれ求め、ステップST23−3へ進
む。ステップST23−3において、座標値xの差dx
が0か否かを判定し、0でないときには、ステップST
23−4へ進み、差dxが正か否かを判定し、正でない
ときには、ステップST23−5へ進む。ステップST
23−5において、tan-1(dy/(−dx))の値
が正か否かを判定し、正でないときには、ステップST
23−6において、結果としてπ+tan-1(dy/
(−dx))を返し、ステップST23−7で筆の進む
方向の角度θ f 算出処理を終了する。ステップST2
3−3の判定の結果、座標値xの差dxが0のときに
は、ステップST23−8へ進み、座標値yの差dyが
正か否かを判定する。差dyが正でないときには、ステ
ップST23−9において、結果として90.0*π/
180.0(但し、*は乗算記号)を返す。ステップS
T23−8において差dyが正のときには、ステップS
T23−10において、結果として−90.0*π/1
80.0を返し、ステップST23−7で筆の進む方向
の算出処理を終了する。ステップST23−4の判定処
理において、座標値xの差dxが正のときには、ステッ
プST23−11において、結果としてtan-1(dy
/dx)を返し、ステップST23−7で処理を終了す
る。また、ステップST23−5の判定処理において、
tan-1(dy/(−dx))の値が正のときには、ス
テップST23−12において、結果として−π+ta
-1(dy/(−dx))を返し、ステップST23−
7で処理を終了する。これらのステップST23−7の
処理が終了すると、図7のステップST24へ進む。
【0016】ステップST24では、ステップST23
で算出した筆の進む方向の角度θ f を、骨格点I 1 から
1,1 への仮の筆の進む方向の角度として設定し、ステ
ップST25へ進んで骨格点インデックスnbを1に設
定し、ステップST26へ進む。ステップST26で
は、図9のフローチャートに従い、次のようにして骨格
点I1 1,1 における情報を生成する。図9のステッ
プST26−1において、情報生成処理が開始される
と、ステップST26−2で、現在の骨格点 1,1 と直
前の骨格点I1 を選定し、ステップST26−3へ進
む。ステップST26−3では、2つの骨格点I1
1,1 について、座標値x,yの差dx,dy、2点間の
距離、開始時刻、2点間の時間を計算し、ステップST
26−4へ進む。ステップST26−4では、引数パッ
ケージRPの速度変化値sp、筆圧変化値ps、開始筆
圧値bp、x方向速度変化値xs、y方向速度変化値y
s、及び筆触パターンBSの根元の中心位置の座標値
x,yを決定し、ステップST26−5で情報生成処理
を終了し、図7のステップST27へ進んで起筆処理を
終了する。
【0017】(3) ステップST30の現在地におけ
る筆圧値の計算と標準筆触パターンBSの算出処理 図10は、図6の筆圧値計算及び標準筆触パターン算出
処理ST30を示すフローチャートである。図10のス
テップST31において、筆圧値計算及び標準筆触パタ
ーン算出処理が開始されると、ステップST32へ進
み、現在の骨格点I1 の時刻bt 1 と次の補完用骨格点
1,1 のローカル時刻 1,1 との時刻差分(即ち、経過
時間)Δt(= 1,1 bt 1 )を算出し、ステップS
T33へ進む。ステップST33では、時刻差分Δt、
筆圧変化値ps、及び骨格点I1 の筆圧値bp 1 から、
次式に従い補完用骨格点I1,1 の筆圧値pw 1,1 を計算
し、ステップST34へ進む。pw 1,1 bp 1 +(Δt*ps) ステップST34では、筆パラメータBPにおける電子
筆1の毛筆部1aの最大断面の半径br、骨格点I1,1
の筆圧値pw 1,1 、及び筆パラメータBPにおける毛筆
部1aの筆の長さblから、次式に従い、標準筆触パタ
ーンBSの筆の根元の半径 1,1 を算出する。 1,1 =br*pw 1,1 /bl さらに、引数パッケージRPのフォントサイズfs、骨
格点I1,1 の筆圧値pw 1,1 、及び筆の根元の半径
1,1 から、次式に従い、標準筆触パターンBSの筆の先
端の座標a、及び筆の根元の座標b,dを算出する。な
お、この標準筆触パターンBSは、筆の回転が加えられ
ていないパターン、つまり骨格点I1 と同一の筆先方向
のパターンであるので、後のステップST60で回転演
算が加えられる。 標準筆触パターンBSの先端のx,y座標a=(−fs
pw 1,1 ,0) 標準筆触パターンBSの根元のx,y座標b=(0,
1,1 *fs) 標準筆触パターンBSの根元のx,y座標d=(0,−
1,1 *fs) (4) ステップST40の方向差分の正規化処理 図11は、図6の方向差分の正規化処理ST40を示す
フローチャートである。図11のステップST41で、
方向差分の正規化処理が開始されると、ステップST4
2へ進む。ステップST42では、筆パラメータBP
進む方向の角度θf と一つ前の筆先方向の角度θ 1
(但し、この角度θ 1 は予め設定されている)とに着目
し、角度θf θ 1 の角度差Δθ(=θf θ 1 )がπ
(=180°)より開いた場合に角度θ 1 を補正するた
めに、筆進む方向の角度θf と直前の筆先方向の角度
θ 1 との角度差Δθを求め、この角度差Δθがπを越え
ているか否かを判定し、越えていないときには、ステッ
プST43で方向差分の正規化処理を終了する。角度差
Δθがπを越えているときには、角度θ 1 を補正するた
めに、ステップST44で、筆進む方向の角度θf
0を下回っているか否かを判定する。筆進む方向の角
θ f が0より大きい場合には、ステップST45で
度θ 1 から2πを引き、小さい場合には、ステップST
46で角度θ 1 2πを加え、ステップST43で正規
化処理を終了する。
【0018】(5) ステップST50の筆の方向算出
処理 図12は、図6の筆の方向算出処理ST50を示すフロ
ーチャートである。図12のステップST51で、筆の
方向算出処理が開始されると、筆方向の角θ 1,1
算出するために、ステップST52へ進む。ステップS
T52では、引数パッケージRPの筆の単位時間当りの
移動量sp、骨格点I1 と骨格点I 1,1 の経過時間であ
る時刻差分Δt、標準筆触パターンBSの筆の根元の半
1,1 、及び筆パラメータBPの筆の柔らかさの係数
bsを用い、次式(1a)に基づいて筆先の回転係数s
1,1 (但し、0≦sf 1,1 ≦1)を算出し、ステップ
ST53へ進む。 sf 1,1 =bs*ΔL/ 1,1 2 ・・・(1a) 但し、ΔL=sp*Δt ステップST53では、回転係数sf 1,1 が1.0を越
えるか否かを判定し、回転係数sf 1,1 が1.0を越え
ないときには、そのままステップST54へ進み、越え
るときには、ステップST55で回転係数sf 1,1
1.0にし、ステップST54へ進む。ステップST5
4では、直前の筆先方向の角度θ 1 、筆の方向の角度差
Δθ、及び回転係数sf 1,1 を用い、次式(2a)に基
づいて筆先方向の角度θ 1,1 を決定し、ステップST5
6へ進む。 θ 1,1 θ 1 +Δθ*sf 1,1 ・・・(2a) ステップST56では、直前の筆先方向の角度θ 1 に、
決定したばかりの筆先方向の角度θ 1,1 を設定し、ステ
ップST57で筆の方向算出処理を終了する。
【0019】(6) ステップST60の筆触パターン
に回転演算を加える処理 図13は、図6の筆触パターンに回転演算を加える処理
ST60を示すフローチャートである。ステップST6
0の筆触パターンに回転演算を加える処理では、ステッ
プST50の筆の方向算出処理で得られた筆方向の角
θ 1,1 を元に、ステップST30で求めた標準筆触パ
ターンBSを筆先の回転角度(θ 1 −θ 1,1 の分だけ
回転を加え、先に設定した標準筆触パターンBSの中心
位置の座標(骨格点I1, 1 の座標)を考慮して、最終的
に出力できる補完用筆触パターンBS1,1 を算出する。
即ち、図13のステップST61で、回転演算を加える
処理が開始されると、ステップST62へ進む。ステッ
プST62では、引数パッケージRPの移動量のx成分
xs、移動量のy成分ys、時刻差分Δt、及び先に求
めた標準筆触パターンBSの中心位置(即ち、補完用骨
格点I1,1 の座標値x,y)に基づき、次式に従い、そ
のx,y移動量ax,ayを算出し、ステップST63
へ進む。 ax=xs*Δt+(標準筆触パターンBSの中心位置
の座標値x) ay=ys*Δt+(標準筆触パターンBSの中心位置
の座標値y) ステップST63では、回転を加えるための予備計算の
ため、x方向成分cos(s)及びy方向成分sin
(s)を次式より求め、ステップST64へ進む。
【0020】 cos(s)=cos(θ 1 −θ 1,1 ) sin(s)=sin(θ 1 −θ 1,1 ) ステップST64では、演算用の座標を変位させ、筆の
回転のx,y方向成分を描画用の座標に加えるために、
標準筆触パターンBSの筆の頂点座標a,b,dそれぞ
れにつき、次式に従い回転を加え、最終的に出力できる
補完用骨格点I 1,1 上の補完用筆触パターンBS1,1
データを算出し、ステップST65で処理を終了する。 座標値x1,1 =ax−((標準筆触パターンBSの座標
値x)*cos(s)+(標準筆触パターンBSの座標
値y)*sin(s)) 座標値y1,1 ay−(−(標準筆触パターンBSの座標
値x)*sin(s)+(標準筆触パターンBSの座標
値y)*cos(s)) (7) ステップST70の描画バッファに送る処理 ステップST60で得られた補完用筆触パターンBS
1,1 のデータは、描画バッファ13へ送って記憶する。 (8) ステップST80のパラメータ内の時刻更新と
次データ準備処理 ステップST80の処理では、パラメータのローカル時
刻tに1を加え、この時刻t+1が現在の骨格点I
2 (これは引数パッケージRPの現在処理中の画数イン
デックスns=1と、現在処理中の骨格点インデックス
nb=1で決定できる)の時刻より大きいか否かを判定
し、小さいときには、ステップST11へ戻り、ステッ
プST30〜ST60の処理を行い、次の補完用骨格点
1,2 の補完用筆触パターンBS1,2 を求め、このデー
タを描画バッファ13に記憶する。以降同様に、補完用
骨格点I1,m までの補完用筆触パターンBS1,m を求
め、これらのデータを描画バッファ13に記憶してい
く。パラメータのローカル時刻tの値の増減と連動した
時刻ttが0から増加して処理を一旦終らせる時間at
に達すると、描画バッファ13に記憶された筆触パター
ンBS1 ,BS1,1 ,…のデータを出力して筆描画手段
14へ送り、この筆描画手段14によって画面表示手段
18で表示する。
【0021】一方、前記のパラメータのローカル時刻t
+1が現在の骨格点I2 の時刻より大きいときには、現
在処理中の骨格点インデックスnbに1を加え、この骨
格点インデックスnb+1が骨格点データの個数を越え
ているか否かを判定し、越えていない場合には、次のデ
ータの準備のために、次の骨格点I3 のデータを決定
し、仮の筆の進む方向の角度θf に、その2つの骨格点
2 ,I3 のデータから求めた角度を設定し、2点
2 ,I3 間の距離と時間差から速度を求め、さらに、
筆圧値の変化量、x方向の移動量とy方向の移動量、及
び筆の現在位置等を求め、ステップST11へ戻る。ス
テップST11へ戻ると、ステップST30〜ST80
の処理を繰返すことにより、前記と同様にして骨格点I
2 とI3 間の補完用骨格点を設定し、この補完用骨格点
上の補完用筆触パターンのデータを算出していく。この
ような処理を、毛筆文字「大」の第1画の終わりまで続
ける。前記骨格点インデックスnbに1が加えられ、こ
の骨格点インデックスnb+1が骨格点データの個数を
越えた場合(即ち、第1画の処理が終了した場合)、起
筆処理を行ったかどうかの起筆処理フラグsfを「行っ
ていない」にし、骨格点インデックスnb及びローカル
時刻tをそれぞれ0にする。さらに、画数インデックス
nsに1を加え、ステップST11へ戻る。ステップS
T11では、第2画の起筆処理が行われていないので、
この第2画の起筆処理をステップST20で行い、第1
画と同様の処理を行う。画数インデックスnsが毛筆文
字「大」の画数3を越えた場合、ステップST80で電
子筆エンジン12をリセットし、毛筆文字「大」の描画
処理を終了する。
【0022】実施形態の利点 本実施形態では、次の(i)〜(vii)のような利点があ
る。 (i) 筆順を含めて毛筆での運筆と描画結果との関係
が観測できる。 (ii) フォントデータFDのデータ数を少なくするこ
とによって、毛筆データの圧縮ができる。これにより、
演算処理量等を削減できる。 (iii) 図14(a)〜(d)は、本発明の実施形態に
おける漢字「永」の表示例を示す図である。図14
(a)は濃い墨で書いた文字を示し、同図(b)は毛筆
での運筆がわかるように筆触パターンを示している。図
14(c)は薄い墨で書いた場合で、毛筆の毛の動きが
容易にわかるように筆先のいくつかの毛をより濃くした
ものを示している。また、図14(d)は墨の滲みを表
現したものである。本実施形態では、筆触パターンBS
1 ,…での全ての筆の位置が計算できるため、図14
(a)〜(d)に示すように、筆の裏表の表現や濃淡表
現、あるいは墨のかすれ表現や滲み表現等をより現実的
に描画できる。
【0023】(iv) 線の太さは筆圧値で変化する筆触
パターンBS1 ,…の根元の直径で決定されるので、文
字の太さを任意に変えて表示することができる。そのた
め、文字体の変形が容易である。 (v) 図15は、本発明の実施形態における和歌等の
連綿ひらがな文字列の表示例を示す図である。和歌等の
連綿ひらがな文字列を表示する場合、文字の連結部分2
0において骨格点データの一部に連綿開始臨界点や連綿
終了臨界点を設け、この間をbezier関数等で計算する
か、あるいは予め計算結果をデータ記憶手段16等に記
憶しておき、この文字の連結部分20を補間連結するこ
とで、和歌等の連綿ひらがな文字列を容易に表示でき
る。 (vi) 例えば、個人の筆跡等を文字フォントとして登
録する場合、その筆跡等をフォントエディタ(Font-Edi
tor )で解析し、骨格線上の骨格点データを求め、これ
らをフォントデータFDとしてデータ記憶手段16等に
記憶すればよい。このように、個人の筆跡等を文字フォ
ントとして登録しておけば、これを画面表示手段18で
表示したり、あるいは個人の筆跡等の真偽を判定する等
に応用できる。 (vii) 本実施形態の毛筆文字描画方法では、例えば、
毛筆文字の学習ソフトウェア、(古典)毛筆文字の鑑賞
ソフトウェア、仮想平面での毛筆文字の美術作品の作成
ソフトウェア、毛筆ワードプロセッサソフトウェア(既
存のワードプロセッサソフトウェアの出力文字フォント
としても利用可能)等、種々の応用が可能である。
【0024】変形例 本発明は、上記実施形態に限定されず、種々の変形が可
能である。この変形例としては、例えば、次の(A)〜
(C)のようなものがある。 (A) 図16(a),(b)は、本発明における筆触
パターンの他の形状の例を示す図である。本発明の筆触
パターンは、図2(b)のような形状に限定されず、例
えば、図16(a)のような筆先が台形の筆触パターン
BS i (但し、1bは中心線である)、あるいは図16
(b)のような筆先が複数に割れている筆触パターンB
i (但し、1bは中心線である)等といった、種々の
形状のものが適用できる。 (B) 各骨格点Ii において、筆触パターンBSi
根元の半径 i 及び筆先方向の角度θi を演算によって
求めるようにしたが、これらを予めデータ記憶手段16
等に記憶しておいてもよい。このようにすれば、演算量
を削減でき、描画方法の処理速度を高速化できる。ま
た、フォントデータFDにおける各画毎の通過時刻tの
データは、筆の移動速度vのデータに置き換えても、上
記実施形態とほぼ同様の作用効果が得られる。 (C) 図6に示す毛筆文字描画方法の各処理は、図示
したフローチャート以外の処理内容に変更してもよい。
また、本発明の毛筆文字描画方法に用いられる毛筆文字
描画装置は、図4に示す構成に限定されず、例えば、描
画バッファ13を他の記憶手段で構成する等、種々の構
成に変更することができる。
【0025】
【発明の効果】以上詳細に説明したように、本発明によ
れば、各画毎の骨格点Ii においては筆触パターンBS
i を算出し、各画毎の骨格点Ii ,Ii+1 間においては
前記筆触パターンBSi を補完する筆触パターンBS
i,j を算出し、前記筆触パターンBSi 及びBSi,j
連続的に記憶手段等の仮想空間上に描画するようにした
ので、筆順も含めて毛筆での運筆と描画結果との関係を
表示できる。フォントデータ数を少なくすることによ
り、毛筆データの圧縮ができ、毛筆文字描画処理の簡単
化と高速化が図れる。さらに、毛筆パターンでの全ての
毛筆の位置を計算できるため、筆の裏表の表現や濃淡表
現、あるいは墨のかすれ表現や滲み表現等をより現実的
に描画できる。しかも、線の太さは筆圧値pwi ,pw
i,j で変化する筆触パターンBSi ,BSi,j 根元の
直径で決定されるため、該筆触パターンBSi ,BS
i,j 根元の直径を変えることによって文字の太さを任
意に変えることができ、文字体の変形が容易である。
【図面の簡単な説明】
【図1】本発明の実施形態を示す毛筆文字描画方法の説
明図である。
【図2】本発明の実施形態における電子筆のモデルと筆
触パターンを示す図である。
【図3】図2の電子筆1を用いた漢字「大」の描画方法
を示す図である。
【図4】本発明の実施形態で用いられる毛筆文字描画装
置の概略の構成図である。
【図5】図4の電子筆エンジン12の引数パッケージR
Pの内容を示す図である。
【図6】本発明の実施形態の毛筆文字描画方法の全体を
示すフローチャートである。
【図7】図6の起筆処理ST20を示すフローチャート
である。
【図8】図7の筆の進む方向の算出処理ST23を示す
フローチャートである。
【図9】図7の骨格点の情報生成処理ST26を示すフ
ローチャートである。
【図10】図6の筆圧値計算及び標準筆触パターン算出
処理ST30を示すフローチャートである。
【図11】図6の方向差分の正規化処理ST40を示す
フローチャートである。
【図12】図6の筆の方向算出処理ST50を示すフロ
ーチャートである。
【図13】図6の筆触パターンに回転演算を加える処理
ST60を示すフローチャートである。
【図14】本発明の実施形態における漢字「永」の表示
例を示す図である。
【図15】本発明の実施形態における連綿ひらがな文字
列の表示例を示す図である。
【図16】本発明における筆触パターンの他の形状の例
を示す図である。
【符号の説明】 1 電子筆1a 毛筆部 2 骨格線 11 電子筆制御手段 12 電子筆エンジン 13 描画バッファ 14 筆描画手段 15 プログラム記憶手段 16 データ記憶手段 17 入力手段 18 画面表示手段 19 印刷手段 20 文字の連結部分 BS,BSi 筆触パターン BSi,j 補完用筆触パターン Ii 骨格点 Ii,j 補完用骨格点 ST10 初期化処理 ST20 起筆処理 ST30 筆圧値計算及び標準筆触パターン
算出処理 ST40 方向差分の正規化処理 ST50 筆の方向算出処理 ST60 筆触パターンに回転演算を加える
処理 ST70 描画バッファに送る処理 ST80 パラメータ内の時刻更新及び次デ
ータ準備処理
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
【手続補正5】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図7
【補正方法】変更
【補正内容】
【図7】
【手続補正7】
【補正対象書類名】図面
【補正対象項目名】図8
【補正方法】変更
【補正内容】
【図8】
【手続補正8】
【補正対象書類名】図面
【補正対象項目名】図9
【補正方法】変更
【補正内容】
【図9】
【手続補正9】
【補正対象書類名】図面
【補正対象項目名】図11
【補正方法】変更
【補正内容】
【図11】
【手続補正10】
【補正対象書類名】図面
【補正対象項目名】図12
【補正方法】変更
【補正内容】
【図12】
【手続補正11】
【補正対象書類名】図面
【補正対象項目名】図16
【補正方法】変更
【補正内容】
【図16】

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 描画対象となる毛筆文字の各画毎の骨格
    線上の複数の骨格点Ii (但し、i=1,2,…,n−
    1)におけるフォントデータとして、それらの各骨格点
    i における2次元のXY座標で表現される骨格点座標
    値xi ,yi、筆の上げ下げで変化する筆圧値pwi
    及び前記筆の通過時刻を示す時間tiの各データを、前
    記毛筆文字の筆順でかつ各画毎に予め記憶しておき、 前記各画毎の骨格点Ii においては、記憶された前記各
    筆圧値pwi から前記筆の各半径ri を求めると共に、
    該筆の軌跡から各筆先の方向を示す角度θi を求め、こ
    れらの各半径ri 及び角度θi と記憶された前記各骨格
    点座標値xi ,yi とから、それらの各骨格点Ii にお
    ける筆触パターンBSi を算出し、 前記各画毎の各骨格点Ii ,Ii+1 間においては、これ
    らの各骨格点Ii ,Ii+1 間に補完用の複数の骨格点I
    i,j (但し、i=1,2,…,n−1、j=1,2,
    …,m)を設定し、これらの各骨格点Ii,j の直前の骨
    格点Ii,j-1 のフォントデータから現在の各骨格点I
    i,j の骨格点座標値xi,j ,yi,j 、筆圧値pwi,j
    角度θi,j 及び時間ti,j を予測演算して前記筆触パタ
    ーンBSi を補完する筆触パターンBSi,j を算出し、 前記各画毎の骨格線に沿って前記筆触パターンBSi
    びBSi,j を連続的に仮想空間上に描画していくことを
    特徴とする毛筆文字描画方法。
  2. 【請求項2】 請求項1記載の毛筆文字描画方法におい
    て、 前記角度θi は、直前の角度θi-1 、前記筆の進む方
    向、及び該筆の柔らかさから演算によって求めることを
    特徴とする毛筆文字描画方法。
  3. 【請求項3】 請求項1記載の毛筆文字描画方法におい
    て、 前記半径ri 及び角度θi は、予め記憶しておき、 前記時間ti のデータは、前記筆の移動速度vのデータ
    に置き換えて、 前記各画毎の筆触パターンBSi 及びBSi,j を描画し
    ていくことを特徴とする毛筆文字描画方法。
JP10024607A 1998-02-05 1998-02-05 毛筆文字描画方法 Expired - Fee Related JP2912602B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10024607A JP2912602B1 (ja) 1998-02-05 1998-02-05 毛筆文字描画方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10024607A JP2912602B1 (ja) 1998-02-05 1998-02-05 毛筆文字描画方法

Publications (2)

Publication Number Publication Date
JP2912602B1 JP2912602B1 (ja) 1999-06-28
JPH11224080A true JPH11224080A (ja) 1999-08-17

Family

ID=12142846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10024607A Expired - Fee Related JP2912602B1 (ja) 1998-02-05 1998-02-05 毛筆文字描画方法

Country Status (1)

Country Link
JP (1) JP2912602B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116844B2 (en) * 2002-08-09 2006-10-03 Celsys Co., Ltd. Method for generating vector data for a hand-drawn curve
CN103345773A (zh) * 2013-06-20 2013-10-09 大连理工大学 一种基于力反馈技术的毛笔建模方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7116844B2 (en) * 2002-08-09 2006-10-03 Celsys Co., Ltd. Method for generating vector data for a hand-drawn curve
CN103345773A (zh) * 2013-06-20 2013-10-09 大连理工大学 一种基于力反馈技术的毛笔建模方法
CN103345773B (zh) * 2013-06-20 2015-11-18 大连理工大学 一种基于力反馈技术的毛笔建模方法

Also Published As

Publication number Publication date
JP2912602B1 (ja) 1999-06-28

Similar Documents

Publication Publication Date Title
US10049289B2 (en) Method and system for generating and selectively outputting two types of ink vector data
Hunter Matplotlib: A 2D graphics environment
TWI291114B (en) Overlaying electronic ink
Wong et al. Virtual brush: a model-based synthesis of Chinese calligraphy
EP0671037B1 (en) Method and system for creating, specifying, and generating parametric fonts
JP4418044B2 (ja) デジタルフォントにおけるキャラクタを表示する方法、デジタルフォントのキャラクタを画定する方法、及びデジタルフォントにおけるキャラクタを発生する方法
JP3019202B2 (ja) 中心軸変換を利用したフォント書体変換方法
JPH0798769A (ja) 情報処理装置及びその画面編集方法
US20020130871A1 (en) Font architecture and creation tool for producing richer text
JP2006172460A (ja) 3次元電子文書のページに注釈を付ける方法
US20080049025A1 (en) Methods and apparatus for supporting and implementing computer based animation
US9792517B2 (en) Method and system for generating and selectively outputting two types of ink vector data
JP3865681B2 (ja) 毛筆描画装置、毛筆描画プログラムおよび毛筆描画方法
JP2912602B1 (ja) 毛筆文字描画方法
Di Fiore et al. A multi-level sketching tool for pencil-and-paper animation
Draper et al. A Gestural Interface to Free-Form Deformation.
JP3899421B2 (ja) 文字及び文字列生成表示装置
JP2899084B2 (ja) 図形処理装置及び方法
JP3155753B2 (ja) 図形処理装置及び方法
CN112232022A (zh) 动态调整参数的汉字字形与布局设计方法和系统
TWI282947B (en) Silhouette oriented gray font generation
JPH11296696A (ja) 3次元画像処理装置
Yin et al. HUA: an interactive calligraphy and ink-wash painting system
JPH05503383A (ja) ブラシ様式のライティングのためのコンピュータ装置
CN117631930B (zh) 一种图纸快速响应的方法、系统及存储介质

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990330

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees