(57)【特許請求の範囲】
【請求項１】
電子文書内の曲線を編集するコンピュータによって実行される方法において、
ユーザからの入力としてスケッチ曲線を受取り、前記スケッチ曲線は２つの端点を有しており、
前記スケッチ曲線の端点の各々に最も近い既存の曲線内の１つの点を見つけ出すことによって前記既存曲線のターゲットセクションを識別し、前記ターゲットセクションは見つかった点の間の既存の曲線の部分であり、
前記既存の曲線から前記ターゲットセクションを除去し、前記既存の曲線内に２つの内部端点を残し、
置換曲線を作成し、前記置換曲線は２つの端点を有しており、
前記置換曲線を前記ターゲットセクションの代わりに前記既存の曲線内に挿入し、
前記既存の曲線と前記置換曲線との間の各端点におけるギャップを閉じるためにそれらの夫々の隣りの端点において前記既存の曲線と前記置換曲線とを整形する、
ことを特徴とする方法。
【請求項２】
請求項１において、前記点の間の距離をユークリッド距離によって測定することを特徴とする方法。
【請求項３】
請求項１において、前記既存の曲線及び前記置換曲線を整形する場合に、
前記置換曲線の各端点において前記置換曲線を短縮させ、
各内部端点において前記既存の曲線を短縮させ、
前記短縮させた置換曲線及び前記短縮させた既存の曲線を連結させるためにスミ肉曲線を形成する、
ことを特徴とする方法。
【請求項４】
請求項３において、前記既存の曲線及び前記置換曲線の隣接する短縮させた端部の各対の各端部が同一の量だけ短縮されることを特徴とする方法。
【請求項５】
請求項３において、前記短縮させた端部の各々が前記短縮させた端部に隣接するギャップの寸法から計算した量だけ短縮されることを特徴とする方法。
【請求項６】
請求項１において、前記置換曲線が前記スケッチ曲線であることを特徴とする方法。
【請求項７】
請求項１において、前記置換曲線を形成する場合に、前記ターゲットセクションを平滑化して前記置換曲線を形成することを特徴とする方法。
【請求項８】
請求項７において、前記ターゲットセクションを平滑化する場合に、
前記ターゲットセクションを表わす点の順番付けしたシーケンスを形成し、
前記順番付けした点のシーケンスの点を１個又はそれ以上の隣接した点のセグメントへグループ化し、
前記各セグメントの点を平滑化して平滑した点のセグメントを発生し、
平滑した点の各セグメントに対して１個又はそれ以上の数学的曲線を当て嵌め、前記１つ又はそれ以上の数学的曲線が一体となって前記置換曲線を形成する、ことを特徴とする方法。
【請求項９】
請求項８において、点の順番付けしたシーケンスを形成する場合に、
前記点の順番付けしたシーケンスにおける点の間の間隔距離が最大間隔を超えることがなく、且つ
前記点の順番付けしたシーケンスにおける２つの連続した点の間に形成される直線と前記ターゲットセクションとの間の平坦性距離が平坦性許容値を超えることがない、ように点を選択することを特徴とする方法。
【請求項１０】
請求項１において、前記既存の曲線が包絡線を持ったブラシストロークの軌跡曲線であり、本方法が、更に、既存のブラシストロークの包絡線情報と編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線を計算することを特徴とする方法。
【請求項１１】
ブラシストロークが軌跡曲線と、包絡線曲線と、包絡線情報とを有しているグラフィックシステムにおけるブラシストロークを編集する方法において、
スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ前記スケッチ曲線に基づいて前記軌跡曲線を修正するものであり、
既存のブラシストロークの包絡線情報及び編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線曲線を計算する、
ことを包含しており、スケッチを基にした編集を行う場合に、
前記軌跡曲線上のターゲットセクションを識別するために前記スケッチ曲線を使用し、前記ターゲットセクションの端点は前記スケッチ曲線の端点に最も近い前記軌跡曲線上の点であり、
前記ターゲットセクションを前記軌跡曲線上の前記スケッチ曲線と置換し、
編集した軌跡曲線を作成するために前記軌跡曲線及び前記スケッチ曲線を互いに整形させる、
ことを特徴とする方法。
【請求項１２】
ブラシストロークが軌跡曲線と、包絡線曲線と、包絡線情報とを有しているグラフィックシステムにおけるブラシストロークを編集する方法において、
スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ前記スケッチ曲線に基づいて前記軌跡曲線を修正するものであり、
既存のブラシストロークの包絡線情報及び編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線曲線を計算する、
ことを包含しており、スケッチを基にした編集を行う場合に、
前記スケッチ曲線を使用して前記軌跡曲線上のターゲットセクションを識別し、その場合に、前記ターゲットセクションの端点は前記スケッチ曲線の端点に最も近い前記軌跡曲線上の点であり、
前記ターゲットセクションを平滑化し、
前記ターゲットセクションを前記軌跡曲線における平滑化したターゲットセクションと置換し、
編集した軌跡曲線を作成するために前記軌跡曲線及び平滑化したターゲットセクションを互いに整形させる、
ことを特徴とする方法。
【請求項１３】
ブラシストロークが軌跡曲線と、包絡線曲線と、包絡線情報とを有しているグラフィックシステムにおけるブラシストロークを編集する方法において、
スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ前記スケッチ曲線に基づいて前記軌跡曲線を修正するものであり、
既存のブラシストロークの包絡線情報及び編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線曲線を計算する、
ことを包含しており、新たなブラシストロークに対する新たな包絡線曲線を計算する場合に、
既存のブラシストロークの軌跡曲線の円弧長及び編集した軌跡曲線の円弧長に基づいて既存のブラシストロークの軌跡曲線の包絡線情報を線形補間することによって新たな包絡線情報を計算し、
前記新たな包絡線情報を編集した軌跡曲線へ適用する、
ことを特徴とする方法。
【請求項１４】
コンピュータプログラムアプリケーションにおけるグラフィックを編集するユーザと対話するプログラム命令を格納しているコンピュータによって読取可能な格納媒体を有する装置において、前記装置は、プログラム可能なプロセサをして、
ユーザからの入力としてスケッチ曲線を受取らせ、前記スケッチ曲線は２つの端点を有しており、
前記スケッチ曲線の端点の各々に最も近い既存の曲線内の１つの点を見つけ出すことによって前記既存の曲線のターゲットセクションを識別させ、前記ターゲットセクションは見つけられた点の間の前記既存の曲線の部分であり、
前記既存の曲線から前記ターゲットセクションを除去し、前記既存の曲線内に２つの内部端点を残存させ、
置換曲線を形成させ、前記置換曲線は２つの端点を有しており、
前記ターゲットセクションの代わりに前記置換曲線を前記既存の曲線内に挿入させ、
前記既存の曲線と前記置換曲線との間の各端点におけるギャップを閉じるために整形させることによってそれらの夫々の隣りの端点において前記既存の曲線と前記置換曲線とを連結させる、
ために動作可能な命令を有していることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、対話的コンピュータグラフィックシステムに関するものである。
【０００２】
【従来の技術】
コンピュータグラフィックシステムにおいては、曲線は、しばしば、グラフィックとして描画される。然しながら、曲線は、典型的に、例えばマウス又はグラフィックタブレット等の入力装置を使用してフリーハンドの所作で描画することは困難である。不所望の凹凸及び平坦部分が発生することがしばしばである。
【０００３】
アーチストがペン及び紙を使用して描画する場合には、アーチストは不所望の区域内に別の直線又は曲線を描画し、不所望の部分をカバーすることによって曲線を修正することが可能である。繰り返し直線及び曲線を付加することは「スケッチング（ｓｋｅｔｃｈｉｎｇ）」と呼称される場合がある。曲線が数学的な式によって表わされるコンピュータグラフィックシステムにおいては、単一の所望の曲線の様相を得るために１つの曲線の上に別の曲線を積層させることは望ましいことではない場合がある。
【０００４】
従来のグラフィックシステムはある曲線編集機能を提供している。１つのアプローチはその曲線を再度描画することである。別のアプローチは、曲線を画定する「コントロールハンドル」を操作することである。これらアプローチは、両方とも、しばしば、時間がかかり且つ不便なものである。
【０００５】
コンピュータグラフィックシステムにおいてブラシストローク即ち筆の一書きを編集する場合に同様の問題が存在している。この場合にも、不所望な部分の上に曲線又はブラシストロークのレイヤー（層）を付加することは時間がかかり且つ最初に不所望な部分を発生させたものと同一のエラーを発生させる蓋然性がある。
【０００６】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、電子文書における曲線又はブラシストロークを編集する方法及び装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
一般的に、１つの側面においては、本発明は、電子文書における曲線を編集する方法及びその方法を実行する装置を特徴としている。本方法は、ユーザから入力としてスケッチ曲線を受取り、該スケッチ曲線は２つの端点を有しており、前記スケッチ曲線の端点のうちの各々に最も近い既存の曲線内の点を見つけ出すことによって既存の曲線のターゲットセクションを識別し、該ターゲットセクションは見つけられた点の間の既存の曲線の部分であり、既存の曲線からターゲットセクションを除去し、既存の曲線内に２つの内部端点を残し、置換曲線を形成し、該置換曲線は２つの端点を有しており、ターゲットセクションの代わりに既存の曲線内に置換曲線を挿入し、且つ既存の曲線と置換曲線との間の各端点におけるギャップを閉じるためにそれらの夫々の隣りの端点において既存の曲線及び置換曲線を整形することを包含している。
【０００８】
本発明の効果としては、以下の特徴のうちの１つ又はそれ以上を包含している。点と点との間の距離はユークリッド距離によって測定される。既存の曲線及び置換曲線を整形する場合に、置換曲線の各端点において置換曲線を短縮させ、各内部端点において既存の曲線を短縮させ、且つ短縮させた置換曲線と短縮させた既存の曲線とを連結させるためにスミ肉曲線（ｆｉｌｌｅｔ  ｃｕｒｖｅ）を形成することを包含している。既存の曲線及び置換曲線の隣接する短縮された端部の各対の各端部が同一の量だけ短縮される。短縮された端部の各々は短縮された端部に隣接するギャップの寸法から計算した量だけ短縮される。置換曲線はスケッチ曲線である。置換曲線を作成する場合に、ターゲットセクションを平滑化して置換曲線を形成する。ターゲットセクションを平滑化する場合に、ターゲットセクションを表わす点の順番付けしたシーケンスを形成し、その点の順番付けしたシーケンスの点を点の１つ又はそれ以上の隣接するセグメントへグループ化し、各セグメントの点を平滑化して平滑化した点からなるセグメントを発生し、平滑化した点の各セグメントに対して１つ又はそれ以上の数学的曲線を当て嵌め、該１つ又はそれ以上の数学的曲線は一体となって置換曲線を形成する。点の順番付けしたシーケンスを形成する場合に、点の順番付けしたシーケンスにおける点と点との間の間隔距離が最大間隔を超えることがなく且つ点の順番付けしたシーケンスにおける２つの相次ぐ点の間に形成される直線とターゲットセクションとの間の平坦性距離が平坦性許容値を超えることがないように点を選択する。既存の曲線は包絡線を有するブラシストロークの軌跡曲線であり、且つ本方法は、更に、編集した軌跡曲線及び既存のブラシストロークの包絡線情報を使用して新たなブラシストロークに対する新たな包絡線を計算する。
【０００９】
一般的に、別の側面においては、本発明は、対話的グラフィックシステムのユーザと対話する方法及びその方法を実現する装置を特徴としている。本方法は、ディスプレイ装置上に曲線を表示し、グラフィカルユーザインターフェースを介してユーザの制御下において動作可能な平滑化ツールをユーザへ供給し、該曲線の一部の選択を表わすために該曲線の一部の上に該平滑化ツールを移動させるユーザからの所作を受取り、且つ該曲線の選択された部分に対して平滑化フィルタを適用することによって該曲線の選択された部分を平滑化させる、ことを包含している。
【００１０】
本発明の効果としては以下の特徴のうちの１つ又はそれ以上を包含している。本方法は曲線のサンプルを選択し、選択したサンプルを別の曲線として平滑化し、且つその平滑化したサンプルを該曲線内に再度当て嵌めるために、グラフィカルユーザインターフェースを介してユーザの制御下において動作可能な平滑化ツールをユーザに対して提供する。
【００１１】
一般的に、別の側面においては、本発明は、グラフィックシステムにおいてブラシストロークを編集する方法及びその方法を実現する装置を特徴としている。ブラシストロークは軌跡曲線と、包絡線曲線と、包絡線情報とを有している。本方法は、スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ該スケッチ曲線に基づいて軌跡曲線を修正するものであり、且つ編集した軌跡曲線及び既存のブラシストロークの包絡線情報を使用して新たなブラシストロークに対する新たな包絡線曲線を計算することを包含している。
【００１２】
本発明の効果としては以下の特徴のうちの１つ又はそれ以上を有している。スケッチを基にした編集は、スケッチ曲線を使用して軌跡曲線上のターゲットセクションを識別し、尚ターゲットセクションの端点はスケッチ曲線の端点に対して最も近い軌跡曲線上の点であり、ターゲットセクションを軌跡曲線内のスケッチ曲線で置換させ、且つ前記軌跡曲線及びスケッチ曲線を互いに整形して編集した軌跡曲線を作成することを包含している。スケッチを基にした編集は、スケッチ曲線を受取り、該スケッチ曲線を使用して軌跡曲線上のターゲットセクションを識別し、該ターゲットセクションの端点は該スケッチ曲線の端点に最も近い軌跡曲線上の点であり、該ターゲットセクションを平滑化し、該ターゲットセクションを該軌跡曲線内の平滑化させたターゲットセクションで置換させ、且つ該軌跡曲線及び平滑化したターゲットセクションを互いに整形させて編集した軌跡曲線を形成することを包含している。新たなブラシストロークに対する新たな包絡線曲線を計算する場合に、元の軌跡曲線からの包絡線情報を編集した軌跡曲線に対してマッピングすることによって編集した軌跡曲線に対する新たな包絡線情報を計算することを包含している。新たなブラシストロークに対して新たな包絡線曲線を計算することは、編集した軌跡曲線の円弧長及び既存のブラシストロークの軌跡曲線の円弧長に基づいて既存のブラシストロークの軌跡曲線の包絡線情報を線形補間することによって新たな包絡線情報を計算し、且つその新たな包絡線情報を編集した軌跡曲線へ適用させることを包含している。該包絡線情報はブラシ形状と、軌跡曲線に沿っての対応する１つ又はそれ以上の位置においてブラシ形状に対してなされるべき修正を画定する１個又はそれ以上のアフィンマトリクスとを有している。アフィンマトリクスは、ユーザによる入力装置の物理的操作に応答して入力装置から受取られるデータを使用して計算される。ユーザは入力装置から受取ったデータをアフィンマトリクスにおける値へ変換させるための変換パラメータを定義する。
【００１３】
【発明の実施の形態】
ブラシストローク包絡線（Ｂｒｕｓｈｓｔｒｏｋｅ  Ｅｎｖｅｌｏｐｅ）
ブラシ軌跡モデルにおいては、中央軌跡（即ち、複数個の点からなるシーケンス）に沿ってブラシ（即ち、閉じた形状）をスイープ即ち掃引することによってストローク（ｓｔｒｏｋｅ）が構成される。このようなストロークの形状は軌跡に沿ってのブラシの経路を取囲むエンベロープ即ち包絡線として数学的に定義される。
【００１４】
図１を参照すると、コンピュータシステム１０は軌跡６０に沿っての任意のアフィン変換に従って変化する多角形ブラシ１５に対する包絡線近似１７の個別的な近似を計算するためのブラシストロークプロセス１４を包含する汎用コンピュータ１１を有している。ブラシストロークプロセス１４は、例えば、カリフォルニア州サンノゼのアドビシステムズインコーポレイテッドから入手可能なアドビイラストレーター（Ａｄｏｂｅ  Ｉｌｌｕｓｔｒａｔｏｒ）（商標）等のペイントアプリケーション１２の１つの特徴として実現することが可能である。コンピュータシステム１０は、更に、コンピュータ１１の出力を視覚的に表示するためのモニタ１８、及び永続的にデータを格納するためのハードディスクドライブ２８を有している。入力装置は、キーボード２０、マウス２２、スタイラス２６と結合された描画用タブレット２４を有している。
【００１５】
図２及び３を参照すると、ペイントアプリケーション１２内において、ユーザがステップ４０ａにおいてペイントすべきブラシ１５を選択する。ブラシ１５はＪ個の点からなるシーケンスｂjを格納するデータ構造であり、尚ｊ＝１，２，．．．，Ｊであり、且つｂ0は原点における点である。図３に示したように、ブラシ１５は五角形形状をしており、５個の点５２ａ−５２ｅを有している。点５２ｆは原点に位置している。ユーザは例えばマウス２２又は描画用タブレット２４等の入力装置を使用してブラシ１５で描画することが可能である。以下の説明では、ユーザが描画用タブレット２４上においてスタイラス２６を使用して描画を行うものと仮定する。
【００１６】
ユーザがステップ４０ｂにおいて描画用タブレット２４上にスタイラス２６を押圧させると、それはユーザは新たなストロークの描画が開始せんとしていることを表わし、ペイントアプリケーション１２はステップ４０ｃにおいて軌跡６０をクリアする。ユーザがスタイラス２６を描画用タブレット２４上に押し付けたままスタイラス２６を移動させると、描画用タブレット２４は、周期的に、位置（即ち、ｘ及びｙ座標）、圧力（即ち、どれほど強くユーザが描画用タブレット２４に対してスタイラス２６を押圧させているか）、及び描画用タブレット２４に関するスタイラス２６の傾斜及び方位角角度のサンプルをペイントアプリケーション１２へ送る。図４Ａに示したように、スタイラス２６の傾斜（仰角とも呼称される）は描画用タブレット２４の面とスタイラス２６との間の面外角度５４である。図４Ｂに示したように、ライン２７は描画用タブレット２４上に射影したスタイラス２６の「影」を表わしている。スタイラス２６の方位角角度は描画用タブレット２４の面に垂直な面とライン２７との間の面内角度５６である。
【００１７】
描画用タブレットの典型的なサンプリング率は毎秒百回の範囲内である。１個のサンプルが取られる度に、サンプル情報（即ち、位置、圧力、傾斜及び方位角）がペイントアプリケーション１２へ送られ、ペイントアプリケーション１２はサンプル情報をブラシデータ構造１５へ適用されるべきアフィン変換を表わす軌跡マトリクス内へ変換させる。ペイントアプリケーション１２はステップ４０ｄにおいて軌跡マトリクスを軌跡６０へアペンド即ち付属させ、軌跡マトリクスからなるシーケンスを発生させる。ユーザがステップ４０ｅにおいて描画用タブレット２４からスタイラス２６を解放させると、ペイントアプリケーション１２はユーザがストロークを描画することを停止したものと決定する。その結果得られる軌跡６０は軌跡マトリクスｔkからなるシーケンスであり、ｋ＝１，２，．．，Ｋであり、尚Ｋは描画用タブレット２４から得られたサンプルの数である。
【００１８】
軌跡マトリクスｔkは水平及び垂直スケールｓx及びｓy、水平及び垂直オフセットｔx及びｔy、及び水平及び垂直回転ｒx及びｒyを有している。軌跡６０に沿っての各点におけるブラシ１５の形状はｄk,j＝ｔk＊ｂjとして定義され、尚＊はマトリクス乗算を意味している。与えられたｋ及びｊ＝１，２，．．．，Ｊに対して、点ｂk,jはｔkに対応する軌跡６０における点においてのブラシ１５の寸法及び形状を画定する。換言すると、ｂk,jはｔkによって定義されたアフィン変換をブラシ１５に対して適用した結果である。
【００１９】
軌跡マトリクスは、多くの方法で描画タブレット２４によって与えられるサンプル情報から派生させることが可能である。典型的に、軌跡マトリクスにおけるｔx及びｔyはサンプル情報におけるｘ及びｙ座標の夫々の値が割り当てられる。成分ｓx及びｓyは、夫々、サンプル情報内に含まれる圧力情報に比例する値が割り当てられ、実効的に、ユーザがスタイラス２６上の圧力を変化させることによって軌跡６０によってのブラシ１５の寸法を増加及び減少させることを可能とさせる。ｒx及びｒyの値は、それぞれ、スタイラスの傾斜角度及び方位角角度の関数とすることが可能であり、実効的に、スタイラス２６の傾斜角度及び方位角角度を変化させることによって軌跡６０に沿ってユーザがブラシ１５を回転させることを可能としている。
【００２０】
ペイントアプリケーション１２が軌跡６０を発生することを終了した後に、ペイントアプリケーション１１２はステップ４０ｆにおいてブラシストロークプロセス１４を呼出し、軌跡６０に沿ってのブラシ１５の包絡線近似１７を発生させる。ペイントアプリケーション１２は包絡線近似１７の内側をカラー又はテクスチャで充填させる。
【００２１】
図５を参照すると、ブラシストロークプロセス１４がパス即ち経路７０としてグラフィック的に軌跡６０を表わしている。軌跡６０は夫々グラフィック的に点７２ａ，７２ｂ，７２ｃとして表わした３個の軌跡マトリクスｔ1，ｔ2，ｔ3を有している。点７２ａ−７２ｃのｘｙ座標は、夫々、軌跡マトリクスｔ1，ｔ2，ｔ3のｔx及びｔy成分に対応している。ラインセグメント７４ａ及び７４ｂは連続する点７２ａ−７２ｃを接続する。軌跡６０の軌跡マトリクスｔ1，ｔ2，ｔ3によって画定されるアフィン変換をブラシ１５へ適用する結果は、グラフィック的にブラシインスタンス７６ａ−７６ｃとして表わされる。包絡線近似１７を計算するためにブラシストロークプロセス１４はパス７０又はブラシインスタンス７６ａ−７６ｃをレンダリングすることは必要ではないが、パス７０及びブラシインスタンス７６ａ−７６ｃは、ここにおいては、例示的な目的のために示してある。
【００２２】
図６を参照すると、ブラシストロークプロセス１４はステップ４０ｆにおいて以下の如くにして包絡線近似１７を発生する。ブラシストロークプロセス１４はパス７０の左側から最も遠いブラシインスタンス７６ａ−７６ｃ上の点を見つけ出す。ステップ４２ａにおいて可変の側部にＬＥＦＴの値が割り当てられ、ブラシストロークプロセス１４がパス７０の左側を探すべきであることを表わす。ブラシストロークプロセス１４はステップ４２ｂにおいてインデックス用の変数ｋを１の値へ初期化させる。ブラシストロークプロセス１４はステップ４２ｃにおいて軌跡マトリクスｔk-1を表わす点を軌跡マトリクスｔkを表わす点へ接続させるパス７０におけるラインセグメント及び軌跡マトリクスｔkを表わす点を軌跡マトリクスｔk+1を表わす点へ接続させるパス７０におけるラインセグメントを識別する。図５の例の場合には、ラインセグメント７４ａ及び７４ｂが識別される。
【００２３】
ブラシストロークプロセス１４はステップ４２ｅにおいてｔk-1，ｔk，ｔk+1に対応する点を含むブラシインスタンスを識別する。図５の場合においはブラシインスタンス７６ａ，７６ｂ，７６ｃが識別される。各識別されたラインセグメントに対して、ブラシストロークプロセス１４はステップ４２ｆにおいて可変の側部の値によって表わされたラインセグメントの側部から最も遠いラインセグメントを含むブラシインスタンスの境界上の点を見つけ出す。図５においては、例えば、点８０ａがラインセグメント７４ａの左側に対して最も遠いブラシインスタンス７６ａにおける点であり、且つ点８０ｂがラインセグメント７４ａの左側に対して最も遠いブラシインスタンス７６ｂにおける点である。識別されたラインセグメントの側部から最も遠いブラシインスタンス７６ａ−７６ｃの点を見つけ出すプロセスの詳細については図７に示してある。包絡線発生プロセス４０ｆはステップ４２ｇにおいて図９に関して更に詳細に説明するようにステップ４２ｆにおいて識別された点を接続させる。
【００２４】
ステップ４２ｇにおいて点を接続した後に、インデックス用変数ｋがＫ−１と等しくない場合には、ｋがステップ４２ｉにおいてインクリメントされ、且つ制御がプロセス４２ｃ−４２ｇへ復帰され、それは包絡線近似１７の１つの側部の残りを発生することを継続して行うために繰り返し行われる。包絡線近似１７の左側が発生された後に、可変側部はステップ４２ｋにおいてＲＩＧＨＴの値が割り当てられ、且つ包絡線近似１７の右側がプロセス４２ｂ−４２ｉに従って発生される。包絡線近似１７の左側がステップ４０ｆによって発生された後に、ブラシストローク１４は復帰し、その点において、ペイントアプリケーション１２は、例えば、包絡線近似１７をカラー又はパターンで充填することが可能である。図７を参照すると、ブラシストロークプロセス１４は、以下のようにして、特定したラインセグメントの特定した側部から最も遠い１対の連続したブラシインスタンスにおける点を識別する。ブラシストロークプロセス１４は、ステップ４４ａにおいて、ラインセグメントの特定された側部から第一ブラシインスタンスの境界へ垂直のラインを描画する。図８に示したように、ラインセグメント７８がラインセグメント７４ａの左側に対して垂直に描画される。ブラシストロークプロセス１４は、ステップ４４ｂにおいて、第一候補点として、垂直のラインセグメント７８のうちの最も長いものへ接続されている第一ブラシインスタンス上の点を選択する。図８に示したように、点８０ａと接触するラインセグメントがラインセグメント７８のうちの最も長いものであり、従って、点８０ａが第一候補点として選択される。
【００２５】
ブラシストロークプロセス１４は、ステップ４４ｃにおいて、第二のラインを描画し且つステップ４４ｄにおいて上述したのと同一の態様で第二ブラシインスタンス上の第二候補点を選択する。ブラシストロークプロセス１４は、ステップ４４ｅにおいて、第一及び第二候補点の間に新たなラインセグメントを描画し、且つこの新たなラインセグメントを使用してプロセス４４ａ−４４ｄを繰り返し行ってステップ４４ｆにおいて新たな第一候補点と新たな第二候補点とを識別する。この新たな第一候補点及び前の候補点がステップ４４ｇにおいて比較される。新たな第一候補点が第一候補点と異なっているか又は新たな第二候補点が第二候補点と異なっている場合には、プロセス４２ｆがステップ４４ｉにおいて該新たな第一候補点を第一候補点として且つ該新たな第二候補点を第二候補点として割り当て、且つプロセス４４ｅ−４４ｇが繰り返される。
【００２６】
該新たな第一及び第二候補点が第一及び第二候補点と同じである場合には、ブラシストロークプロセス１４はステップ４４ｈにおいて該第一及び第二候補点をラインセグメントの指示された側部から最も遠い点として識別する。図５に示したように、点８０ａ及び８０ｂはラインセグメント７４ａの左側に対して最も遠いものとして識別され、且つ点８０ｂ及び８０ｃはラインセグメント７４ｂの左側において最も遠いものとして識別される。
【００２７】
プロセス４４ｅ−４４ｉのシーケンスは自然に終了することなしに繰り返す可能性がある。この可能性を回避するために、ブラシストロークプロセス１４は、それが所定の回数を超えて繰り返した後にループを終了し且つ軌跡６０からラインセグメントの端点のうちの１つを取り除くことが可能である。
【００２８】
図９を参照すると、ブラシストロークプロセスは、ステップ４２ｇにおいて、ステップ４２ｆにおいて識別された点を接続させて以下のようにして包絡線近似の１つの側部を形成する。ｂk-1,w及びｂk,xが、夫々、ライン（ｂk-1,w，ｂk,x）の左側において最も遠くに存在しているｂk-1,j及びｂk,jの点であるとする。例えば、図５に示したように、点ｂk-1,wが点８０ａであり且つ点ｂk,xが点８０ｂである。何故ならば、点８０ａ及び８０ｂは、夫々、ラインセグメント７４ａの左側において最も遠くに存在しているブラシインスタンス７６ａ及び７６ｂの点だからである。同様に、点ｂk,yが点８０ｂであり且つ点ｂk-1,zが点８０ｃである。何故ならば、点８０ｂ及び８０ｃは、夫々、ラインセグメント７４ｂの左側において最も遠くに存在しているブラシインスタンス７６ｂ及び７６ｃの点だからである。
【００２９】
ステップ４６ａにおいて、点ｂk,xがｂk,yと同じ点であると、ブラシストロークプロセス１４はステップ４６ｂにおいて点ｂk-1,wを点ｂk,xへ接続させ且つステップ４６ｃにおいて、点ｂk,xを点ｂk-1,zへ接続させる。図５は、ｂk,xがｂk,yと同一の点である場合の例であり、その結果ラインセグメント８２ａ及び８２ｂが得られる。
【００３０】
ステップ４６ｄにおいて、点ｂk,xがｂk,yと同一の点ではないが、ブラシインスタンス７６ａ，７６ｂ，７６ｃが同様の相対的な配向状態を有している場合には、ブラシストロークプロセス１４はステップ４６ｅにおいて点ｂk-1,wを点ｂk,xへ接続し、ステップ４６ｆにおいて、点ｂk,x及びｂk,yの間の全ての点を接続し、且つステップ４６ｇにおいて点ｂk,yを点ｂk+1,zへ接続させる。図１０は点ｂk,xがｂk,yと同一の点ではないが、ブラシインスタンス８４ａ−８４ｃが同様な相対的な配向状態を有している場合の例であって、その結果ラインセグメント８６ａ−８６ｃが得られる。点ｂ，ｘとｂk,yとの間のブラシインスタンス８４ｂ上に付加的な点が存在している場合には、これらの点は接続される。
【００３１】
ブラシストロークプロセス１４は、以下の条件、即ち、
ａｎｇｌｅ（ｂk,x−ｂk-1,w，ｂk+1,z−ｂk,y）＜０    （式１）
の条件が満足される場合にのみ、３個のブラシインスタンスがｔkにおいて同様の相対的な配向状態を有しているものとみなす。
【００３２】
ベクトルａ及びｂの場合には、関数ａｎｇｌｅ（ａ，ｂ）はａ及びｂとの間の符号付きａｎｇｌｅ（角度）として定義される。
【００３３】
ａｎｇｌｅ（ａ，ｂ）ｓｉｇｎ（ｃｒｏｓｓ（ａ，ｂ））＊ａｃｏｓ（ｄｏｔ（ａ，ｂ）／（｜ａ｜｜ｂ｜））                            （式２）
式２における関数ｃｒｏｓｓ（ａ，ｂ）は、ベクトルａ及びｂのクロス積を計算する。式２における関数ｓｉｇｎ（ｃｒｏｓｓ（ａ，ｂ））は、ａ及びｂのクロス積の符号を計算し、その結果＋１又は−１のいずれかのスカラー値となる。式２における関数ｄｏｔ（ａ，ｂ）は、ベクトルａ及びｂの内積を計算し、それはスカラー値である。式２における値｜ａ｜及び｜ｂ｜は、夫々、ベクトルａ及びｂの大きさを表わす。式２における関数ａｃｏｓは、その引き数のアークコサイン（逆余弦）を計算する。式１の結果は、ベクトルａ及びｂの間の符号付き角度を表わす符号付きスカラー値を発生させることである。
【００３４】
判定基準４６ａ又は４６ｄのいずれも満足されない場合には、ブラシストロークプロセス１４はステップ４６ｈにおいて点ｂk-1,wを点ｂk,xへ接続し、ステップ４６ｉにおいて点ｂk,xを点ｂk,yへ接続し、且つステップ４６ａにおいて点ｂk,yを点ｂk+1,zへ接続させる。図１１はこの場合を示している。ｂk,xとｂk,yとの間のどの点も接続されることはない。何故ならば、それらは、包絡線の内側に存在しており、従って、余分なものだからである。点ｂk,x及びｂk,yはステップ４６ｋにおいてブレーク点としてマーク付けされる。プロセス４６ａ−２５８において点を接続させることによって形成されるラインセグメントが、ステップ２６２において、包絡線近似１７へ付加される。
【００３５】
図１２を参照すると、図５に示したブラシ１５及び軌跡６０に対応するその結果得られる包絡線近似１７はラインセグメント８２ａ，８２ｂ，８２ｃ，８２ｄを包含している。
【００３６】
あるペイントアプリケーション１２は、包絡線近似１７に対して曲線当て嵌め技術を適用し、包絡線近似１７に対応する滑らかな曲線を発生させることが可能である。好適な技術について図１４Ａ−１９に関連して以下に説明する。このような場合には、ブラシストロークプロセス１４は「ショートカット最適化」と呼称されるプロセスを使用して包絡線近似１７の所定の距離より小さな範囲内にある包絡線から点を削除することが可能である。例えば、図１３Ａを参照すると、距離ｄ２が所定のスレッシュホールドより小さい場合には、包絡線近似１７から点ｂk,yが削除され、且つ距離ｄ１が所定のスレッシュホールドより小さい場合には、包絡線近似１７から点ｄk,xが削除される。包絡線近似１７から１つの点が削除されると、その削除された点に先行する点がその削除された点に続く点へ接続される。例えば、点ｂk,yが包絡線近似１７から削除されると、点ｂk-1,wが点ｂk,xへ接続される。点ｂk,y及びｂk,xの両方が包絡線近似１７から削除されると、点ｂk-1,wが点ｂk+1,zへ接続される。図１３Ｂに示したように、長い軌跡９０は鋭利な角部９６を有している。軌跡９０に対応する包絡線近似の２つの側部９２ａ−９２ｂのうちの１つは、ショートカット最適化によって削除される可能性のあるラインセグメント９４を包含している。
【００３７】
ペイントアプリケーション１２が包絡線近似１７に対して曲線当て嵌め技術を適用すると、ブラシストロークプロセス１４は、その曲線当て嵌めプロセスを助けるために、包絡線内の各ラインセグメントの勾配を包絡線近似１７内に格納することが可能である。ショートカット最適化が包絡線近似１７に対して上述した如く適用されると、ショートカット最適化が行われた後に勾配の格納が行われる。
【００３８】
曲線平滑化
図１４Ａ乃至１４Ｃを参照すると、複数個の点からなるオリジナルの開いたシーケンスに対する曲線平滑化の適用が示されている。複数個の点からなるオリジナルのシーケンスの１つの発生源は、上述した包絡線発生プロセスから与えることが可能である。図１４Ａにおいて、複数個の点１００からなるオリジナルのシーケンスはユーザによる描画所作に応答して対話的グラフィックシステムにおける入力として受取られた複数個の点からなる順番付けされたシーケンスである。このオリジナルのシーケンス１００に対してノイズフィルタを適用し、高周波数ノイズを除去し、複数個の点１０５からなるフィルタしたシーケンスを発生させることが可能である。ノイズフィルタは高周波数変動（即ち、ノイズ）を除去し一方より低い周波数の曲線特徴部を保存する。フィルタしたシーケンス１０５を１個又はそれ以上のセグメントへ分割する。各フィルタした点において曲率を評価することによって、フィルタしたシーケンスにおいて角部の点が見つけられる。図１４Ａにおいて、フィルタしたシーケンス１０５において１個の角部の点１１０が存在している。フィルタした点１１５からなる第一セグメントがシーケンス１００の端点１２０から角部の点１１０へ延在している。第二セグメント１２５は、角部の点１１０から第二端点１３０へ延在している。この図において、シーケンス１００及び１０５の点及び複数個の点からなるその他のシーケンスの点はラインセグメントによって接続して示してある。このことは、説明の便宜上のためにのみなされたものであり、ラインセグメントは複数個の点からなるシーケンスの要素ではない。
【００３９】
各セグメントを図１４Ｂに示したように平滑化させる。フィルタした点１１５からなる第一セグメントを平滑化して複数個の点１３５からなる第一平滑化セグメントを発生させる。フィルタした点１２５からなる第二セグメントを平滑化させて第二平滑化セグメント１４０を発生させる。平滑化したセグメント１３５，１４０はフィルタしたシーケンス１０５よりも一層滑らかである。
【００４０】
図１４Ｃに示したように、これらの平滑化させたセグメントに対して曲線を当て嵌める。試行的曲線を形成し且つその試行的曲線の該平滑化したセグメントに対する忠実性を評価する。その試行的曲線が平滑化したセグメントに対して十分に忠実なものではない場合には、その平滑化したセグメントを複数個のサブセグメントへ分割し、且つ各サブセグメントに対して曲線当て嵌めプロセスを繰り返し行う。従って、第一平滑化セグメント１３５をブレーク点１４７，１５２，１５７によって分離された４個の曲線１４５，１５０，１５５，１６０へ分割する。第二平滑化セグメント１４０は第一平滑化セグメント１３５よりも一層簡単であり、従って第一曲線１６５が第二平滑化セグメント１４２に対して当て嵌めることが可能である。曲線１４５，１５０，１５５，１６０，１６５は、一体となって、複数個の点１００からなるオリジナルのシーケンスを表わす。
【００４１】
図１４Ｄ，１４Ｅ，１４Ｆを参照すると、複数個の点からなる閉じたシーケンスに対するプロセスが示されている。全体的なプロセスは開いたシーケンスのものと異なるものではない。平滑化の詳細は、以下に説明するように、コーナー即ち角部がない閉じたシーケンスに対して異なっている。図１４Ｄは複数個の点１７０からなるオリジナルのシーケンス及びそのオリジナルのシーケンス１７０に対してノイズフィルタを適用することによって発生された複数個の点１７５からなるフィルタしたシーケンスを示している。フィルタしたシーケンス１７５において角部の点は存在していない。従って、複数個の点からなる１個のセグメントが存在している。該セグメントは複数個の点からなる閉じたシーケンスである。説明の便宜上、オリジナルのシーケンス１７０が開始する点１８０を該セグメントの第一端点及び第二端点の両方として取扱う。図１４Ｅは複数個の点１７５からなるフィルタしたシーケンス及び図１４Ｄに示した複数個の点１８０からなるセグメントを平滑化させることによって発生された複数個の点１８５からなる平滑化したセグメントを示している。図１４Ｆは端点１８０を平滑化させることから派生されたブレーク点１９２及びブレーク点１９４によって分離されている２個の曲線１９０，１９５へ分割されている複数個の点１８５からなる平滑化したセグメントを示している。これら２つの曲線１９０，１９５は複数個の点１７０からなるオリジナルのシーケンスの表現を形成している。
【００４２】
図１５を参照すると、複数個の点からなるシーケンスに対して曲線を当て嵌める方法２００は、複数個の点２０２からなるオリジナルのシーケンスを受取るシステムを包含している。複数個の点２０２からなるオリジナルのシーケンスは複数個の点からなる順番付けされているシーケンスである。該システムはユーザのフリーハンドの所作に応答してマウス又はグラフィクタブレット等のユーザ入力装置からの入力としてオリジナルのシーケンスを受取ることが可能である。一方、複数個の点２０２からなるオリジナルのシーケンスは、データファイル、コンピュータソフトウエアアプリケーション、又は信号処理システム等の供給源から供給することが可能である。
【００４３】
該システムは、オプションとして、複数個の点２００からなるオリジナルのシーケンスに対してノイズフィルタを適用し、フィルタした複数個の点からなるシーケンスを発生させる（それは、フィルタしたシーケンスとも呼称することが可能である）（ステップ２０５）。ノイズフィルタ処理の１つの利点は、例えばスパイク等の複数個の点の間における大きな急激な孤立した変動を取除くことである。これらの極端な変動は複数個の点からなるオリジナルのシーケンスを入力する場合のユーザのエラーの結果であるか、又は崩壊したか又はノイズを有するデータである蓋然性が高く、従ってこれらの点を曲線当て嵌めのために維持することは通常は望ましいことではない。
【００４４】
適切且つ有益的なノイズフィルタの１つは、Ｇ．  Ｔａｕｂｉｎ、Ｔ．  Ｚｈａｎｇ、Ｇ．  Ｇｏｌｕｂ著「フィルタ設計としての最適な表面平滑化（Ｏｐｔｉｏｎａｌ  Ｓｕｒｆａｃｅ  Ｓｍｏｏｔｈｉｎｇ  ａｓ  Ｆｉｌｔｅｒ  Ｄｅｓｉｇｎ）」、テクニカルレポートＲＣ−２０４０４、ＩＢＭリサーチ、１９９６年３月の文献において導入されているローパスλ−μフィルタに基づくものであって、尚その文献は引用によって本明細書に取込む。このノイズフィルタの具体例は、
ｆd（ｋ）＝（（１−λｋ）（１−μｋ））d/2
によって与えられる伝達関数ｆd（ｋ）を有する次数ｄのλ−μフィルタとしてのものであり、周波数ｋ、０≦ｋ≦２、０≦λ＜−μ、及びｄは偶数である。λ及びμは、
ｆ2（ｐ）＝１
ｆ2（２）＝ｈ
がパスバンド周波数ｐ、０＜ｐ＜１及び高周波数許容値ｈ、０≦ｈ≦１に対して成立するように定義される。パスバンド即ち通過帯域はｋ＝０からｋ＝ｐへ延在しており、尚ｆd（ｋ）≒１である。ｋがｋ≒ｐからｋ＝２へ増加すると、ｆd（ｋ）は単調的にｈd/2へ減少する。従って、次式が得られる。
【００４５】
【数１】
0004312295.tif 000002
ｐ，ｈ，ｄに対する値は予測されたノイズスペクトルと共に変化する場合がある。デジタル化マウス及びグラフィックテーブルからの入力として受取った複数個の点からなるオリジナルシーケンスの場合には、ｐ≒１／１０、ｈ≒＜１／１０及びｄ≒４は忠実性を殆ど失うことなしに良好な結果を発生する。
【００４６】
ノイズフィルタ処理は、オリジナルのシーケンスに関し複数回のパスで実施される。オリジナルのシーケンスはｎ個の点を有しており且つｓとして示され、且つ各点はｓiとして示され、尚ｉ＝１，．．．，ｎ−１である。伝達関数ｆdｋの次数ｄに等しい回数のパスが、以下の如くにして、ｊ＝１，．．．，ｄに対して実施される。
【００４７】
ｓi0＝ｓi
ｓij＝ｓij-1−λ△ｓij-1          尚、ｊは奇数、
ｓij＝ｓij-1−μ△ｓij-1          尚、ｊは偶数。
【００４８】
オリジナルのシーケンスｓの離散的ラプラシアン（ラプラス演算子）△ｓは以下の如くに定義される。
【００４９】
△ｓi＝ｓi−（ｓi-1＋ｓi+1）／２
オリジナルのシーケンスｓが複数個の点からなる閉じたシーケンスである場合には、インデックスｉ，ｊは上述したノイズフィルタ処理用の式におけるインクリメントされ且つデクリメントされるモジュロｎである。オリジナルのシーケンスｓが開いたシーケンスである場合には、
△ｓn-1＝０
△ｓ0＝０
であり、従ってオリジナルのシーケンスの端点の位置は不変のままである。
【００５０】
本システムは、複数個の点からなるシーケンス（上述した如くノイズに対してフィルタする場合もしない場合もある）を１個又はそれ以上のセグメントへ分割する（ステップ２１０）。そうするために、本システムは複数個の点からなるシーケンスにおけるブレーク点を見つけ出す。該シーケンスの各端点はブレーク点である。角部の点もブレーク点である。
【００５１】
角部の点は、高い推定曲率を有する複数個の点からなるシーケンスにおける点である。図１６に示したように、複数個の点からなるシーケンスにおいて角部の点を見つけ出すための方法３００を実施する場合に、システムが順番付けされているシーケンスにおける点３０２に先行する点３０２のある距離内の点に対する平均角度、及び順番付けされているシーケンスにおける点３０２に続く同一の距離内の点に対する平均角度を計算する（ステップ３０５）。一方、その距離は先行する点及び後続する点に対して異なるものとすることが可能である。複数個の点からなるグループに対する平均角度は、オリジナルの点３０２を介しての基準ラインと相対的な各点からの角度を平均化することによって計算される。点３０２に対する推定曲率は、これらの平均角度を比較することによって計算される（ステップ３１０）。本システムは、点３０２に対する推定曲率を曲率許容値と比較する（ステップ３１５）。曲率許容値より大きいか又はそれに等しい推定曲率を有する点は角部の点である（ステップ３２０）。曲率許容値より小さな推定曲率を有する点は角部の点ではない（ステップ３２５）。
【００５２】
角部を見つけ出す１つの具体例は、Ｋ．  Ｉｔｏｈ及びＹ．  Ｏｈｏ著「キャラクタフォントに対する曲線当て嵌めアルゴリズム（Ａ  Ｃｕｒｖｅ  Ｆｉｔｔｉｎｇ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｃｈａｒａｃｔｅｒ  Ｆｏｎｔｓ）」、エレクトロニックパブリシング、６（３）：１９５−２０６、１９９３年９月の文献における方法に基づくものであり、尚該文献は引用によって本明細書に取込む。この具体例においては、オリジナルのシーケンスにおける各点ｓiにおける推定曲率ｃi、−１≦ｃi≦１は次式のように定義される。
【００５３】
ｃi＝（ａi・ｂi）／（｜ａi｜｜ｂi｜）
尚、ベクトルａi及びｂiは点ｓiとｓiの有界弦長内の先行する点ｓx及び後続する点ｓyの間の正規化にしたベクトル差の和である。点ｓiのオリジナルのシーケンスが開いたシーケンスである場合には、ａi及びｂiは次式の如くに定義される。
【００５４】
【数２】
0004312295.tif 000003
尚、角部の弦長許容値ｌに対し、ｌx+1＞ｌi−ｌであるように０≦ｘ＜ｉであり、且つｌy-1＜ｌi＋ｌであるようにｉ＜ｙ≦ｌ−１である。各点ｓiに対する弦長ｌiは次式の如くに定義される。
【００５５】
ｌi＝ｌi-1＋｜ｓi−ｓi-1｜
ｌ0＝０
オリジナルのシーケンスが閉じたシーケンスである場合には、ａi及びｂiは同様の弦長有界インデックスｘ，ｙモジュロｎの範囲にわたる。
【００５６】
従って、ｃi≧ｃである場合のオリジナルの点ｓiは、角部角度許容値ｃに対して角部の点として定義される。ｌ＞≒ｆ及びｃ≒ｃｏｓ（２π／３）の値は、通常良好な結果を発生し、尚ｆは曲線の当て嵌めに関して後に説明する忠実性許容値である。
【００５７】
本システムは各セグメントを平滑化する（ステップ２１５）。この平滑化技術は、そのセグメントが複数個の点からなる閉じたシーケンスであるか又は開いたシーケンスであるかに依存して異なるものである。セグメントを平滑化すると中程度又はより高い周波数の曲率変動を取除き、一方低い周波数の変動を保存する。その結果得られる平滑化されたセグメントは１つ又はそれ以上の曲線と効率的に当て嵌めることが可能である。
【００５８】
オリジナルのシーケンスが閉じたシーケンスであり且つオリジナルのシーケンス内に角点が存在しない場合には閉じたシーケンスのセグメントが発生する（図１４ｄ乃至１４ｆ参照）。
【００５９】
図１７Ａを参照すると、複数個の点からなる閉じたセグメントである（ステップ４０２）セグメントを平滑化する方法４００を実施する場合に、システムが該セグメントの周波数−空間表現を計算する（ステップ４０５）。この周波数−空間表現は、該セグメントの離散的フーリエ変換を取ることによって計算される。本システムは、該セグメントの周波数−空間表現を平滑化する（ステップ４１０）。該周波数−空間表現は、該周波数−空間表現に対してローパスフィルタを適用することによって平滑化される。本システムはその平滑化された周波数−空間表現を反転させる（ステップ４１５）。その平滑化された周波数−空間表現はその平滑化された周波数−空間表現の逆離散的フーリエ変換を取ることによって反転される。その反転され平滑化された周波数空間表現は平滑化されたセグメント４２０である。
【００６０】
図１７Ｂを参照すると、複数個の点４５２からなる開いたセグメントであるセグメントを平滑化するための方法４５０を実施する場合に、システムがセグメント４５２から線形傾向を減算する（ステップ４５５）。本システムは、減算したセグメントの周波数−空間表現を計算する（ステップ４６０）。その周波数−空間表現は、該セグメントの離散型正弦変換を取ることによって計算される。その減算されたセグメントの端点は不変量として保持され、従って離散型正弦変換は所望の結果を発生する。本システムは該減算したセグメントの周波数−空間表現を平滑化する（ステップ４６５）。その周波数−空間表現は、該周波数−空間表現に対してローパスフィルタを適用することによって平滑化される。本システムは平滑化された周波数−空間表現を反転させる（ステップ４７５）。その平滑化された周波数−空間表現は、その平滑化された周波数−空間表現の逆離散型正弦変換を取ることによって反転される。本システムは前に減算した線形傾向をその反転され平滑化された周波数−空間表現へ加算して平滑化されたセグメント４８０を形成する（ステップ４７５）。
【００６１】
複数個の点からなるセグメントを平滑化させる１つの具体例は、Ｊ．  Ｏｌｉｅｎｓｉｓ著「収縮のない局所的再現性のある平滑化（Ｌｏｃａｌ  Ｒｅｐｒｏｄｕｃｉｂｌｅ  Ｓｍｏｏｔｈｉｎｇ  Ｗｉｔｈｏｕｔ  Ｓｈｒｉｎｋａｇｅ）、ＩＥＥＥ・トランズアクションズ・オブ・パターン・アナリシス・アンド・マシンインテリジェンス、１５（３）：３０７−３２３、１９９３年３月の文献に記載されている方法に基づくものであり、尚、該文献は引用によって本明細書に取込む。更に、該平滑化技術は上述したＴａｕｂｉｎ著「フィルタ設計としての最適な表面平滑化」の文献に提案されている態様に拘束される。この具体例においては、セグメントの全体的なスペクトルパワーの減少は平滑化許容値Ｓによって拘束されており、尚Ｓは小さな数である。
【００６２】
ｍ個の点からなる閉じたセグメントｔz、ｚ＝０，．．．，ｍ−１の場合には、セグメントｔzの離散型フーリエ変換を取ってそのセグメントの周波数−空間表現ｔz＿を形成する。尚、英文字記号の後にアンダーラインの符号を付けたものはその英文字記号の上に「山形記号」即ち「∧」（アクサンシルコンフレックス）を付けたものと同一である。周波数−空間表現ｔz＿は以下の如くに定義される。
【００６３】
【数３】
0004312295.tif 000004
この表現はセグメントｔzを上に定義したラプラス演算子の固有ベクトルの線形結合で表現したものである。各サンプルｔz＿に対し、νZがこの分解においてｔz＿と関連した固有ベクトルの対応する固有値であるとする。νzは次式のように定義される。
【００６４】
【数４】
0004312295.tif 000005
平滑化したセグメントｕZの周波数−空間表現ｕz＿は以下の如くにして平滑化フィルタを適用することによって計算される。
【００６５】
【数５】
0004312295.tif 000006
ローパス伝達関数ｇは以下のように定義される。
【００６６】
ｇ（ν）＝１        ν＜νwの場合
ｇ（ν）＝ｇ0      ν＝νwの場合
ｇ（ν）＝０        ν＞νwの場合
但し、周波数０≦ν≦２であり、定数ｗ及びｇ0は、１≦ｗ≦ｍ−１及び０＜ｇ0≦１であるように選択される。ｗ及びｇ0の値は、ｇが平滑性許容値Ｓによってｔz＿内に存在する全体的な非ＤＣ（即ち、非直流）スペクトルパワーを減少させ、従って以下の式が成立するように選択される。
【００６７】
【数６】
0004312295.tif 000007
平滑化したセグメントの周波数−空間表現ｕz＿の逆離散型フーリエ変換を取って平滑化したセグメントｕzを形成する。
【００６８】
ｍ個の、ｚ＝０．．．，ｍ−１からなる開いたセグメントｔzの場合には、セグメントｔz内の線形傾向を減算して以下の如くにして減算したセグメントｔ′Zを形成する。
【００６９】
【数７】
0004312295.tif 000008
減算したセグメントｔ′Zの離散型正弦変換を取って減算したセグメントの周波数−空間表現ｔ′z＿を形成する。周波数−空間表現ｔ′z＿は以下の如くに定義される。
【００７０】
【数８】
0004312295.tif 000009
この表現はセグメントｔ′zを上に定義したラプラス演算子の固有ベクトルの線形結合によって表わしている。各サンプルｔ′z＿に対して、νzをこの分解におけるｔ′z＿と関連する固有ベクトルの対応する固有値とする。νzは次の如くに定義される。
【００７１】
νz＝１−ｃｏｓ（πｚ／（ｍ−１））
νm-1＝０
平滑化したセグメントｕ′zの周波数−空間表現ｕ′z＿は以下の如くにして平滑化フィルタを適用することによって計算される。
【００７２】
【数９】
0004312295.tif 000010
ローパス伝達関数ｇは次のように定義される。
【００７３】
ｇ（ν）＝１        ν＜νwの場合
ｇ（ν）＝ｇ0      ν＝νwの場合
ｇ（ν）＝０        ν＞νwの場合
但し、周波数０≦ν≦２であり、定数ｗ及びｇ0は、１≦ｗ≦ｍ−１及び０＜ｇ0≦１であるように選択される。ｗ及びｇ0の値は、ｇが平滑性許容値Ｓによってｔ′z＿内に存在する全体的なスペクトルパワーを減少させ、従って次式が成立するように選択される。
【００７４】
【数１０】
0004312295.tif 000011
平滑化したセグメントｕ′z＿の周波数−空間表現の逆離散型正弦変換を取って減算したセグメントｕ′zを形成する。前に減算した線形傾向をｕ′zへ加算して平滑化したセグメントｕzを形成する。
【００７５】
１つの具体例においては、Ｏ（ｎ  ｌｏｇ  ｎ）高速フーリエ及び正弦変換アルゴリズムを利用するために、２の羃に等しい数の点を有するために充分な数の隣接する点の間に線形補間によってセグメントをアップサンプルする。
【００７６】
本システムは、１つ又はそれ以上の曲線を各平滑化したセグメントに対して当て嵌める（図１５におけるステップ２２０）。図１８を参照すると、平滑化したセグメント５０５に対する曲線を当て嵌める方法５００において、システムが平滑化したセグメント５０５に対する試行的曲線を計算する（ステップ５１０）。その試行的曲線は複数個の点からなるシーケンスではなく数学的に定義された直線である。１つの具体例においては、該試行的曲線はパラメトリック曲線又はベジェ曲線である。本システムは、平滑化したセグメント５０５に対する該試行的曲線の忠実性基準を計算する（ステップ５１５）。平滑化したセグメント内の全ての点に対して、忠実性許容値より小さいか又はそれに等しい距離内にある試行的曲線上に１つの点が存在する場合には、その忠実性基準が満足される。その忠実性基準が満足されると、その試行的曲線は平滑化したセグメント５０５に対して充分な忠実性を有しており、且つ本システムはその試行的曲線を平滑化したセグメント５０５を表現するものとして格納する（ステップ５２０）。その忠実性基準が満足されない場合には、本システムは平滑化したセグメント５０５を２個又はそれ以上のサブセグメントへ分割する（ステップ５２５）。次いで、本システムは各サブセグメントに対して曲線当て嵌めプロセスを適用する（ステップ５３０）。
【００７７】
図１９を参照すると、平滑化したセグメント６１２上の点６１０及び試行的曲線６０５に対する忠実性基準を計算するための方法６００において、システムが試行的曲線６０５をサンプリングすることによって複数個の試行的点からなるシーケンスを発生する。その試行的曲線は、試行的曲線６０５に対する連続する点の間の弦からの矢状距離が平坦性許容値を超えることがないように試行的曲線をサンプリングする。本システムは、平滑化したセグメント６１２の第一端点（不図示）からの点６１０の正規化した距離を見つけ出す。点６１０の正規化した距離は平滑化したセグメントの端点と相対的な平滑化したセグメント６１２上の点６１０の位置、例えば１０％、５０％等を表わす。同様に、該試行的曲線上の試行的点の正規化した距離は該試行的曲線上のその試行的点の相対的位置を表わす。次いで、本システムは、このような試行的な点が存在する場合には、試行的曲線６０５の第一端点（不図示）からの同一の正規化した距離である試行的な点を見つけ出す。このような試行的な点が見つかると、その試行的な点から点６１０への距離が忠実性許容値より小さいか又はそれに等しい場合には、忠実性基準が満足される。このような試行的な点が見つからない場合には、本システムは、夫々、平滑化したセグメント６１２における点６１０の正規化した距離より小さく且つそれより大きな試行的曲線６０５の第一端点からの正規化した距離である２つの連続した試行的な点６２０，６２５を見つけ出す。例えば、点６１０が５５％の正規化した距離を有している場合には（点６１０がセグメント６１２の第一端点から第二端点への距離の５５％であることを表わす）、本システムは２個の試行的な点を探し出し、その場合に１つの試行的な点は５５％未満の正規化した距離を有しており且つ１つの試行的な点は５５％より大きな正規化した距離を有している。本システムは２個の試行的な点６２０，６２５の間の弦６３５を計算する。本システムは平滑化したセグメント６１２における点６１０に最も近い弦６３５上の弦点６４０を見つけ出す。別の具体例においては、弦点６４０は平滑化したセグメント６１２における点６１０の正規化した距離と同一の試行的曲線６０５の第一端点からの正規化した距離である弦６３５上の点である。以下のうちのいずれかが成立する場合に忠実性基準が満足される。即ち、（１）平滑化したセグメント内の点６１０から試行的な点６２０への距離が忠実性許容値から小さいか又は等しい場合、（２）平滑化したセグメントにおける点６１０から試行的な点６２５への距離が忠実性許容値より小さいか又は等しい場合、（３）弦点６４０からの距離が忠実性許容値の割合であって、平坦性許容値に基づいている割合より小さいか又は等しい場合である。
【００７８】
曲線の当て嵌めの１つの具体例は、Ｔ．  Ｔｕｄｅｔ著「手でスケッチした圧力ブラシストロークの実時間当て嵌め（Ｒｅａｌ  Ｔｉｍｅ  Ｆｉｔｔｉｎｇ  ｏｆ  Ｈａｎｄ−Ｓｋｅｃｈｅｄ  Ｐｒｅｓｓｕｒｅ  Ｂｒｕｓｈｓｔｒｏｋｅｓ）」、ユーログラフィックスプロシーディングズ、１３（３）：２０５−２２０、１９９４年の文献に記載されている方法に基づくものであり、尚該文献は引用によって本明細書に取込む。この具体例においては、本システムが忠実性許容値ｆに対し端点の弦長θ≒２ｆ内の平滑化したセグメント内における全ての点にわたり局所的二次補間を使用して平滑化したセグメントの端点における接線ベクトルの推定を計算する。本システムは、正規化した弦長パラメータ化で最小二乗法を使用して平滑化したセグメントに対して拘束された端点及び接線を有する試行的な曲線としてベジェ（Ｂｅｚｉｅｒ）セグメントを当て嵌める。接線連続性拘束条件はＭ．  Ｐｌａｓｓ及びＭ．  Ｓｔｏｎｅ著「部分的パラメトリック曲線での曲線の当て嵌め（Ｃｕｒｖｅ−Ｆｉｔｔｉｎｇ  ｗｉｔｈ  Ｐｉｅｃｅｗｉｓｅ  Ｐｒａｍｅｔｒｉｃ  Ｃｕｒｖｅｓ）」、グラフィックスプロシーディングズ、アニュアル・コンフェレンス・シリーズ、１７（３）：２２９−２３９、１９８３年７月の文献に記載されている方法を使用してｘ成分とｙ成分の両方を同時的に当て嵌めることによって取扱う。
【００７９】
この具体例においては、本システムは以下の技術を使用して当て嵌めの忠実性を評価する。上述した如く、当て嵌めが充分に忠実なものでない場合には、平滑化したセグメントを２つの部分へ細分化し且つ全体的な平滑化したセグメントが満足のいくように当て嵌められるまで、両方のサブセグメントに関して該技術を反復的に繰り返す。
【００８０】
従って、γ個の点からなる平滑化したセグメントφψ、ψ=0,...,γ-1が与えられ、且つ弦長θψ及び試行的な曲線b(T)が与えられると、全てのφψに対して、忠実性許容値fに対し|φψ-b(Ti）｜≦ｆであるようにＴi、０≦Ｔi≦１、が存在する場合には、その当て嵌めは充分に忠実なものである。特に、このテストは以下のようにして実現される。
【００８１】
本システムは、平坦性εｆ、尚０＜ε＜１、内における試行的曲線ｂ（Ｔ）の多角形近似を計算する。該多角形近似は弦長Θω、尚ω=0,...,α-1、を有するα個の点Φωから構成されている。平滑化したシーケンスにおける各点φψに対し、Φωψは、
【数１１】
0004312295.tif 000012
であるように多角形近似におけるユニークな点であり、尚、Ωωψは点φψに最も近いΦωψ及びΦωψ+1を介してのライン上の点である。尚、本明細書において、ギリシャ文字記号のギリシャ文字の添え字が2個連続している添え字の場合には、2番目の添え字が1番目の添え字の添え字であることに注意すべきである。
【００８２】
多角形近似及び三角不等式の定義により、ｂ（Ｔ）は、平滑化したセグメントの全ての点φψに対し、以下の条件のうちのいずれかが成立する場合には、忠実なものであり上述した忠実性基準を満足するものである。
【００８３】
【数１２】
0004312295.tif 000013
尚、ΩωψはΦωψ及びΦωψ+1の間の弦上に存在している。
【００８４】
Ｐｕｄｅｔによって記載されている終了テストと同様に、この技術は、多角形近似の点Φω及び平滑化したセグメントの点φψを並列的にトラバースし、どれかの点φψに対して忠実性基準が満足されない場合にはすぐさま停止することによってワンパスで平滑化したセグメントにおける全ての点φψに対し効率的に実施することが可能である。
【００８５】
多角形近似の長さはεの平方根と逆に変化する。εの値を減少させることによって、より長い多角形近似を計算する付加された負担が、実際には試行的な曲線が満足のいくものである場合に、その試行的曲線が充分忠実なものではないと結論付けるより小さな蓋然性と利益衡量される。その結果、一般的に所望の結果を発生するためにはε≒１／１６の値が好適である。
【００８６】
曲線の編集
図２０Ａ乃至２０Ｇを参照すると、コンピュータグラフィックシステムにおいてスケッチを基にした編集の異なる側面が示されている。スケッチを基にした編集の１つの技術は、曲線の一部を置換曲線で置換させることである。別の技術はユーザの描画所作に応答して曲線の一部を平滑化させる。３番目の技術はスケッチを基にした編集をブラシストロークの編集へ適用する。曲線編集技術について、コンピュータグラフィックシステム具体例に関連して以下に説明するが、その場合に、ソフトウエアとハードウエアとの結合によって、システムはユーザ入力に応答して適宜の技術を実施する。１つの有益的な具体例においては、コンピュータグラフィックシステムがグラフィカルユーザインターフェース（ＧＵＩ）を提供し、それはユーザによって選択され且つ適用される場合に、曲線編集技術を実行することの可能な編集用のツールを提供している。
【００８７】
図２０Ａを参照すると、コンピュータシステム１０（図１）の具体例７００が示されている。システム１０は、ディスプレイ１８を有しており、例えば描画用タブレット２４及ぶスタイラス２６（図１）のような入力装置でユーザによって入力された曲線７０８をレンダリングさせる。システム７００はＧＵＩを介してユーザによって選択可能な種々の編集用ツールを提供する。該ツールは曲線編集ツール及び曲線平滑化ツールを包含している。これらのツールは、ブラシストローク編集及びブラシストローク平滑化ツールを包含することが可能であり、又曲線編集及び平滑化ツールはブラシストロークへ適用させて以下に説明するブラシストローク用の技術の結果を達成することが可能である。
【００８８】
図２０Ｂを参照すると、曲線７１０が示されている。曲線７１０（及び、図２０Ｃ乃至２０Ｇにおける図示）は図２０Ａに示した具体例７００のディスプレイ装置１８上に表示される。ユーザ、例えばアーチストが、曲線７１０の一部７１２を編集することを所望する場合がある。そのアーチストは曲線編集ツールを使用してアーチストが変更することを望む曲線７１０の部分７１２の近くにスケッチ曲線７１４を描画する。図２０Ｃに示したように、以下に説明するシステムの動作により、スケッチ曲線７１４が不所望の部分７１２を置換し且つ新たな曲線７１６が得られる。
【００８９】
図２０Ｄを参照すると、別の曲線７２０が示されている。この場合にも、アーチストが曲線７２０の一部７２５を変更することを望む場合がある。そのアーチストは平滑化ツールを使用して曲線７２０の不所望の部分７２５近くにスケッチ曲線７３０を描画する。図２０Ｅに示したように、曲線７２０の不所望の部分７２５は平滑化され、その結果新たな曲線７３５が得られ、それは、好適には、元の曲線７２０よりも一層滑らかなものである。
【００９０】
図２０Ｆを参照すると、ブラシストローク７４０が示されている。ブラシストローク７４０は軌跡曲線７４５及び包絡線曲線７５０を有している。該軌跡曲線はブラシストローク７４０がなぞった中心線を定義している。包絡線曲線７５０は１個又はそれ以上の曲線から構成されており且つユーザ入力装置からの種々の入力パラメータによって修正されることのあるモデルブラシ形状から形成される。アーチストがブラシストローク７４０の一部７５５を変更することを望む場合がある。そのアーチストはブラシストローク７４０近くにブラシストローク編集ツールでスケッチ曲線７６０を描画する。図２０Ｇに示したように、そのスケッチ曲線７６０は、以下に説明するシステムの動作によって、軌跡曲線７４５の一部７５５を置換する。本システムは、元のブラシストローク７４０からの包絡線情報及び新たな軌跡曲線７７０に基づいて新たな軌跡曲線７７０及び新たな包絡線曲線７７５を使用して新たなブラシストローク７６５を形成する。一方、軌跡曲線７４５の一部７５５は、図２０Ｄ及び２０Ｅに関して上述した如く平滑化させることが可能である。
【００９１】
図２１に示したように、既存の曲線のスケッチを基にした編集は６個の一般的なステップを有している。手始めに、アーチストが観察するために表示された既存の曲線又はブラシストロークに関連してユーザの対話が行われる（ステップ８００）。そのアーチストは描画用の所作を行い、それは例えばマウス又はグラフィックタブレット等のユーザ入力装置によって記録される。本コンピュータグラフィックシステムはこの所作を解釈してスケッチ曲線を発生する（ステップ８０５）。好適には、そのスケッチ曲線は、アーチストが所作を行うに従ってシステム内に表示し、アーチストに対して動的な視覚的フィードバックを与える。そのスケッチ曲線は数学的な曲線、複数個の点からなる順番付けされた組、又はアーチストの所作の内容を表わす何らかのその他の形態として本システム内において表現することが可能である。
【００９２】
本システムは既存の曲線内のターゲットセクションを見つけ出す（ステップ８１０）。該スケッチ曲線は２個の端点を有している。本システムは既存の曲線上の２個のターゲット点を見つけ出す。該ターゲット点は該スケッチ曲線の夫々の端点の各々に最も近い点である。好適には、該ターゲット点はユークリッド距離における修正端点に対して最も近い点である。該ターゲット点の間の既存の曲線のセクション（部分）はターゲットセクションである。スケッチ曲線は、本システムがスケッチ曲線を使用する前にオプションとして編集することが可能である（例えば、端部からフックを取除くため）。アーチストが１個を超える既存の曲線の近くにスケッチ曲線を描画する場合には、本システムは、好適には、スケッチ曲線に最も近い曲線を既存の曲線として選択する。一方、アーチストはシステムのユーザインターフェースを介して既存の曲線を選択する場合がある。従って、本システムは、スケッチ曲線により近いその他の既存の曲線が存在する場合であっても、その選択された曲線に対してターゲットセクションを決定する。
【００９３】
本システムは、既存の曲線のターゲットセクションを除去する（ステップ８１５）。実際の具体例においては、ディスプレイ又は既存の曲線情報を包含するいずれかのデータ構造から視覚的に除去又は削除することが必要なものではない。該ターゲットセクションは、本システムが既存の曲線のそのターゲットセクションが後のステップにおいて置換されるということを覚えているようにマーク付けされることが必要であるに過ぎない。
【００９４】
本システムは置換曲線を形成する（ステップ８２０）。アーチストが曲線編集ツールを選択し且つ使用する場合に、その置換曲線はターゲットセクションの付加的な変更なしのスケッチ曲線である。一方、アーチストが平滑化ツールを選択し且つ使用した場合には、本システムはターゲットセクションを平滑化し且つその結果平滑化されたターゲットセクションが置換曲線である。
【００９５】
ターゲットセクションを平滑化させるために多様な平滑化プロセスを使用することが可能である。好適な平滑化技術のうちの１つの例は図１４Ａ−１９に関連して上に説明している。然しながら、ターゲットセクションに対してフィルタを使用する等の別の平滑化技術を使用することが可能である。
【００９６】
好適な平滑化技術は複数個の点からなる順番付けされているシーケンスを平滑化させ且つその平滑化された複数個の点からなるシーケンスに対して曲線を当て嵌める。本システムはターゲットセクションを表わすために複数個の点からなる順番付けされているシーケンスを発生する。本システムは好適にはアンダーサンプリング及びオーバーサンプリングを回避する順番付けされているシーケンスに対する多数の点を選択する。この数を選択するために、本システムは候補数を選択する。本システムは候補数と等しい数の点で複数個の点からなる候補シーケンスを計算する。この候補シーケンスにおける点と点との間の間隔が最大間隔許容値を超える場合には、その候補数は低過ぎ且つ本プロセスはより高い候補数で繰り返す。その間隔が許容可能なものである場合には、本システムは候補シーケンス内の連続する点の間のラインを計算する。各ラインとそのラインを形成している２つの点の間のターゲットセクションとの間の距離が平坦性許容値を超える場合には、その候補数は低過ぎ且つ本プロセスはより高い候補数で繰り返す。複数個の点からなる順番付けされているシーケンスが形成されると、本システムは上述した平滑化プロセスに従って平滑化したターゲットセクションを形成する。
【００９７】
本システムはターゲットセクションの代わりに既存の曲線内に置換曲線を挿入する（ステップ８２５）。置換曲線はターゲットセクションを除去することによって形成された既存の曲線内の切除部内に正確に当て嵌まるものでない場合があるので、置換曲線と既存の曲線の端点の間にギャップが残存する場合がある。本システムは置換曲線の端点から既存の曲線上のターゲット点への距離が最小であるように置換曲線を配置させる。１つの具体例においては、該置換曲線は、該切除部に当て嵌められる場合に回転させず、水平方向又は垂直方向に変位させることが可能である。
【００９８】
該ギャップは整形によって充填される（ステップ８３０）。本システムは置換曲線と既存の曲線とを滑らかに連結させるためにスミ肉曲線を発生する。該整形が完了すると、編集が完了する。１つの具体例においては、Ｔ．  Ｂａｕｄｅｌ著「フリーハンド描画用のマークを基にした対話パラダイム（Ａ  Ｍａｒｋ−ｂａｓｅｄ  Ｉｎｔｅｒａｃｔｉｏｎ  Ｐａｒａｄｉｇｍ  ｆｏｒ  Ｆｒｅｅ−Ｈａｎｄ  Ｄｒａｗｉｎｇ）」、プロシーディングズ・オブ・ジ・ＡＣＭ・シンポジウム・オン・ユーザ・インターフェース・ソフトウエア・アンド・テクノロジィ、マリナデルレイ、カリフォルニア、ＡＣＭプレス、１９９４年１１月の文献に記載されている方法を使用して発生される。
【００９９】
図２２を参照すると、整形処理が示されている。本システムがターゲットセクションを計算すると、そのターゲットセクションに対する第一及び第二端点９００，９０２が既存の曲線９０４上において見つけられる。既存の曲線９０４上のターゲット端点９００，９０２と置換曲線９１０の挿入端点９０６，９０８との間にギャップが存在している。本システムは既存の曲線９０４と置換曲線９１０とを連結するスミ肉曲線９１２，９１４を発生する。滑らかなスミ肉曲線を発生するために、本システムは既存の曲線９０４及び置換曲線９１０から小さなセクションを除去し、ギャップを拡大させる。本システムは既存の曲線９０４上の第一整形点９１６を見つける。本システムは、置換曲線９１０上に第二整形点９１８を見つける。第一及び第二整形点９１６，９１８は、２個の端点９００，９０６の間の距離に基づいて決定されるそれらの夫々の端点９００，９０６からの距離である。本システムは、置換曲線９１０上の第三の整形点９２０を見つけ出す。本システムは、既存の曲線９０４上の第四の整形点９２２を見つけ出す。第一及び第二整形点９１６，９１８と同様に、第三及び第四整形点９２０，９２２及びそれらの夫々の端点９０８，９０２の間の距離はこれらの端点９０８，９０２の間の距離に基づいている。第一スミ肉曲線９１２が第一整形点９１６及び第二整形点９１２を連結する。第二スミ肉曲線９１４が第三整形点９２０及び第四整形点９２２を連結する。各スミ肉曲線９１２，９１４は、好適には、各端点９１６，９１８，９２０，９２２において端点接線連続性を有している。
【０１００】
既存の曲線及び置換曲線を整形する上で拡大処理が滑らかなスミ肉曲線を発生する。更に、ギャップを拡大させることによって、フック９２４等の置換曲線の端部における人工的な効果が除去される。フック９２４は、例えばストロークの終りにスタイラスがグラフィックタブレットから持ち上げられる場合等のアーチストによる意図しない所作によって発生される場合がある。
【０１０１】
図２３を参照すると、既存のブラシストローク１０００のスケッチを基にした編集用の技術が示されている。ブラシストロークを描画する技術を図１−１３に関連して上に説明してある。ブラシストロークは軌跡曲線と包絡線曲線とを有している。軌跡曲線はブラシストロークの中心線を画定する。包絡線曲線は、包絡線情報を軌跡曲線へ適用することによって形成される。包絡線情報は包絡線パラメータの１個又はそれ以上のアフィンマトリクスを有している。包絡線パラメータは、好適には、ユーザ入力装置から受取ったデータから計算される。該データは入力装置の移動速度、入力装置へ付与される圧力、入力装置の回転、入力装置の傾斜等の情報を包含することが可能である。グラフィックシステムのユーザは包絡線パラメータ内へのデータの変換を制御するためにシステム内のパラメータを設定することが可能である。各アフィンマトリクスは１個又はそれ以上の包絡線パラメータを包含している。該包絡線パラメータはブラシストロークグラフィックにおいて現実的なブラシ効果を形成するためにユーザによって選択されたブラシ形状に対するモデルブラシ形状に適用される。該包絡線パラメータはスケール、オフセット、回転等の情報を包含している。
【０１０２】
本システムは、スケッチ曲線を受取り（ステップ１００５）、且つ既存の軌跡曲線上にターゲットセクションを見つけ出す（ステップ１０１０）。上述した如く、該ターゲットセクションは第一ターゲット端点と第二ターゲット端点との間の既存の軌跡曲線のセクションである。第一ターゲット端点は、スケッチ曲線の第一端点に最も近い既存の軌跡曲線上の１つの点である。第二ターゲット端点は、スケッチ曲線の第二端点に最も近い既存の軌跡曲線上の点である。本システムは、既存の軌跡曲線から該ターゲットセクションを除去し（ステップ１０１５）、且つ置換曲線を形成する（ステップ１０２０）。アーチストによる選択に依存して、該置換曲線はスケッチ曲線であるか、又は上述した如くに平滑化されたターゲットセクションとすることが可能である。本システムは該置換曲線を該ターゲットセクションの代わりに既存の軌跡曲線内に挿入する（ステップ１０２５）。本システムは上述した如くに該置換曲線及び該既存の軌跡曲線を整形する（ステップ１０３０）。整形が完了した後に、該既存の軌跡曲線を編集して編集済の軌跡曲線を形成する。一方、該編集済の軌跡曲線は、従来技術において開示されているスケッチを基にした編集技術を使用して形成することが可能である。
【０１０３】
本システムは該包絡線曲線を編集して編集済の軌跡曲線と対応させ、新たな包絡線を形成する。本システムは、既存の軌跡曲線のターゲットセクションから及び編集済の軌跡曲線からの円弧長を使用して既存のアフィンマトリクスを線形補間することによって新たなアフィンマトリクスを形成する（ステップ１０３５）。編集済の軌跡曲線上の円弧長位置における新たなアフィンマトリクスに対して、本システムは編集済の軌跡曲線上の新たなアフィンマトリクスの円弧長位置に対応するターゲットセクション上のマトリクス位置を見つけ出す。本システムは、対応する既存のアフィンマトリクスを有するマトリクス位置に対して最も近い円弧長位置であり且つそのマトリクス位置の両側に存在している該ターゲットセクション上の２個のターゲット円弧長位置を見つけ出す。次いで、本システムは、新たなアフィンマトリクスを発生するために、該マトリクス位置に対してこれら２個のターゲット位置の相対的な距離に基づいてこれらのターゲット円弧長位置に対応する既存のアフィンマトリクスを線形補間する。本システムは、ブラシストロークが最初にエンターされた場合に新たな包絡線曲線がアーチストの当初の意図に従うものであることを確保するために、必要に応じて、ユーザ入力装置から受取ったデータからのデータを組込むことが可能である。
【０１０４】
本システムは、アフィンブラシストロークを描画する場合に上述した態様で編集済の軌跡曲線に対して新たなアフィンマトリクスを適用することによって新たな包絡線曲線を計算する（ステップ１０４０）。１つの具体例では、全体的な編集済軌跡曲線に沿って新たな包絡線を全体として計算する。別の具体例では、スケッチ曲線に対応する包絡線の部分に対して新たな包絡線を計算し、必要に応じて包絡線部分を平滑化する。新たな包絡線を計算した後に、編集済のブラシストローク１０４５が完成する。
【０１０５】
本発明は、デジタル電子回路、又はコンピュータハードウエア、ファームウエア、ソフトウエア、又はそれらの組合わせで実現することが可能である。本発明装置は、プログラム可能なプロセサによって実行するために機械読取可能な格納装置において格納されたコンピュータプログラム製品の形態で実現することが可能であり、且つ本発明の方法ステップは、入力データに関して動作し且つ出力を発生することによって本発明の機能を実施するための複数個の命令からなるプログラムを実行するプログラム可能なプロセサによって実施することが可能である。本発明は、データ格納システムからデータ及び命令を受取り且つデータ格納システムへデータ及び命令を送るべく結合されている少なくとも１個のプログラム可能なプロセサ、少なくとも１個の入力装置、少なくとも１個の出力装置を包含するプログラム可能なシステム上で実行可能な１個又はそれ以上のコンピュータプログラムの形態で実現することが可能である。各コンピュータプログラムは、ハイレベル手順又はオブジェクト指向型プログラミング言語で実現することが可能であり、又は、所望により、アッセンブリ言語又は機械言語で実現することが可能であり、その言語はコンパイル型又はインタプリタ型の言語とすることが可能である。適宜のプロセサとしては、１例として、汎用及び特定目的プロセサの両方を包含している。一般的に、プロセサはリードオンリメモリ及び／又はランダムアクセスメモリから命令及びデータを受取る。コンピュータプログラム命令及びデータを格納するのに適した格納装置は、例示として、ＥＰＲＯＭ、ＥＥＰＲＯＭ等の半導体メモリ装置や、フラッシュメモリ装置、内部ハードディスク及び着脱自在なディスク等の磁気ディスク、ＭＯディスク、及びＣＤ−ＲＯＭディスク等を包含する全ての形態の非揮発性メモリを包含している。前述したもののいずれかを、ＡＳＩＣ（応用特定集積回路）によって補充するか、又はその中に組込むことが可能である。
【０１０６】
ユーザとの対話を与えるために、本発明は、ユーザに対して情報を表示するためのモニタ又はＬＣＤスクリーン等の表示装置及びキーボード及びユーザがコンピュータシステムへ入力を供給することの可能なマウス又はトラックボール等のポインティング装置を具備するコンピュータシステム上で実現することが可能である。該コンピュータシステムは、コンピュータプログラムがユーザと対話するグラフィカルユーザインターフェースを与えるためにプログラムすることが可能である。ユーザはグラフィカルユーザインターフェースを介して電子文書を操作し、その場合に電子文書はアプリケーションプログラムによって作成されるか又は編集された作品を有しており、且つ、特に、ファイルシステム内に保存される場合には、別個のファイルとして保存される独立した作品を包含している。
【０１０７】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図１】  コンピュータ及びコンピュータ要素を示した概略ブロック図。
【図２】  ユーザが描画したストロークから充填された包絡線を発生する方法を示したフローチャート。
【図３】  多角形ブラシを示した概略図。
【図４Ａ】  描画用タブレット及びスタイラスを示した概略側面図。
【図４Ｂ】  描画用タブレット及びスタイラスを示した概略平面図。
【図５】  軌跡に対する多角形近似を示した概略図。
【図６】  ストロークの包絡線の離散型近似を発生する方法を示したフローチャート。
【図７】  ラインセグメントの１つの側部から最も遠いブラシインスタンス上の点を識別するための方法を示したフローチャート。
【図８】  ラインセグメントからブラシインスタンスへ描画されたラインの概略図。
【図９】  包絡線近似の１つの側部を形成するために複数個の点を接続する方法を示したフローチャート。
【図１０】  軌跡に対する多角形近似を示した概略図。
【図１１】  軌跡に対する多角形近似を示した概略図。
【図１２】  包絡線近似の概略図。
【図１３Ａ】  ショートカット最適化に対して発生する可能性のある包絡線近似を示した概略図。
【図１３Ｂ】  ショートカット最適化に対して発生する可能性のある包絡線近似を示した概略図。
【図１４Ａ】  複数個の点からなる開いたシーケンスに対して適用される曲線平滑化技術を示した概略図。
【図１４Ｂ】  複数個の点からなる開いたシーケンスに対して適用される曲線平滑化技術を示した概略図。
【図１４Ｃ】  複数個の点からなる開いたシーケンスに対して適用される曲線平滑化技術を示した概略図。
【図１４Ｄ】  複数個の点からなる閉じたシーケンスに対して適用した曲線平滑化技術を示した概略図。
【図１４Ｅ】  複数個の点からなる閉じたシーケンスに対して適用した曲線平滑化技術を示した概略図。
【図１４Ｆ】  複数個の点からなる閉じたシーケンスに対して適用した曲線平滑化技術を示した概略図。
【図１５】  曲線平滑化技術を示したフローチャート。
【図１６】  角部の点を見つけ出すプロセスを示したフローチャート。
【図１７Ａ】  複数個の点からなるオリジナルのシーケンスが閉じたシーケンスである場合にセグメントを平滑化するプロセスを示したフローチャート。
【図１７Ｂ】  複数個の点からなるオリジナルのシーケンスが開いたシーケンスである場合にセグメントを平滑化するプロセスを示したフローチャート。
【図１８】  平滑化したセグメントに対して曲線を当て嵌めるためのプロセスを示したフローチャート。
【図１９】  １個の点に対する忠実性基準を計算する場合を示した概略図。
【図２０Ａ】  図１のコンピュータシステムの具体例を示した概略図。
【図２０Ｂ】  曲線を修正する状態を示した概略図。
【図２０Ｃ】  曲線を修正する状態を示した概略図。
【図２０Ｄ】  曲線を修正する状態を示した概略図。
【図２０Ｅ】  曲線を修正する状態を示した概略図。
【図２０Ｆ】  曲線を修正する状態を示した概略図。
【図２０Ｇ】  曲線を修正する状態を示した概略図。
【図２１】  曲線を編集する技術を示したフローチャート。
【図２２】  既存の曲線と置換曲線との間の整形を示した概略図。
【図２３】  ブラシストロークを編集する技術を示したフローチャート。
【符号の説明】
１０  コンピュータシステム
１１  汎用コンピュータ
１２  ペイントアプリケーション
１４  ブラシストロークプロセス
１５  多角形ブラシ
１７  包絡線近似
１８  モニタ
２０  キーボード
２２  マウス
２４  描画用タブレット
２６  スタイラス
６０  軌跡
【図１】
0004312295.tif 000014
【図２】
0004312295.tif 000015
【図３】
0004312295.tif 000016
【図４Ａ】
0004312295.tif 000017
【図４Ｂ】
0004312295.tif 000018
【図５】
0004312295.tif 000019
【図６】
0004312295.tif 000020
【図７】
0004312295.tif 000021
【図８】
0004312295.tif 000022
【図９】
0004312295.tif 000023
【図１０】
0004312295.tif 000024
【図１１】
0004312295.tif 000025
【図１２】
0004312295.tif 000026
【図１３Ａ】
0004312295.tif 000027
【図１３Ｂ】
0004312295.tif 000028
【図１４Ａ】
0004312295.tif 000029
【図１４Ｂ】
0004312295.tif 000030
【図１４Ｃ】
0004312295.tif 000031
【図１４Ｄ】
0004312295.tif 000032
【図１４Ｅ】
0004312295.tif 000033
【図１４Ｆ】
0004312295.tif 000034
【図１５】
0004312295.tif 000035
【図１６】
0004312295.tif 000036
【図１７Ａ】
0004312295.tif 000037
【図１７Ｂ】
0004312295.tif 000038
【図１８】
0004312295.tif 000039
【図１９】
0004312295.tif 000040
【図２０Ａ】
0004312295.tif 000041
【図２０Ｂ】
0004312295.tif 000042
【図２０Ｃ】
0004312295.tif 000043
【図２０Ｄ】
0004312295.tif 000044
【図２０Ｅ】
0004312295.tif 000045
【図２０Ｆ】
0004312295.tif 000046
【図２０Ｇ】
0004312295.tif 000047
【図２１】
0004312295.tif 000048
【図２２】
0004312295.tif 000049
【図２３】
0004312295.tif 000050