JP4312295B2 - スケッチを基にした曲線の編集 - Google Patents
スケッチを基にした曲線の編集 Download PDFInfo
- Publication number
- JP4312295B2 JP4312295B2 JP10051899A JP10051899A JP4312295B2 JP 4312295 B2 JP4312295 B2 JP 4312295B2 JP 10051899 A JP10051899 A JP 10051899A JP 10051899 A JP10051899 A JP 10051899A JP 4312295 B2 JP4312295 B2 JP 4312295B2
- Authority
- JP
- Japan
- Prior art keywords
- curve
- points
- sketch
- existing
- trajectory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、対話的コンピュータグラフィックシステムに関するものである。
【0002】
【従来の技術】
コンピュータグラフィックシステムにおいては、曲線は、しばしば、グラフィックとして描画される。然しながら、曲線は、典型的に、例えばマウス又はグラフィックタブレット等の入力装置を使用してフリーハンドの所作で描画することは困難である。不所望の凹凸及び平坦部分が発生することがしばしばである。
【0003】
アーチストがペン及び紙を使用して描画する場合には、アーチストは不所望の区域内に別の直線又は曲線を描画し、不所望の部分をカバーすることによって曲線を修正することが可能である。繰り返し直線及び曲線を付加することは「スケッチング(sketching)」と呼称される場合がある。曲線が数学的な式によって表わされるコンピュータグラフィックシステムにおいては、単一の所望の曲線の様相を得るために1つの曲線の上に別の曲線を積層させることは望ましいことではない場合がある。
【0004】
従来のグラフィックシステムはある曲線編集機能を提供している。1つのアプローチはその曲線を再度描画することである。別のアプローチは、曲線を画定する「コントロールハンドル」を操作することである。これらアプローチは、両方とも、しばしば、時間がかかり且つ不便なものである。
【0005】
コンピュータグラフィックシステムにおいてブラシストローク即ち筆の一書きを編集する場合に同様の問題が存在している。この場合にも、不所望な部分の上に曲線又はブラシストロークのレイヤー(層)を付加することは時間がかかり且つ最初に不所望な部分を発生させたものと同一のエラーを発生させる蓋然性がある。
【0006】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、電子文書における曲線又はブラシストロークを編集する方法及び装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
一般的に、1つの側面においては、本発明は、電子文書における曲線を編集する方法及びその方法を実行する装置を特徴としている。本方法は、ユーザから入力としてスケッチ曲線を受取り、該スケッチ曲線は2つの端点を有しており、前記スケッチ曲線の端点のうちの各々に最も近い既存の曲線内の点を見つけ出すことによって既存の曲線のターゲットセクションを識別し、該ターゲットセクションは見つけられた点の間の既存の曲線の部分であり、既存の曲線からターゲットセクションを除去し、既存の曲線内に2つの内部端点を残し、置換曲線を形成し、該置換曲線は2つの端点を有しており、ターゲットセクションの代わりに既存の曲線内に置換曲線を挿入し、且つ既存の曲線と置換曲線との間の各端点におけるギャップを閉じるためにそれらの夫々の隣りの端点において既存の曲線及び置換曲線を整形することを包含している。
【0008】
本発明の効果としては、以下の特徴のうちの1つ又はそれ以上を包含している。点と点との間の距離はユークリッド距離によって測定される。既存の曲線及び置換曲線を整形する場合に、置換曲線の各端点において置換曲線を短縮させ、各内部端点において既存の曲線を短縮させ、且つ短縮させた置換曲線と短縮させた既存の曲線とを連結させるためにスミ肉曲線(fillet curve)を形成することを包含している。既存の曲線及び置換曲線の隣接する短縮された端部の各対の各端部が同一の量だけ短縮される。短縮された端部の各々は短縮された端部に隣接するギャップの寸法から計算した量だけ短縮される。置換曲線はスケッチ曲線である。置換曲線を作成する場合に、ターゲットセクションを平滑化して置換曲線を形成する。ターゲットセクションを平滑化する場合に、ターゲットセクションを表わす点の順番付けしたシーケンスを形成し、その点の順番付けしたシーケンスの点を点の1つ又はそれ以上の隣接するセグメントへグループ化し、各セグメントの点を平滑化して平滑化した点からなるセグメントを発生し、平滑化した点の各セグメントに対して1つ又はそれ以上の数学的曲線を当て嵌め、該1つ又はそれ以上の数学的曲線は一体となって置換曲線を形成する。点の順番付けしたシーケンスを形成する場合に、点の順番付けしたシーケンスにおける点と点との間の間隔距離が最大間隔を超えることがなく且つ点の順番付けしたシーケンスにおける2つの相次ぐ点の間に形成される直線とターゲットセクションとの間の平坦性距離が平坦性許容値を超えることがないように点を選択する。既存の曲線は包絡線を有するブラシストロークの軌跡曲線であり、且つ本方法は、更に、編集した軌跡曲線及び既存のブラシストロークの包絡線情報を使用して新たなブラシストロークに対する新たな包絡線を計算する。
【0009】
一般的に、別の側面においては、本発明は、対話的グラフィックシステムのユーザと対話する方法及びその方法を実現する装置を特徴としている。本方法は、ディスプレイ装置上に曲線を表示し、グラフィカルユーザインターフェースを介してユーザの制御下において動作可能な平滑化ツールをユーザへ供給し、該曲線の一部の選択を表わすために該曲線の一部の上に該平滑化ツールを移動させるユーザからの所作を受取り、且つ該曲線の選択された部分に対して平滑化フィルタを適用することによって該曲線の選択された部分を平滑化させる、ことを包含している。
【0010】
本発明の効果としては以下の特徴のうちの1つ又はそれ以上を包含している。本方法は曲線のサンプルを選択し、選択したサンプルを別の曲線として平滑化し、且つその平滑化したサンプルを該曲線内に再度当て嵌めるために、グラフィカルユーザインターフェースを介してユーザの制御下において動作可能な平滑化ツールをユーザに対して提供する。
【0011】
一般的に、別の側面においては、本発明は、グラフィックシステムにおいてブラシストロークを編集する方法及びその方法を実現する装置を特徴としている。ブラシストロークは軌跡曲線と、包絡線曲線と、包絡線情報とを有している。本方法は、スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ該スケッチ曲線に基づいて軌跡曲線を修正するものであり、且つ編集した軌跡曲線及び既存のブラシストロークの包絡線情報を使用して新たなブラシストロークに対する新たな包絡線曲線を計算することを包含している。
【0012】
本発明の効果としては以下の特徴のうちの1つ又はそれ以上を有している。スケッチを基にした編集は、スケッチ曲線を使用して軌跡曲線上のターゲットセクションを識別し、尚ターゲットセクションの端点はスケッチ曲線の端点に対して最も近い軌跡曲線上の点であり、ターゲットセクションを軌跡曲線内のスケッチ曲線で置換させ、且つ前記軌跡曲線及びスケッチ曲線を互いに整形して編集した軌跡曲線を作成することを包含している。スケッチを基にした編集は、スケッチ曲線を受取り、該スケッチ曲線を使用して軌跡曲線上のターゲットセクションを識別し、該ターゲットセクションの端点は該スケッチ曲線の端点に最も近い軌跡曲線上の点であり、該ターゲットセクションを平滑化し、該ターゲットセクションを該軌跡曲線内の平滑化させたターゲットセクションで置換させ、且つ該軌跡曲線及び平滑化したターゲットセクションを互いに整形させて編集した軌跡曲線を形成することを包含している。新たなブラシストロークに対する新たな包絡線曲線を計算する場合に、元の軌跡曲線からの包絡線情報を編集した軌跡曲線に対してマッピングすることによって編集した軌跡曲線に対する新たな包絡線情報を計算することを包含している。新たなブラシストロークに対して新たな包絡線曲線を計算することは、編集した軌跡曲線の円弧長及び既存のブラシストロークの軌跡曲線の円弧長に基づいて既存のブラシストロークの軌跡曲線の包絡線情報を線形補間することによって新たな包絡線情報を計算し、且つその新たな包絡線情報を編集した軌跡曲線へ適用させることを包含している。該包絡線情報はブラシ形状と、軌跡曲線に沿っての対応する1つ又はそれ以上の位置においてブラシ形状に対してなされるべき修正を画定する1個又はそれ以上のアフィンマトリクスとを有している。アフィンマトリクスは、ユーザによる入力装置の物理的操作に応答して入力装置から受取られるデータを使用して計算される。ユーザは入力装置から受取ったデータをアフィンマトリクスにおける値へ変換させるための変換パラメータを定義する。
【0013】
【発明の実施の形態】
ブラシストローク包絡線(Brushstroke Envelope)
ブラシ軌跡モデルにおいては、中央軌跡(即ち、複数個の点からなるシーケンス)に沿ってブラシ(即ち、閉じた形状)をスイープ即ち掃引することによってストローク(stroke)が構成される。このようなストロークの形状は軌跡に沿ってのブラシの経路を取囲むエンベロープ即ち包絡線として数学的に定義される。
【0014】
図1を参照すると、コンピュータシステム10は軌跡60に沿っての任意のアフィン変換に従って変化する多角形ブラシ15に対する包絡線近似17の個別的な近似を計算するためのブラシストロークプロセス14を包含する汎用コンピュータ11を有している。ブラシストロークプロセス14は、例えば、カリフォルニア州サンノゼのアドビシステムズインコーポレイテッドから入手可能なアドビイラストレーター(Adobe Illustrator)(商標)等のペイントアプリケーション12の1つの特徴として実現することが可能である。コンピュータシステム10は、更に、コンピュータ11の出力を視覚的に表示するためのモニタ18、及び永続的にデータを格納するためのハードディスクドライブ28を有している。入力装置は、キーボード20、マウス22、スタイラス26と結合された描画用タブレット24を有している。
【0015】
図2及び3を参照すると、ペイントアプリケーション12内において、ユーザがステップ40aにおいてペイントすべきブラシ15を選択する。ブラシ15はJ個の点からなるシーケンスbjを格納するデータ構造であり、尚j=1,2,...,Jであり、且つb0は原点における点である。図3に示したように、ブラシ15は五角形形状をしており、5個の点52a−52eを有している。点52fは原点に位置している。ユーザは例えばマウス22又は描画用タブレット24等の入力装置を使用してブラシ15で描画することが可能である。以下の説明では、ユーザが描画用タブレット24上においてスタイラス26を使用して描画を行うものと仮定する。
【0016】
ユーザがステップ40bにおいて描画用タブレット24上にスタイラス26を押圧させると、それはユーザは新たなストロークの描画が開始せんとしていることを表わし、ペイントアプリケーション12はステップ40cにおいて軌跡60をクリアする。ユーザがスタイラス26を描画用タブレット24上に押し付けたままスタイラス26を移動させると、描画用タブレット24は、周期的に、位置(即ち、x及びy座標)、圧力(即ち、どれほど強くユーザが描画用タブレット24に対してスタイラス26を押圧させているか)、及び描画用タブレット24に関するスタイラス26の傾斜及び方位角角度のサンプルをペイントアプリケーション12へ送る。図4Aに示したように、スタイラス26の傾斜(仰角とも呼称される)は描画用タブレット24の面とスタイラス26との間の面外角度54である。図4Bに示したように、ライン27は描画用タブレット24上に射影したスタイラス26の「影」を表わしている。スタイラス26の方位角角度は描画用タブレット24の面に垂直な面とライン27との間の面内角度56である。
【0017】
描画用タブレットの典型的なサンプリング率は毎秒百回の範囲内である。1個のサンプルが取られる度に、サンプル情報(即ち、位置、圧力、傾斜及び方位角)がペイントアプリケーション12へ送られ、ペイントアプリケーション12はサンプル情報をブラシデータ構造15へ適用されるべきアフィン変換を表わす軌跡マトリクス内へ変換させる。ペイントアプリケーション12はステップ40dにおいて軌跡マトリクスを軌跡60へアペンド即ち付属させ、軌跡マトリクスからなるシーケンスを発生させる。ユーザがステップ40eにおいて描画用タブレット24からスタイラス26を解放させると、ペイントアプリケーション12はユーザがストロークを描画することを停止したものと決定する。その結果得られる軌跡60は軌跡マトリクスtkからなるシーケンスであり、k=1,2,..,Kであり、尚Kは描画用タブレット24から得られたサンプルの数である。
【0018】
軌跡マトリクスtkは水平及び垂直スケールsx及びsy、水平及び垂直オフセットtx及びty、及び水平及び垂直回転rx及びryを有している。軌跡60に沿っての各点におけるブラシ15の形状はdk,j=tk*bjとして定義され、尚*はマトリクス乗算を意味している。与えられたk及びj=1,2,...,Jに対して、点bk,jはtkに対応する軌跡60における点においてのブラシ15の寸法及び形状を画定する。換言すると、bk,jはtkによって定義されたアフィン変換をブラシ15に対して適用した結果である。
【0019】
軌跡マトリクスは、多くの方法で描画タブレット24によって与えられるサンプル情報から派生させることが可能である。典型的に、軌跡マトリクスにおけるtx及びtyはサンプル情報におけるx及びy座標の夫々の値が割り当てられる。成分sx及びsyは、夫々、サンプル情報内に含まれる圧力情報に比例する値が割り当てられ、実効的に、ユーザがスタイラス26上の圧力を変化させることによって軌跡60によってのブラシ15の寸法を増加及び減少させることを可能とさせる。rx及びryの値は、それぞれ、スタイラスの傾斜角度及び方位角角度の関数とすることが可能であり、実効的に、スタイラス26の傾斜角度及び方位角角度を変化させることによって軌跡60に沿ってユーザがブラシ15を回転させることを可能としている。
【0020】
ペイントアプリケーション12が軌跡60を発生することを終了した後に、ペイントアプリケーション112はステップ40fにおいてブラシストロークプロセス14を呼出し、軌跡60に沿ってのブラシ15の包絡線近似17を発生させる。ペイントアプリケーション12は包絡線近似17の内側をカラー又はテクスチャで充填させる。
【0021】
図5を参照すると、ブラシストロークプロセス14がパス即ち経路70としてグラフィック的に軌跡60を表わしている。軌跡60は夫々グラフィック的に点72a,72b,72cとして表わした3個の軌跡マトリクスt1,t2,t3を有している。点72a−72cのxy座標は、夫々、軌跡マトリクスt1,t2,t3のtx及びty成分に対応している。ラインセグメント74a及び74bは連続する点72a−72cを接続する。軌跡60の軌跡マトリクスt1,t2,t3によって画定されるアフィン変換をブラシ15へ適用する結果は、グラフィック的にブラシインスタンス76a−76cとして表わされる。包絡線近似17を計算するためにブラシストロークプロセス14はパス70又はブラシインスタンス76a−76cをレンダリングすることは必要ではないが、パス70及びブラシインスタンス76a−76cは、ここにおいては、例示的な目的のために示してある。
【0022】
図6を参照すると、ブラシストロークプロセス14はステップ40fにおいて以下の如くにして包絡線近似17を発生する。ブラシストロークプロセス14はパス70の左側から最も遠いブラシインスタンス76a−76c上の点を見つけ出す。ステップ42aにおいて可変の側部にLEFTの値が割り当てられ、ブラシストロークプロセス14がパス70の左側を探すべきであることを表わす。ブラシストロークプロセス14はステップ42bにおいてインデックス用の変数kを1の値へ初期化させる。ブラシストロークプロセス14はステップ42cにおいて軌跡マトリクスtk-1を表わす点を軌跡マトリクスtkを表わす点へ接続させるパス70におけるラインセグメント及び軌跡マトリクスtkを表わす点を軌跡マトリクスtk+1を表わす点へ接続させるパス70におけるラインセグメントを識別する。図5の例の場合には、ラインセグメント74a及び74bが識別される。
【0023】
ブラシストロークプロセス14はステップ42eにおいてtk-1,tk,tk+1に対応する点を含むブラシインスタンスを識別する。図5の場合においはブラシインスタンス76a,76b,76cが識別される。各識別されたラインセグメントに対して、ブラシストロークプロセス14はステップ42fにおいて可変の側部の値によって表わされたラインセグメントの側部から最も遠いラインセグメントを含むブラシインスタンスの境界上の点を見つけ出す。図5においては、例えば、点80aがラインセグメント74aの左側に対して最も遠いブラシインスタンス76aにおける点であり、且つ点80bがラインセグメント74aの左側に対して最も遠いブラシインスタンス76bにおける点である。識別されたラインセグメントの側部から最も遠いブラシインスタンス76a−76cの点を見つけ出すプロセスの詳細については図7に示してある。包絡線発生プロセス40fはステップ42gにおいて図9に関して更に詳細に説明するようにステップ42fにおいて識別された点を接続させる。
【0024】
ステップ42gにおいて点を接続した後に、インデックス用変数kがK−1と等しくない場合には、kがステップ42iにおいてインクリメントされ、且つ制御がプロセス42c−42gへ復帰され、それは包絡線近似17の1つの側部の残りを発生することを継続して行うために繰り返し行われる。包絡線近似17の左側が発生された後に、可変側部はステップ42kにおいてRIGHTの値が割り当てられ、且つ包絡線近似17の右側がプロセス42b−42iに従って発生される。包絡線近似17の左側がステップ40fによって発生された後に、ブラシストローク14は復帰し、その点において、ペイントアプリケーション12は、例えば、包絡線近似17をカラー又はパターンで充填することが可能である。図7を参照すると、ブラシストロークプロセス14は、以下のようにして、特定したラインセグメントの特定した側部から最も遠い1対の連続したブラシインスタンスにおける点を識別する。ブラシストロークプロセス14は、ステップ44aにおいて、ラインセグメントの特定された側部から第一ブラシインスタンスの境界へ垂直のラインを描画する。図8に示したように、ラインセグメント78がラインセグメント74aの左側に対して垂直に描画される。ブラシストロークプロセス14は、ステップ44bにおいて、第一候補点として、垂直のラインセグメント78のうちの最も長いものへ接続されている第一ブラシインスタンス上の点を選択する。図8に示したように、点80aと接触するラインセグメントがラインセグメント78のうちの最も長いものであり、従って、点80aが第一候補点として選択される。
【0025】
ブラシストロークプロセス14は、ステップ44cにおいて、第二のラインを描画し且つステップ44dにおいて上述したのと同一の態様で第二ブラシインスタンス上の第二候補点を選択する。ブラシストロークプロセス14は、ステップ44eにおいて、第一及び第二候補点の間に新たなラインセグメントを描画し、且つこの新たなラインセグメントを使用してプロセス44a−44dを繰り返し行ってステップ44fにおいて新たな第一候補点と新たな第二候補点とを識別する。この新たな第一候補点及び前の候補点がステップ44gにおいて比較される。新たな第一候補点が第一候補点と異なっているか又は新たな第二候補点が第二候補点と異なっている場合には、プロセス42fがステップ44iにおいて該新たな第一候補点を第一候補点として且つ該新たな第二候補点を第二候補点として割り当て、且つプロセス44e−44gが繰り返される。
【0026】
該新たな第一及び第二候補点が第一及び第二候補点と同じである場合には、ブラシストロークプロセス14はステップ44hにおいて該第一及び第二候補点をラインセグメントの指示された側部から最も遠い点として識別する。図5に示したように、点80a及び80bはラインセグメント74aの左側に対して最も遠いものとして識別され、且つ点80b及び80cはラインセグメント74bの左側において最も遠いものとして識別される。
【0027】
プロセス44e−44iのシーケンスは自然に終了することなしに繰り返す可能性がある。この可能性を回避するために、ブラシストロークプロセス14は、それが所定の回数を超えて繰り返した後にループを終了し且つ軌跡60からラインセグメントの端点のうちの1つを取り除くことが可能である。
【0028】
図9を参照すると、ブラシストロークプロセスは、ステップ42gにおいて、ステップ42fにおいて識別された点を接続させて以下のようにして包絡線近似の1つの側部を形成する。bk-1,w及びbk,xが、夫々、ライン(bk-1,w,bk,x)の左側において最も遠くに存在しているbk-1,j及びbk,jの点であるとする。例えば、図5に示したように、点bk-1,wが点80aであり且つ点bk,xが点80bである。何故ならば、点80a及び80bは、夫々、ラインセグメント74aの左側において最も遠くに存在しているブラシインスタンス76a及び76bの点だからである。同様に、点bk,yが点80bであり且つ点bk-1,zが点80cである。何故ならば、点80b及び80cは、夫々、ラインセグメント74bの左側において最も遠くに存在しているブラシインスタンス76b及び76cの点だからである。
【0029】
ステップ46aにおいて、点bk,xがbk,yと同じ点であると、ブラシストロークプロセス14はステップ46bにおいて点bk-1,wを点bk,xへ接続させ且つステップ46cにおいて、点bk,xを点bk-1,zへ接続させる。図5は、bk,xがbk ,yと同一の点である場合の例であり、その結果ラインセグメント82a及び82bが得られる。
【0030】
ステップ46dにおいて、点bk,xがbk,yと同一の点ではないが、ブラシインスタンス76a,76b,76cが同様の相対的な配向状態を有している場合には、ブラシストロークプロセス14はステップ46eにおいて点bk-1,wを点bk,xへ接続し、ステップ46fにおいて、点bk,x及びbk,yの間の全ての点を接続し、且つステップ46gにおいて点bk,yを点bk+1,zへ接続させる。図10は点bk,xがbk,yと同一の点ではないが、ブラシインスタンス84a−84cが同様な相対的な配向状態を有している場合の例であって、その結果ラインセグメント86a−86cが得られる。点b,xとbk,yとの間のブラシインスタンス84b上に付加的な点が存在している場合には、これらの点は接続される。
【0031】
ブラシストロークプロセス14は、以下の条件、即ち、
angle(bk,x−bk-1,w,bk+1,z−bk,y)<0 (式1)
の条件が満足される場合にのみ、3個のブラシインスタンスがtkにおいて同様の相対的な配向状態を有しているものとみなす。
【0032】
ベクトルa及びbの場合には、関数angle(a,b)はa及びbとの間の符号付きangle(角度)として定義される。
【0033】
angle(a,b)sign(cross(a,b))*acos(dot(a,b)/(|a||b|)) (式2)
式2における関数cross(a,b)は、ベクトルa及びbのクロス積を計算する。式2における関数sign(cross(a,b))は、a及びbのクロス積の符号を計算し、その結果+1又は−1のいずれかのスカラー値となる。式2における関数dot(a,b)は、ベクトルa及びbの内積を計算し、それはスカラー値である。式2における値|a|及び|b|は、夫々、ベクトルa及びbの大きさを表わす。式2における関数acosは、その引き数のアークコサイン(逆余弦)を計算する。式1の結果は、ベクトルa及びbの間の符号付き角度を表わす符号付きスカラー値を発生させることである。
【0034】
判定基準46a又は46dのいずれも満足されない場合には、ブラシストロークプロセス14はステップ46hにおいて点bk-1,wを点bk,xへ接続し、ステップ46iにおいて点bk,xを点bk,yへ接続し、且つステップ46aにおいて点bk,yを点bk+1,zへ接続させる。図11はこの場合を示している。bk,xとbk,yとの間のどの点も接続されることはない。何故ならば、それらは、包絡線の内側に存在しており、従って、余分なものだからである。点bk,x及びbk,yはステップ46kにおいてブレーク点としてマーク付けされる。プロセス46a−258において点を接続させることによって形成されるラインセグメントが、ステップ262において、包絡線近似17へ付加される。
【0035】
図12を参照すると、図5に示したブラシ15及び軌跡60に対応するその結果得られる包絡線近似17はラインセグメント82a,82b,82c,82dを包含している。
【0036】
あるペイントアプリケーション12は、包絡線近似17に対して曲線当て嵌め技術を適用し、包絡線近似17に対応する滑らかな曲線を発生させることが可能である。好適な技術について図14A−19に関連して以下に説明する。このような場合には、ブラシストロークプロセス14は「ショートカット最適化」と呼称されるプロセスを使用して包絡線近似17の所定の距離より小さな範囲内にある包絡線から点を削除することが可能である。例えば、図13Aを参照すると、距離d2が所定のスレッシュホールドより小さい場合には、包絡線近似17から点bk,yが削除され、且つ距離d1が所定のスレッシュホールドより小さい場合には、包絡線近似17から点dk,xが削除される。包絡線近似17から1つの点が削除されると、その削除された点に先行する点がその削除された点に続く点へ接続される。例えば、点bk,yが包絡線近似17から削除されると、点bk-1,wが点bk,xへ接続される。点bk,y及びbk,xの両方が包絡線近似17から削除されると、点bk-1,wが点bk+1,zへ接続される。図13Bに示したように、長い軌跡90は鋭利な角部96を有している。軌跡90に対応する包絡線近似の2つの側部92a−92bのうちの1つは、ショートカット最適化によって削除される可能性のあるラインセグメント94を包含している。
【0037】
ペイントアプリケーション12が包絡線近似17に対して曲線当て嵌め技術を適用すると、ブラシストロークプロセス14は、その曲線当て嵌めプロセスを助けるために、包絡線内の各ラインセグメントの勾配を包絡線近似17内に格納することが可能である。ショートカット最適化が包絡線近似17に対して上述した如く適用されると、ショートカット最適化が行われた後に勾配の格納が行われる。
【0038】
曲線平滑化
図14A乃至14Cを参照すると、複数個の点からなるオリジナルの開いたシーケンスに対する曲線平滑化の適用が示されている。複数個の点からなるオリジナルのシーケンスの1つの発生源は、上述した包絡線発生プロセスから与えることが可能である。図14Aにおいて、複数個の点100からなるオリジナルのシーケンスはユーザによる描画所作に応答して対話的グラフィックシステムにおける入力として受取られた複数個の点からなる順番付けされたシーケンスである。このオリジナルのシーケンス100に対してノイズフィルタを適用し、高周波数ノイズを除去し、複数個の点105からなるフィルタしたシーケンスを発生させることが可能である。ノイズフィルタは高周波数変動(即ち、ノイズ)を除去し一方より低い周波数の曲線特徴部を保存する。フィルタしたシーケンス105を1個又はそれ以上のセグメントへ分割する。各フィルタした点において曲率を評価することによって、フィルタしたシーケンスにおいて角部の点が見つけられる。図14Aにおいて、フィルタしたシーケンス105において1個の角部の点110が存在している。フィルタした点115からなる第一セグメントがシーケンス100の端点120から角部の点110へ延在している。第二セグメント125は、角部の点110から第二端点130へ延在している。この図において、シーケンス100及び105の点及び複数個の点からなるその他のシーケンスの点はラインセグメントによって接続して示してある。このことは、説明の便宜上のためにのみなされたものであり、ラインセグメントは複数個の点からなるシーケンスの要素ではない。
【0039】
各セグメントを図14Bに示したように平滑化させる。フィルタした点115からなる第一セグメントを平滑化して複数個の点135からなる第一平滑化セグメントを発生させる。フィルタした点125からなる第二セグメントを平滑化させて第二平滑化セグメント140を発生させる。平滑化したセグメント135,140はフィルタしたシーケンス105よりも一層滑らかである。
【0040】
図14Cに示したように、これらの平滑化させたセグメントに対して曲線を当て嵌める。試行的曲線を形成し且つその試行的曲線の該平滑化したセグメントに対する忠実性を評価する。その試行的曲線が平滑化したセグメントに対して十分に忠実なものではない場合には、その平滑化したセグメントを複数個のサブセグメントへ分割し、且つ各サブセグメントに対して曲線当て嵌めプロセスを繰り返し行う。従って、第一平滑化セグメント135をブレーク点147,152,157によって分離された4個の曲線145,150,155,160へ分割する。第二平滑化セグメント140は第一平滑化セグメント135よりも一層簡単であり、従って第一曲線165が第二平滑化セグメント142に対して当て嵌めることが可能である。曲線145,150,155,160,165は、一体となって、複数個の点100からなるオリジナルのシーケンスを表わす。
【0041】
図14D,14E,14Fを参照すると、複数個の点からなる閉じたシーケンスに対するプロセスが示されている。全体的なプロセスは開いたシーケンスのものと異なるものではない。平滑化の詳細は、以下に説明するように、コーナー即ち角部がない閉じたシーケンスに対して異なっている。図14Dは複数個の点170からなるオリジナルのシーケンス及びそのオリジナルのシーケンス170に対してノイズフィルタを適用することによって発生された複数個の点175からなるフィルタしたシーケンスを示している。フィルタしたシーケンス175において角部の点は存在していない。従って、複数個の点からなる1個のセグメントが存在している。該セグメントは複数個の点からなる閉じたシーケンスである。説明の便宜上、オリジナルのシーケンス170が開始する点180を該セグメントの第一端点及び第二端点の両方として取扱う。図14Eは複数個の点175からなるフィルタしたシーケンス及び図14Dに示した複数個の点180からなるセグメントを平滑化させることによって発生された複数個の点185からなる平滑化したセグメントを示している。図14Fは端点180を平滑化させることから派生されたブレーク点192及びブレーク点194によって分離されている2個の曲線190,195へ分割されている複数個の点185からなる平滑化したセグメントを示している。これら2つの曲線190,195は複数個の点170からなるオリジナルのシーケンスの表現を形成している。
【0042】
図15を参照すると、複数個の点からなるシーケンスに対して曲線を当て嵌める方法200は、複数個の点202からなるオリジナルのシーケンスを受取るシステムを包含している。複数個の点202からなるオリジナルのシーケンスは複数個の点からなる順番付けされているシーケンスである。該システムはユーザのフリーハンドの所作に応答してマウス又はグラフィクタブレット等のユーザ入力装置からの入力としてオリジナルのシーケンスを受取ることが可能である。一方、複数個の点202からなるオリジナルのシーケンスは、データファイル、コンピュータソフトウエアアプリケーション、又は信号処理システム等の供給源から供給することが可能である。
【0043】
該システムは、オプションとして、複数個の点200からなるオリジナルのシーケンスに対してノイズフィルタを適用し、フィルタした複数個の点からなるシーケンスを発生させる(それは、フィルタしたシーケンスとも呼称することが可能である)(ステップ205)。ノイズフィルタ処理の1つの利点は、例えばスパイク等の複数個の点の間における大きな急激な孤立した変動を取除くことである。これらの極端な変動は複数個の点からなるオリジナルのシーケンスを入力する場合のユーザのエラーの結果であるか、又は崩壊したか又はノイズを有するデータである蓋然性が高く、従ってこれらの点を曲線当て嵌めのために維持することは通常は望ましいことではない。
【0044】
適切且つ有益的なノイズフィルタの1つは、G. Taubin、T. Zhang、G. Golub著「フィルタ設計としての最適な表面平滑化(Optional Surface Smoothing as Filter Design)」、テクニカルレポートRC−20404、IBMリサーチ、1996年3月の文献において導入されているローパスλ−μフィルタに基づくものであって、尚その文献は引用によって本明細書に取込む。このノイズフィルタの具体例は、
fd(k)=((1−λk)(1−μk))d/2
によって与えられる伝達関数fd(k)を有する次数dのλ−μフィルタとしてのものであり、周波数k、0≦k≦2、0≦λ<−μ、及びdは偶数である。λ及びμは、
f2(p)=1
f2(2)=h
がパスバンド周波数p、0<p<1及び高周波数許容値h、0≦h≦1に対して成立するように定義される。パスバンド即ち通過帯域はk=0からk=pへ延在しており、尚fd(k)≒1である。kがk≒pからk=2へ増加すると、fd(k)は単調的にhd/2へ減少する。従って、次式が得られる。
【0045】
【数1】
p,h,dに対する値は予測されたノイズスペクトルと共に変化する場合がある。デジタル化マウス及びグラフィックテーブルからの入力として受取った複数個の点からなるオリジナルシーケンスの場合には、p≒1/10、h≒<1/10及びd≒4は忠実性を殆ど失うことなしに良好な結果を発生する。
【0046】
ノイズフィルタ処理は、オリジナルのシーケンスに関し複数回のパスで実施される。オリジナルのシーケンスはn個の点を有しており且つsとして示され、且つ各点はsiとして示され、尚i=1,...,n−1である。伝達関数fdkの次数dに等しい回数のパスが、以下の如くにして、j=1,...,dに対して実施される。
【0047】
si 0=si
si j=si j-1−λ△si j-1 尚、jは奇数、
si j=si j-1−μ△si j-1 尚、jは偶数。
【0048】
オリジナルのシーケンスsの離散的ラプラシアン(ラプラス演算子)△sは以下の如くに定義される。
【0049】
△si=si−(si-1+si+1)/2
オリジナルのシーケンスsが複数個の点からなる閉じたシーケンスである場合には、インデックスi,jは上述したノイズフィルタ処理用の式におけるインクリメントされ且つデクリメントされるモジュロnである。オリジナルのシーケンスsが開いたシーケンスである場合には、
△sn-1=0
△s0=0
であり、従ってオリジナルのシーケンスの端点の位置は不変のままである。
【0050】
本システムは、複数個の点からなるシーケンス(上述した如くノイズに対してフィルタする場合もしない場合もある)を1個又はそれ以上のセグメントへ分割する(ステップ210)。そうするために、本システムは複数個の点からなるシーケンスにおけるブレーク点を見つけ出す。該シーケンスの各端点はブレーク点である。角部の点もブレーク点である。
【0051】
角部の点は、高い推定曲率を有する複数個の点からなるシーケンスにおける点である。図16に示したように、複数個の点からなるシーケンスにおいて角部の点を見つけ出すための方法300を実施する場合に、システムが順番付けされているシーケンスにおける点302に先行する点302のある距離内の点に対する平均角度、及び順番付けされているシーケンスにおける点302に続く同一の距離内の点に対する平均角度を計算する(ステップ305)。一方、その距離は先行する点及び後続する点に対して異なるものとすることが可能である。複数個の点からなるグループに対する平均角度は、オリジナルの点302を介しての基準ラインと相対的な各点からの角度を平均化することによって計算される。点302に対する推定曲率は、これらの平均角度を比較することによって計算される(ステップ310)。本システムは、点302に対する推定曲率を曲率許容値と比較する(ステップ315)。曲率許容値より大きいか又はそれに等しい推定曲率を有する点は角部の点である(ステップ320)。曲率許容値より小さな推定曲率を有する点は角部の点ではない(ステップ325)。
【0052】
角部を見つけ出す1つの具体例は、K. Itoh及びY. Oho著「キャラクタフォントに対する曲線当て嵌めアルゴリズム(A Curve Fitting Algorithm for Character Fonts)」、エレクトロニックパブリシング、6(3):195−206、1993年9月の文献における方法に基づくものであり、尚該文献は引用によって本明細書に取込む。この具体例においては、オリジナルのシーケンスにおける各点siにおける推定曲率ci、−1≦ci≦1は次式のように定義される。
【0053】
ci=(ai・bi)/(|ai||bi|)
尚、ベクトルai及びbiは点siとsiの有界弦長内の先行する点sx及び後続する点syの間の正規化にしたベクトル差の和である。点siのオリジナルのシーケンスが開いたシーケンスである場合には、ai及びbiは次式の如くに定義される。
【0054】
【数2】
尚、角部の弦長許容値lに対し、lx+1>li−lであるように0≦x<iであり、且つly-1<li+lであるようにi<y≦l−1である。各点siに対する弦長liは次式の如くに定義される。
【0055】
li=li-1+|si−si-1|
l0=0
オリジナルのシーケンスが閉じたシーケンスである場合には、ai及びbiは同様の弦長有界インデックスx,yモジュロnの範囲にわたる。
【0056】
従って、ci≧cである場合のオリジナルの点siは、角部角度許容値cに対して角部の点として定義される。l>≒f及びc≒cos(2π/3)の値は、通常良好な結果を発生し、尚fは曲線の当て嵌めに関して後に説明する忠実性許容値である。
【0057】
本システムは各セグメントを平滑化する(ステップ215)。この平滑化技術は、そのセグメントが複数個の点からなる閉じたシーケンスであるか又は開いたシーケンスであるかに依存して異なるものである。セグメントを平滑化すると中程度又はより高い周波数の曲率変動を取除き、一方低い周波数の変動を保存する。その結果得られる平滑化されたセグメントは1つ又はそれ以上の曲線と効率的に当て嵌めることが可能である。
【0058】
オリジナルのシーケンスが閉じたシーケンスであり且つオリジナルのシーケンス内に角点が存在しない場合には閉じたシーケンスのセグメントが発生する(図14d乃至14f参照)。
【0059】
図17Aを参照すると、複数個の点からなる閉じたセグメントである(ステップ402)セグメントを平滑化する方法400を実施する場合に、システムが該セグメントの周波数−空間表現を計算する(ステップ405)。この周波数−空間表現は、該セグメントの離散的フーリエ変換を取ることによって計算される。本システムは、該セグメントの周波数−空間表現を平滑化する(ステップ410)。該周波数−空間表現は、該周波数−空間表現に対してローパスフィルタを適用することによって平滑化される。本システムはその平滑化された周波数−空間表現を反転させる(ステップ415)。その平滑化された周波数−空間表現はその平滑化された周波数−空間表現の逆離散的フーリエ変換を取ることによって反転される。その反転され平滑化された周波数空間表現は平滑化されたセグメント420である。
【0060】
図17Bを参照すると、複数個の点452からなる開いたセグメントであるセグメントを平滑化するための方法450を実施する場合に、システムがセグメント452から線形傾向を減算する(ステップ455)。本システムは、減算したセグメントの周波数−空間表現を計算する(ステップ460)。その周波数−空間表現は、該セグメントの離散型正弦変換を取ることによって計算される。その減算されたセグメントの端点は不変量として保持され、従って離散型正弦変換は所望の結果を発生する。本システムは該減算したセグメントの周波数−空間表現を平滑化する(ステップ465)。その周波数−空間表現は、該周波数−空間表現に対してローパスフィルタを適用することによって平滑化される。本システムは平滑化された周波数−空間表現を反転させる(ステップ475)。その平滑化された周波数−空間表現は、その平滑化された周波数−空間表現の逆離散型正弦変換を取ることによって反転される。本システムは前に減算した線形傾向をその反転され平滑化された周波数−空間表現へ加算して平滑化されたセグメント480を形成する(ステップ475)。
【0061】
複数個の点からなるセグメントを平滑化させる1つの具体例は、J. Oliensis著「収縮のない局所的再現性のある平滑化(Local Reproducible Smoothing Without Shrinkage)、IEEE・トランズアクションズ・オブ・パターン・アナリシス・アンド・マシンインテリジェンス、15(3):307−323、1993年3月の文献に記載されている方法に基づくものであり、尚、該文献は引用によって本明細書に取込む。更に、該平滑化技術は上述したTaubin著「フィルタ設計としての最適な表面平滑化」の文献に提案されている態様に拘束される。この具体例においては、セグメントの全体的なスペクトルパワーの減少は平滑化許容値Sによって拘束されており、尚Sは小さな数である。
【0062】
m個の点からなる閉じたセグメントtz、z=0,...,m−1の場合には、セグメントtzの離散型フーリエ変換を取ってそのセグメントの周波数−空間表現tz_を形成する。尚、英文字記号の後にアンダーラインの符号を付けたものはその英文字記号の上に「山形記号」即ち「∧」(アクサンシルコンフレックス)を付けたものと同一である。周波数−空間表現tz_は以下の如くに定義される。
【0063】
【数3】
この表現はセグメントtzを上に定義したラプラス演算子の固有ベクトルの線形結合で表現したものである。各サンプルtz_に対し、νZがこの分解においてtz_と関連した固有ベクトルの対応する固有値であるとする。νzは次式のように定義される。
【0064】
【数4】
平滑化したセグメントuZの周波数−空間表現uz_は以下の如くにして平滑化フィルタを適用することによって計算される。
【0065】
【数5】
ローパス伝達関数gは以下のように定義される。
【0066】
g(ν)=1 ν<νwの場合
g(ν)=g0 ν=νwの場合
g(ν)=0 ν>νwの場合
但し、周波数0≦ν≦2であり、定数w及びg0は、1≦w≦m−1及び0<g0≦1であるように選択される。w及びg0の値は、gが平滑性許容値Sによってtz_内に存在する全体的な非DC(即ち、非直流)スペクトルパワーを減少させ、従って以下の式が成立するように選択される。
【0067】
【数6】
平滑化したセグメントの周波数−空間表現uz_の逆離散型フーリエ変換を取って平滑化したセグメントuzを形成する。
【0068】
m個の、z=0...,m−1からなる開いたセグメントtzの場合には、セグメントtz内の線形傾向を減算して以下の如くにして減算したセグメントt′Zを形成する。
【0069】
【数7】
減算したセグメントt′Zの離散型正弦変換を取って減算したセグメントの周波数−空間表現t′z_を形成する。周波数−空間表現t′z_は以下の如くに定義される。
【0070】
【数8】
この表現はセグメントt′zを上に定義したラプラス演算子の固有ベクトルの線形結合によって表わしている。各サンプルt′z_に対して、νzをこの分解におけるt′z_と関連する固有ベクトルの対応する固有値とする。νzは次の如くに定義される。
【0071】
νz=1−cos(πz/(m−1))
νm-1=0
平滑化したセグメントu′zの周波数−空間表現u′z_は以下の如くにして平滑化フィルタを適用することによって計算される。
【0072】
【数9】
ローパス伝達関数gは次のように定義される。
【0073】
g(ν)=1 ν<νwの場合
g(ν)=g0 ν=νwの場合
g(ν)=0 ν>νwの場合
但し、周波数0≦ν≦2であり、定数w及びg0は、1≦w≦m−1及び0<g0≦1であるように選択される。w及びg0の値は、gが平滑性許容値Sによってt′z_内に存在する全体的なスペクトルパワーを減少させ、従って次式が成立するように選択される。
【0074】
【数10】
平滑化したセグメントu′z_の周波数−空間表現の逆離散型正弦変換を取って減算したセグメントu′zを形成する。前に減算した線形傾向をu′zへ加算して平滑化したセグメントuzを形成する。
【0075】
1つの具体例においては、O(n log n)高速フーリエ及び正弦変換アルゴリズムを利用するために、2の羃に等しい数の点を有するために充分な数の隣接する点の間に線形補間によってセグメントをアップサンプルする。
【0076】
本システムは、1つ又はそれ以上の曲線を各平滑化したセグメントに対して当て嵌める(図15におけるステップ220)。図18を参照すると、平滑化したセグメント505に対する曲線を当て嵌める方法500において、システムが平滑化したセグメント505に対する試行的曲線を計算する(ステップ510)。その試行的曲線は複数個の点からなるシーケンスではなく数学的に定義された直線である。1つの具体例においては、該試行的曲線はパラメトリック曲線又はベジェ曲線である。本システムは、平滑化したセグメント505に対する該試行的曲線の忠実性基準を計算する(ステップ515)。平滑化したセグメント内の全ての点に対して、忠実性許容値より小さいか又はそれに等しい距離内にある試行的曲線上に1つの点が存在する場合には、その忠実性基準が満足される。その忠実性基準が満足されると、その試行的曲線は平滑化したセグメント505に対して充分な忠実性を有しており、且つ本システムはその試行的曲線を平滑化したセグメント505を表現するものとして格納する(ステップ520)。その忠実性基準が満足されない場合には、本システムは平滑化したセグメント505を2個又はそれ以上のサブセグメントへ分割する(ステップ525)。次いで、本システムは各サブセグメントに対して曲線当て嵌めプロセスを適用する(ステップ530)。
【0077】
図19を参照すると、平滑化したセグメント612上の点610及び試行的曲線605に対する忠実性基準を計算するための方法600において、システムが試行的曲線605をサンプリングすることによって複数個の試行的点からなるシーケンスを発生する。その試行的曲線は、試行的曲線605に対する連続する点の間の弦からの矢状距離が平坦性許容値を超えることがないように試行的曲線をサンプリングする。本システムは、平滑化したセグメント612の第一端点(不図示)からの点610の正規化した距離を見つけ出す。点610の正規化した距離は平滑化したセグメントの端点と相対的な平滑化したセグメント612上の点610の位置、例えば10%、50%等を表わす。同様に、該試行的曲線上の試行的点の正規化した距離は該試行的曲線上のその試行的点の相対的位置を表わす。次いで、本システムは、このような試行的な点が存在する場合には、試行的曲線605の第一端点(不図示)からの同一の正規化した距離である試行的な点を見つけ出す。このような試行的な点が見つかると、その試行的な点から点610への距離が忠実性許容値より小さいか又はそれに等しい場合には、忠実性基準が満足される。このような試行的な点が見つからない場合には、本システムは、夫々、平滑化したセグメント612における点610の正規化した距離より小さく且つそれより大きな試行的曲線605の第一端点からの正規化した距離である2つの連続した試行的な点620,625を見つけ出す。例えば、点610が55%の正規化した距離を有している場合には(点610がセグメント612の第一端点から第二端点への距離の55%であることを表わす)、本システムは2個の試行的な点を探し出し、その場合に1つの試行的な点は55%未満の正規化した距離を有しており且つ1つの試行的な点は55%より大きな正規化した距離を有している。本システムは2個の試行的な点620,625の間の弦635を計算する。本システムは平滑化したセグメント612における点610に最も近い弦635上の弦点640を見つけ出す。別の具体例においては、弦点640は平滑化したセグメント612における点610の正規化した距離と同一の試行的曲線605の第一端点からの正規化した距離である弦635上の点である。以下のうちのいずれかが成立する場合に忠実性基準が満足される。即ち、(1)平滑化したセグメント内の点610から試行的な点620への距離が忠実性許容値から小さいか又は等しい場合、(2)平滑化したセグメントにおける点610から試行的な点625への距離が忠実性許容値より小さいか又は等しい場合、(3)弦点640からの距離が忠実性許容値の割合であって、平坦性許容値に基づいている割合より小さいか又は等しい場合である。
【0078】
曲線の当て嵌めの1つの具体例は、T. Tudet著「手でスケッチした圧力ブラシストロークの実時間当て嵌め(Real Time Fitting of Hand−Skeched Pressure Brushstrokes)」、ユーログラフィックスプロシーディングズ、13(3):205−220、1994年の文献に記載されている方法に基づくものであり、尚該文献は引用によって本明細書に取込む。この具体例においては、本システムが忠実性許容値fに対し端点の弦長θ≒2f内の平滑化したセグメント内における全ての点にわたり局所的二次補間を使用して平滑化したセグメントの端点における接線ベクトルの推定を計算する。本システムは、正規化した弦長パラメータ化で最小二乗法を使用して平滑化したセグメントに対して拘束された端点及び接線を有する試行的な曲線としてベジェ(Bezier)セグメントを当て嵌める。接線連続性拘束条件はM. Plass及びM. Stone著「部分的パラメトリック曲線での曲線の当て嵌め(Curve−Fitting with Piecewise Prametric Curves)」、グラフィックスプロシーディングズ、アニュアル・コンフェレンス・シリーズ、17(3):229−239、1983年7月の文献に記載されている方法を使用してx成分とy成分の両方を同時的に当て嵌めることによって取扱う。
【0079】
この具体例においては、本システムは以下の技術を使用して当て嵌めの忠実性を評価する。上述した如く、当て嵌めが充分に忠実なものでない場合には、平滑化したセグメントを2つの部分へ細分化し且つ全体的な平滑化したセグメントが満足のいくように当て嵌められるまで、両方のサブセグメントに関して該技術を反復的に繰り返す。
【0080】
従って、γ個の点からなる平滑化したセグメントφψ、ψ=0,...,γ-1が与えられ、且つ弦長θψ及び試行的な曲線b(T)が与えられると、全てのφψに対して、忠実性許容値fに対し|φψ-b(Ti)|≦fであるようにTi、0≦Ti≦1、が存在する場合には、その当て嵌めは充分に忠実なものである。特に、このテストは以下のようにして実現される。
【0081】
本システムは、平坦性εf、尚0<ε<1、内における試行的曲線b(T)の多角形近似を計算する。該多角形近似は弦長Θω、尚ω=0,...,α-1、を有するα個の点Φωから構成されている。平滑化したシーケンスにおける各点φψに対し、Φωψは、
【数11】
であるように多角形近似におけるユニークな点であり、尚、Ωωψは点φψに最も近いΦωψ及びΦωψ +1を介してのライン上の点である。尚、本明細書において、ギリシャ文字記号のギリシャ文字の添え字が2個連続している添え字の場合には、2番目の添え字が1番目の添え字の添え字であることに注意すべきである。
【0082】
多角形近似及び三角不等式の定義により、b(T)は、平滑化したセグメントの全ての点φψに対し、以下の条件のうちのいずれかが成立する場合には、忠実なものであり上述した忠実性基準を満足するものである。
【0083】
【数12】
尚、ΩωψはΦωψ及びΦωψ +1の間の弦上に存在している。
【0084】
Pudetによって記載されている終了テストと同様に、この技術は、多角形近似の点Φω及び平滑化したセグメントの点φψを並列的にトラバースし、どれかの点φψに対して忠実性基準が満足されない場合にはすぐさま停止することによってワンパスで平滑化したセグメントにおける全ての点φψに対し効率的に実施することが可能である。
【0085】
多角形近似の長さはεの平方根と逆に変化する。εの値を減少させることによって、より長い多角形近似を計算する付加された負担が、実際には試行的な曲線が満足のいくものである場合に、その試行的曲線が充分忠実なものではないと結論付けるより小さな蓋然性と利益衡量される。その結果、一般的に所望の結果を発生するためにはε≒1/16の値が好適である。
【0086】
曲線の編集
図20A乃至20Gを参照すると、コンピュータグラフィックシステムにおいてスケッチを基にした編集の異なる側面が示されている。スケッチを基にした編集の1つの技術は、曲線の一部を置換曲線で置換させることである。別の技術はユーザの描画所作に応答して曲線の一部を平滑化させる。3番目の技術はスケッチを基にした編集をブラシストロークの編集へ適用する。曲線編集技術について、コンピュータグラフィックシステム具体例に関連して以下に説明するが、その場合に、ソフトウエアとハードウエアとの結合によって、システムはユーザ入力に応答して適宜の技術を実施する。1つの有益的な具体例においては、コンピュータグラフィックシステムがグラフィカルユーザインターフェース(GUI)を提供し、それはユーザによって選択され且つ適用される場合に、曲線編集技術を実行することの可能な編集用のツールを提供している。
【0087】
図20Aを参照すると、コンピュータシステム10(図1)の具体例700が示されている。システム10は、ディスプレイ18を有しており、例えば描画用タブレット24及ぶスタイラス26(図1)のような入力装置でユーザによって入力された曲線708をレンダリングさせる。システム700はGUIを介してユーザによって選択可能な種々の編集用ツールを提供する。該ツールは曲線編集ツール及び曲線平滑化ツールを包含している。これらのツールは、ブラシストローク編集及びブラシストローク平滑化ツールを包含することが可能であり、又曲線編集及び平滑化ツールはブラシストロークへ適用させて以下に説明するブラシストローク用の技術の結果を達成することが可能である。
【0088】
図20Bを参照すると、曲線710が示されている。曲線710(及び、図20C乃至20Gにおける図示)は図20Aに示した具体例700のディスプレイ装置18上に表示される。ユーザ、例えばアーチストが、曲線710の一部712を編集することを所望する場合がある。そのアーチストは曲線編集ツールを使用してアーチストが変更することを望む曲線710の部分712の近くにスケッチ曲線714を描画する。図20Cに示したように、以下に説明するシステムの動作により、スケッチ曲線714が不所望の部分712を置換し且つ新たな曲線716が得られる。
【0089】
図20Dを参照すると、別の曲線720が示されている。この場合にも、アーチストが曲線720の一部725を変更することを望む場合がある。そのアーチストは平滑化ツールを使用して曲線720の不所望の部分725近くにスケッチ曲線730を描画する。図20Eに示したように、曲線720の不所望の部分725は平滑化され、その結果新たな曲線735が得られ、それは、好適には、元の曲線720よりも一層滑らかなものである。
【0090】
図20Fを参照すると、ブラシストローク740が示されている。ブラシストローク740は軌跡曲線745及び包絡線曲線750を有している。該軌跡曲線はブラシストローク740がなぞった中心線を定義している。包絡線曲線750は1個又はそれ以上の曲線から構成されており且つユーザ入力装置からの種々の入力パラメータによって修正されることのあるモデルブラシ形状から形成される。アーチストがブラシストローク740の一部755を変更することを望む場合がある。そのアーチストはブラシストローク740近くにブラシストローク編集ツールでスケッチ曲線760を描画する。図20Gに示したように、そのスケッチ曲線760は、以下に説明するシステムの動作によって、軌跡曲線745の一部755を置換する。本システムは、元のブラシストローク740からの包絡線情報及び新たな軌跡曲線770に基づいて新たな軌跡曲線770及び新たな包絡線曲線775を使用して新たなブラシストローク765を形成する。一方、軌跡曲線745の一部755は、図20D及び20Eに関して上述した如く平滑化させることが可能である。
【0091】
図21に示したように、既存の曲線のスケッチを基にした編集は6個の一般的なステップを有している。手始めに、アーチストが観察するために表示された既存の曲線又はブラシストロークに関連してユーザの対話が行われる(ステップ800)。そのアーチストは描画用の所作を行い、それは例えばマウス又はグラフィックタブレット等のユーザ入力装置によって記録される。本コンピュータグラフィックシステムはこの所作を解釈してスケッチ曲線を発生する(ステップ805)。好適には、そのスケッチ曲線は、アーチストが所作を行うに従ってシステム内に表示し、アーチストに対して動的な視覚的フィードバックを与える。そのスケッチ曲線は数学的な曲線、複数個の点からなる順番付けされた組、又はアーチストの所作の内容を表わす何らかのその他の形態として本システム内において表現することが可能である。
【0092】
本システムは既存の曲線内のターゲットセクションを見つけ出す(ステップ810)。該スケッチ曲線は2個の端点を有している。本システムは既存の曲線上の2個のターゲット点を見つけ出す。該ターゲット点は該スケッチ曲線の夫々の端点の各々に最も近い点である。好適には、該ターゲット点はユークリッド距離における修正端点に対して最も近い点である。該ターゲット点の間の既存の曲線のセクション(部分)はターゲットセクションである。スケッチ曲線は、本システムがスケッチ曲線を使用する前にオプションとして編集することが可能である(例えば、端部からフックを取除くため)。アーチストが1個を超える既存の曲線の近くにスケッチ曲線を描画する場合には、本システムは、好適には、スケッチ曲線に最も近い曲線を既存の曲線として選択する。一方、アーチストはシステムのユーザインターフェースを介して既存の曲線を選択する場合がある。従って、本システムは、スケッチ曲線により近いその他の既存の曲線が存在する場合であっても、その選択された曲線に対してターゲットセクションを決定する。
【0093】
本システムは、既存の曲線のターゲットセクションを除去する(ステップ815)。実際の具体例においては、ディスプレイ又は既存の曲線情報を包含するいずれかのデータ構造から視覚的に除去又は削除することが必要なものではない。該ターゲットセクションは、本システムが既存の曲線のそのターゲットセクションが後のステップにおいて置換されるということを覚えているようにマーク付けされることが必要であるに過ぎない。
【0094】
本システムは置換曲線を形成する(ステップ820)。アーチストが曲線編集ツールを選択し且つ使用する場合に、その置換曲線はターゲットセクションの付加的な変更なしのスケッチ曲線である。一方、アーチストが平滑化ツールを選択し且つ使用した場合には、本システムはターゲットセクションを平滑化し且つその結果平滑化されたターゲットセクションが置換曲線である。
【0095】
ターゲットセクションを平滑化させるために多様な平滑化プロセスを使用することが可能である。好適な平滑化技術のうちの1つの例は図14A−19に関連して上に説明している。然しながら、ターゲットセクションに対してフィルタを使用する等の別の平滑化技術を使用することが可能である。
【0096】
好適な平滑化技術は複数個の点からなる順番付けされているシーケンスを平滑化させ且つその平滑化された複数個の点からなるシーケンスに対して曲線を当て嵌める。本システムはターゲットセクションを表わすために複数個の点からなる順番付けされているシーケンスを発生する。本システムは好適にはアンダーサンプリング及びオーバーサンプリングを回避する順番付けされているシーケンスに対する多数の点を選択する。この数を選択するために、本システムは候補数を選択する。本システムは候補数と等しい数の点で複数個の点からなる候補シーケンスを計算する。この候補シーケンスにおける点と点との間の間隔が最大間隔許容値を超える場合には、その候補数は低過ぎ且つ本プロセスはより高い候補数で繰り返す。その間隔が許容可能なものである場合には、本システムは候補シーケンス内の連続する点の間のラインを計算する。各ラインとそのラインを形成している2つの点の間のターゲットセクションとの間の距離が平坦性許容値を超える場合には、その候補数は低過ぎ且つ本プロセスはより高い候補数で繰り返す。複数個の点からなる順番付けされているシーケンスが形成されると、本システムは上述した平滑化プロセスに従って平滑化したターゲットセクションを形成する。
【0097】
本システムはターゲットセクションの代わりに既存の曲線内に置換曲線を挿入する(ステップ825)。置換曲線はターゲットセクションを除去することによって形成された既存の曲線内の切除部内に正確に当て嵌まるものでない場合があるので、置換曲線と既存の曲線の端点の間にギャップが残存する場合がある。本システムは置換曲線の端点から既存の曲線上のターゲット点への距離が最小であるように置換曲線を配置させる。1つの具体例においては、該置換曲線は、該切除部に当て嵌められる場合に回転させず、水平方向又は垂直方向に変位させることが可能である。
【0098】
該ギャップは整形によって充填される(ステップ830)。本システムは置換曲線と既存の曲線とを滑らかに連結させるためにスミ肉曲線を発生する。該整形が完了すると、編集が完了する。1つの具体例においては、T. Baudel著「フリーハンド描画用のマークを基にした対話パラダイム(A Mark−based Interaction Paradigm for Free−Hand Drawing)」、プロシーディングズ・オブ・ジ・ACM・シンポジウム・オン・ユーザ・インターフェース・ソフトウエア・アンド・テクノロジィ、マリナデルレイ、カリフォルニア、ACMプレス、1994年11月の文献に記載されている方法を使用して発生される。
【0099】
図22を参照すると、整形処理が示されている。本システムがターゲットセクションを計算すると、そのターゲットセクションに対する第一及び第二端点900,902が既存の曲線904上において見つけられる。既存の曲線904上のターゲット端点900,902と置換曲線910の挿入端点906,908との間にギャップが存在している。本システムは既存の曲線904と置換曲線910とを連結するスミ肉曲線912,914を発生する。滑らかなスミ肉曲線を発生するために、本システムは既存の曲線904及び置換曲線910から小さなセクションを除去し、ギャップを拡大させる。本システムは既存の曲線904上の第一整形点916を見つける。本システムは、置換曲線910上に第二整形点918を見つける。第一及び第二整形点916,918は、2個の端点900,906の間の距離に基づいて決定されるそれらの夫々の端点900,906からの距離である。本システムは、置換曲線910上の第三の整形点920を見つけ出す。本システムは、既存の曲線904上の第四の整形点922を見つけ出す。第一及び第二整形点916,918と同様に、第三及び第四整形点920,922及びそれらの夫々の端点908,902の間の距離はこれらの端点908,902の間の距離に基づいている。第一スミ肉曲線912が第一整形点916及び第二整形点912を連結する。第二スミ肉曲線914が第三整形点920及び第四整形点922を連結する。各スミ肉曲線912,914は、好適には、各端点916,918,920,922において端点接線連続性を有している。
【0100】
既存の曲線及び置換曲線を整形する上で拡大処理が滑らかなスミ肉曲線を発生する。更に、ギャップを拡大させることによって、フック924等の置換曲線の端部における人工的な効果が除去される。フック924は、例えばストロークの終りにスタイラスがグラフィックタブレットから持ち上げられる場合等のアーチストによる意図しない所作によって発生される場合がある。
【0101】
図23を参照すると、既存のブラシストローク1000のスケッチを基にした編集用の技術が示されている。ブラシストロークを描画する技術を図1−13に関連して上に説明してある。ブラシストロークは軌跡曲線と包絡線曲線とを有している。軌跡曲線はブラシストロークの中心線を画定する。包絡線曲線は、包絡線情報を軌跡曲線へ適用することによって形成される。包絡線情報は包絡線パラメータの1個又はそれ以上のアフィンマトリクスを有している。包絡線パラメータは、好適には、ユーザ入力装置から受取ったデータから計算される。該データは入力装置の移動速度、入力装置へ付与される圧力、入力装置の回転、入力装置の傾斜等の情報を包含することが可能である。グラフィックシステムのユーザは包絡線パラメータ内へのデータの変換を制御するためにシステム内のパラメータを設定することが可能である。各アフィンマトリクスは1個又はそれ以上の包絡線パラメータを包含している。該包絡線パラメータはブラシストロークグラフィックにおいて現実的なブラシ効果を形成するためにユーザによって選択されたブラシ形状に対するモデルブラシ形状に適用される。該包絡線パラメータはスケール、オフセット、回転等の情報を包含している。
【0102】
本システムは、スケッチ曲線を受取り(ステップ1005)、且つ既存の軌跡曲線上にターゲットセクションを見つけ出す(ステップ1010)。上述した如く、該ターゲットセクションは第一ターゲット端点と第二ターゲット端点との間の既存の軌跡曲線のセクションである。第一ターゲット端点は、スケッチ曲線の第一端点に最も近い既存の軌跡曲線上の1つの点である。第二ターゲット端点は、スケッチ曲線の第二端点に最も近い既存の軌跡曲線上の点である。本システムは、既存の軌跡曲線から該ターゲットセクションを除去し(ステップ1015)、且つ置換曲線を形成する(ステップ1020)。アーチストによる選択に依存して、該置換曲線はスケッチ曲線であるか、又は上述した如くに平滑化されたターゲットセクションとすることが可能である。本システムは該置換曲線を該ターゲットセクションの代わりに既存の軌跡曲線内に挿入する(ステップ1025)。本システムは上述した如くに該置換曲線及び該既存の軌跡曲線を整形する(ステップ1030)。整形が完了した後に、該既存の軌跡曲線を編集して編集済の軌跡曲線を形成する。一方、該編集済の軌跡曲線は、従来技術において開示されているスケッチを基にした編集技術を使用して形成することが可能である。
【0103】
本システムは該包絡線曲線を編集して編集済の軌跡曲線と対応させ、新たな包絡線を形成する。本システムは、既存の軌跡曲線のターゲットセクションから及び編集済の軌跡曲線からの円弧長を使用して既存のアフィンマトリクスを線形補間することによって新たなアフィンマトリクスを形成する(ステップ1035)。編集済の軌跡曲線上の円弧長位置における新たなアフィンマトリクスに対して、本システムは編集済の軌跡曲線上の新たなアフィンマトリクスの円弧長位置に対応するターゲットセクション上のマトリクス位置を見つけ出す。本システムは、対応する既存のアフィンマトリクスを有するマトリクス位置に対して最も近い円弧長位置であり且つそのマトリクス位置の両側に存在している該ターゲットセクション上の2個のターゲット円弧長位置を見つけ出す。次いで、本システムは、新たなアフィンマトリクスを発生するために、該マトリクス位置に対してこれら2個のターゲット位置の相対的な距離に基づいてこれらのターゲット円弧長位置に対応する既存のアフィンマトリクスを線形補間する。本システムは、ブラシストロークが最初にエンターされた場合に新たな包絡線曲線がアーチストの当初の意図に従うものであることを確保するために、必要に応じて、ユーザ入力装置から受取ったデータからのデータを組込むことが可能である。
【0104】
本システムは、アフィンブラシストロークを描画する場合に上述した態様で編集済の軌跡曲線に対して新たなアフィンマトリクスを適用することによって新たな包絡線曲線を計算する(ステップ1040)。1つの具体例では、全体的な編集済軌跡曲線に沿って新たな包絡線を全体として計算する。別の具体例では、スケッチ曲線に対応する包絡線の部分に対して新たな包絡線を計算し、必要に応じて包絡線部分を平滑化する。新たな包絡線を計算した後に、編集済のブラシストローク1045が完成する。
【0105】
本発明は、デジタル電子回路、又はコンピュータハードウエア、ファームウエア、ソフトウエア、又はそれらの組合わせで実現することが可能である。本発明装置は、プログラム可能なプロセサによって実行するために機械読取可能な格納装置において格納されたコンピュータプログラム製品の形態で実現することが可能であり、且つ本発明の方法ステップは、入力データに関して動作し且つ出力を発生することによって本発明の機能を実施するための複数個の命令からなるプログラムを実行するプログラム可能なプロセサによって実施することが可能である。本発明は、データ格納システムからデータ及び命令を受取り且つデータ格納システムへデータ及び命令を送るべく結合されている少なくとも1個のプログラム可能なプロセサ、少なくとも1個の入力装置、少なくとも1個の出力装置を包含するプログラム可能なシステム上で実行可能な1個又はそれ以上のコンピュータプログラムの形態で実現することが可能である。各コンピュータプログラムは、ハイレベル手順又はオブジェクト指向型プログラミング言語で実現することが可能であり、又は、所望により、アッセンブリ言語又は機械言語で実現することが可能であり、その言語はコンパイル型又はインタプリタ型の言語とすることが可能である。適宜のプロセサとしては、1例として、汎用及び特定目的プロセサの両方を包含している。一般的に、プロセサはリードオンリメモリ及び/又はランダムアクセスメモリから命令及びデータを受取る。コンピュータプログラム命令及びデータを格納するのに適した格納装置は、例示として、EPROM、EEPROM等の半導体メモリ装置や、フラッシュメモリ装置、内部ハードディスク及び着脱自在なディスク等の磁気ディスク、MOディスク、及びCD−ROMディスク等を包含する全ての形態の非揮発性メモリを包含している。前述したもののいずれかを、ASIC(応用特定集積回路)によって補充するか、又はその中に組込むことが可能である。
【0106】
ユーザとの対話を与えるために、本発明は、ユーザに対して情報を表示するためのモニタ又はLCDスクリーン等の表示装置及びキーボード及びユーザがコンピュータシステムへ入力を供給することの可能なマウス又はトラックボール等のポインティング装置を具備するコンピュータシステム上で実現することが可能である。該コンピュータシステムは、コンピュータプログラムがユーザと対話するグラフィカルユーザインターフェースを与えるためにプログラムすることが可能である。ユーザはグラフィカルユーザインターフェースを介して電子文書を操作し、その場合に電子文書はアプリケーションプログラムによって作成されるか又は編集された作品を有しており、且つ、特に、ファイルシステム内に保存される場合には、別個のファイルとして保存される独立した作品を包含している。
【0107】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図1】 コンピュータ及びコンピュータ要素を示した概略ブロック図。
【図2】 ユーザが描画したストロークから充填された包絡線を発生する方法を示したフローチャート。
【図3】 多角形ブラシを示した概略図。
【図4A】 描画用タブレット及びスタイラスを示した概略側面図。
【図4B】 描画用タブレット及びスタイラスを示した概略平面図。
【図5】 軌跡に対する多角形近似を示した概略図。
【図6】 ストロークの包絡線の離散型近似を発生する方法を示したフローチャート。
【図7】 ラインセグメントの1つの側部から最も遠いブラシインスタンス上の点を識別するための方法を示したフローチャート。
【図8】 ラインセグメントからブラシインスタンスへ描画されたラインの概略図。
【図9】 包絡線近似の1つの側部を形成するために複数個の点を接続する方法を示したフローチャート。
【図10】 軌跡に対する多角形近似を示した概略図。
【図11】 軌跡に対する多角形近似を示した概略図。
【図12】 包絡線近似の概略図。
【図13A】 ショートカット最適化に対して発生する可能性のある包絡線近似を示した概略図。
【図13B】 ショートカット最適化に対して発生する可能性のある包絡線近似を示した概略図。
【図14A】 複数個の点からなる開いたシーケンスに対して適用される曲線平滑化技術を示した概略図。
【図14B】 複数個の点からなる開いたシーケンスに対して適用される曲線平滑化技術を示した概略図。
【図14C】 複数個の点からなる開いたシーケンスに対して適用される曲線平滑化技術を示した概略図。
【図14D】 複数個の点からなる閉じたシーケンスに対して適用した曲線平滑化技術を示した概略図。
【図14E】 複数個の点からなる閉じたシーケンスに対して適用した曲線平滑化技術を示した概略図。
【図14F】 複数個の点からなる閉じたシーケンスに対して適用した曲線平滑化技術を示した概略図。
【図15】 曲線平滑化技術を示したフローチャート。
【図16】 角部の点を見つけ出すプロセスを示したフローチャート。
【図17A】 複数個の点からなるオリジナルのシーケンスが閉じたシーケンスである場合にセグメントを平滑化するプロセスを示したフローチャート。
【図17B】 複数個の点からなるオリジナルのシーケンスが開いたシーケンスである場合にセグメントを平滑化するプロセスを示したフローチャート。
【図18】 平滑化したセグメントに対して曲線を当て嵌めるためのプロセスを示したフローチャート。
【図19】 1個の点に対する忠実性基準を計算する場合を示した概略図。
【図20A】 図1のコンピュータシステムの具体例を示した概略図。
【図20B】 曲線を修正する状態を示した概略図。
【図20C】 曲線を修正する状態を示した概略図。
【図20D】 曲線を修正する状態を示した概略図。
【図20E】 曲線を修正する状態を示した概略図。
【図20F】 曲線を修正する状態を示した概略図。
【図20G】 曲線を修正する状態を示した概略図。
【図21】 曲線を編集する技術を示したフローチャート。
【図22】 既存の曲線と置換曲線との間の整形を示した概略図。
【図23】 ブラシストロークを編集する技術を示したフローチャート。
【符号の説明】
10 コンピュータシステム
11 汎用コンピュータ
12 ペイントアプリケーション
14 ブラシストロークプロセス
15 多角形ブラシ
17 包絡線近似
18 モニタ
20 キーボード
22 マウス
24 描画用タブレット
26 スタイラス
60 軌跡
Claims (14)
- 電子文書内の曲線を編集するコンピュータによって実行される方法において、
ユーザからの入力としてスケッチ曲線を受取り、前記スケッチ曲線は2つの端点を有しており、
前記スケッチ曲線の端点の各々に最も近い既存の曲線内の1つの点を見つけ出すことによって前記既存曲線のターゲットセクションを識別し、前記ターゲットセクションは見つかった点の間の既存の曲線の部分であり、
前記既存の曲線から前記ターゲットセクションを除去し、前記既存の曲線内に2つの内部端点を残し、
置換曲線を作成し、前記置換曲線は2つの端点を有しており、
前記置換曲線を前記ターゲットセクションの代わりに前記既存の曲線内に挿入し、
前記既存の曲線と前記置換曲線との間の各端点におけるギャップを閉じるためにそれらの夫々の隣りの端点において前記既存の曲線と前記置換曲線とを整形する、
ことを特徴とする方法。 - 請求項1において、前記点の間の距離をユークリッド距離によって測定することを特徴とする方法。
- 請求項1において、前記既存の曲線及び前記置換曲線を整形する場合に、
前記置換曲線の各端点において前記置換曲線を短縮させ、
各内部端点において前記既存の曲線を短縮させ、
前記短縮させた置換曲線及び前記短縮させた既存の曲線を連結させるためにスミ肉曲線を形成する、
ことを特徴とする方法。 - 請求項3において、前記既存の曲線及び前記置換曲線の隣接する短縮させた端部の各対の各端部が同一の量だけ短縮されることを特徴とする方法。
- 請求項3において、前記短縮させた端部の各々が前記短縮させた端部に隣接するギャップの寸法から計算した量だけ短縮されることを特徴とする方法。
- 請求項1において、前記置換曲線が前記スケッチ曲線であることを特徴とする方法。
- 請求項1において、前記置換曲線を形成する場合に、前記ターゲットセクションを平滑化して前記置換曲線を形成することを特徴とする方法。
- 請求項7において、前記ターゲットセクションを平滑化する場合に、
前記ターゲットセクションを表わす点の順番付けしたシーケンスを形成し、
前記順番付けした点のシーケンスの点を1個又はそれ以上の隣接した点のセグメントへグループ化し、
前記各セグメントの点を平滑化して平滑した点のセグメントを発生し、
平滑した点の各セグメントに対して1個又はそれ以上の数学的曲線を当て嵌め、前記1つ又はそれ以上の数学的曲線が一体となって前記置換曲線を形成する、ことを特徴とする方法。 - 請求項8において、点の順番付けしたシーケンスを形成する場合に、
前記点の順番付けしたシーケンスにおける点の間の間隔距離が最大間隔を超えることがなく、且つ
前記点の順番付けしたシーケンスにおける2つの連続した点の間に形成される直線と前記ターゲットセクションとの間の平坦性距離が平坦性許容値を超えることがない、ように点を選択することを特徴とする方法。 - 請求項1において、前記既存の曲線が包絡線を持ったブラシストロークの軌跡曲線であり、本方法が、更に、既存のブラシストロークの包絡線情報と編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線を計算することを特徴とする方法。
- ブラシストロークが軌跡曲線と、包絡線曲線と、包絡線情報とを有しているグラフィックシステムにおけるブラシストロークを編集する方法において、
スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ前記スケッチ曲線に基づいて前記軌跡曲線を修正するものであり、
既存のブラシストロークの包絡線情報及び編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線曲線を計算する、
ことを包含しており、スケッチを基にした編集を行う場合に、
前記軌跡曲線上のターゲットセクションを識別するために前記スケッチ曲線を使用し、前記ターゲットセクションの端点は前記スケッチ曲線の端点に最も近い前記軌跡曲線上の点であり、
前記ターゲットセクションを前記軌跡曲線上の前記スケッチ曲線と置換し、
編集した軌跡曲線を作成するために前記軌跡曲線及び前記スケッチ曲線を互いに整形させる、
ことを特徴とする方法。 - ブラシストロークが軌跡曲線と、包絡線曲線と、包絡線情報とを有しているグラフィックシステムにおけるブラシストロークを編集する方法において、
スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ前記スケッチ曲線に基づいて前記軌跡曲線を修正するものであり、
既存のブラシストロークの包絡線情報及び編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線曲線を計算する、
ことを包含しており、スケッチを基にした編集を行う場合に、
前記スケッチ曲線を使用して前記軌跡曲線上のターゲットセクションを識別し、その場合に、前記ターゲットセクションの端点は前記スケッチ曲線の端点に最も近い前記軌跡曲線上の点であり、
前記ターゲットセクションを平滑化し、
前記ターゲットセクションを前記軌跡曲線における平滑化したターゲットセクションと置換し、
編集した軌跡曲線を作成するために前記軌跡曲線及び平滑化したターゲットセクションを互いに整形させる、
ことを特徴とする方法。 - ブラシストロークが軌跡曲線と、包絡線曲線と、包絡線情報とを有しているグラフィックシステムにおけるブラシストロークを編集する方法において、
スケッチを基にした編集によってブラシストロークの軌跡曲線を編集し、スケッチを基にした編集は入力としてスケッチ曲線を受取り且つ前記スケッチ曲線に基づいて前記軌跡曲線を修正するものであり、
既存のブラシストロークの包絡線情報及び編集した軌跡曲線を使用して新たなブラシストロークに対する新たな包絡線曲線を計算する、
ことを包含しており、新たなブラシストロークに対する新たな包絡線曲線を計算する場合に、
既存のブラシストロークの軌跡曲線の円弧長及び編集した軌跡曲線の円弧長に基づいて既存のブラシストロークの軌跡曲線の包絡線情報を線形補間することによって新たな包絡線情報を計算し、
前記新たな包絡線情報を編集した軌跡曲線へ適用する、
ことを特徴とする方法。 - コンピュータプログラムアプリケーションにおけるグラフィックを編集するユーザと対話するプログラム命令を格納しているコンピュータによって読取可能な格納媒体を有する装置において、前記装置は、プログラム可能なプロセサをして、
ユーザからの入力としてスケッチ曲線を受取らせ、前記スケッチ曲線は2つの端点を有しており、
前記スケッチ曲線の端点の各々に最も近い既存の曲線内の1つの点を見つけ出すことによって前記既存の曲線のターゲットセクションを識別させ、前記ターゲットセクションは見つけられた点の間の前記既存の曲線の部分であり、
前記既存の曲線から前記ターゲットセクションを除去し、前記既存の曲線内に2つの内部端点を残存させ、
置換曲線を形成させ、前記置換曲線は2つの端点を有しており、
前記ターゲットセクションの代わりに前記置換曲線を前記既存の曲線内に挿入させ、
前記既存の曲線と前記置換曲線との間の各端点におけるギャップを閉じるために整形させることによってそれらの夫々の隣りの端点において前記既存の曲線と前記置換曲線とを連結させる、
ために動作可能な命令を有していることを特徴とする装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/056,567 US6208355B1 (en) | 1998-04-07 | 1998-04-07 | Sketch-based editing of curves |
US09/56567 | 1998-04-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11328431A JPH11328431A (ja) | 1999-11-30 |
JP4312295B2 true JP4312295B2 (ja) | 2009-08-12 |
Family
ID=22005279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10051899A Expired - Lifetime JP4312295B2 (ja) | 1998-04-07 | 1999-04-07 | スケッチを基にした曲線の編集 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6208355B1 (ja) |
EP (2) | EP1612735B1 (ja) |
JP (1) | JP4312295B2 (ja) |
DE (2) | DE69940445D1 (ja) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
JP3564371B2 (ja) | 2000-09-01 | 2004-09-08 | 日本電気株式会社 | 図形編集装置及び方法 |
US6628295B2 (en) * | 2001-01-31 | 2003-09-30 | Adobe Systems Incorporated | Modifying a stylistic property of a vector-based path |
US7057615B2 (en) | 2001-06-28 | 2006-06-06 | Microsoft Corporation | Method and system for representing and displaying digital ink |
US7339597B1 (en) | 2002-06-21 | 2008-03-04 | Adobe Systems Incorporated | Creating and manipulating related vector objects in an image |
US7123269B1 (en) * | 2002-06-21 | 2006-10-17 | Adobe Systems Incorporated | Modifying vector objects |
US8442331B2 (en) | 2004-02-15 | 2013-05-14 | Google Inc. | Capturing text from rendered documents using supplemental information |
US7707039B2 (en) | 2004-02-15 | 2010-04-27 | Exbiblio B.V. | Automatic modification of web pages |
EP1562130A1 (en) * | 2004-02-06 | 2005-08-10 | Dassault Systèmes | A process for modifying a curve in a computer-aided design system |
US7812860B2 (en) | 2004-04-01 | 2010-10-12 | Exbiblio B.V. | Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device |
US10635723B2 (en) | 2004-02-15 | 2020-04-28 | Google Llc | Search engines and systems with handheld document data capture devices |
US20060081714A1 (en) | 2004-08-23 | 2006-04-20 | King Martin T | Portable scanning device |
US20060098900A1 (en) | 2004-09-27 | 2006-05-11 | King Martin T | Secure data gathering from rendered documents |
US9008447B2 (en) | 2004-04-01 | 2015-04-14 | Google Inc. | Method and system for character recognition |
US7894670B2 (en) | 2004-04-01 | 2011-02-22 | Exbiblio B.V. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US8081849B2 (en) | 2004-12-03 | 2011-12-20 | Google Inc. | Portable scanning and memory device |
WO2008028674A2 (en) | 2006-09-08 | 2008-03-13 | Exbiblio B.V. | Optical scanners, such as hand-held optical scanners |
US9143638B2 (en) | 2004-04-01 | 2015-09-22 | Google Inc. | Data capture from rendered documents using handheld device |
US7990556B2 (en) | 2004-12-03 | 2011-08-02 | Google Inc. | Association of a portable scanner with input/output and storage devices |
US9116890B2 (en) | 2004-04-01 | 2015-08-25 | Google Inc. | Triggering actions in response to optically or acoustically capturing keywords from a rendered document |
US8146156B2 (en) | 2004-04-01 | 2012-03-27 | Google Inc. | Archive of text captures from rendered documents |
US8713418B2 (en) | 2004-04-12 | 2014-04-29 | Google Inc. | Adding value to a rendered document |
US8620083B2 (en) | 2004-12-03 | 2013-12-31 | Google Inc. | Method and system for character recognition |
US8874504B2 (en) | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from a rendered document |
US8489624B2 (en) | 2004-05-17 | 2013-07-16 | Google, Inc. | Processing techniques for text capture from a rendered document |
US7057616B2 (en) * | 2004-04-23 | 2006-06-06 | Microsoft Corporation | Using constrained optimization in curve editing |
DE102004022320A1 (de) * | 2004-05-06 | 2005-11-24 | Daimlerchrysler Ag | Elektronische Konstruktionsvorrichtung |
US8346620B2 (en) | 2004-07-19 | 2013-01-01 | Google Inc. | Automatic modification of web pages |
EP2164013B1 (en) * | 2008-09-02 | 2017-03-01 | F. Hoffmann-La Roche AG | Method and apparatus for setting a basal rate profile for an insulin pump |
EP2399385B1 (en) | 2009-02-18 | 2019-11-06 | Google LLC | Automatically capturing information, such as capturing information using a document-aware device |
US8447066B2 (en) | 2009-03-12 | 2013-05-21 | Google Inc. | Performing actions based on capturing information from rendered documents, such as documents under copyright |
DE202010018551U1 (de) | 2009-03-12 | 2017-08-24 | Google, Inc. | Automatische Bereitstellung von Inhalten, die mit erfassten Informationen, wie etwa in Echtzeit erfassten Informationen, verknüpft sind |
US9081799B2 (en) | 2009-12-04 | 2015-07-14 | Google Inc. | Using gestalt information to identify locations in printed information |
US9323784B2 (en) | 2009-12-09 | 2016-04-26 | Google Inc. | Image search using text-based elements within the contents of images |
USD656507S1 (en) | 2010-04-30 | 2012-03-27 | American Teleconferencing Services, Ltd. | Display screen portion with an animated image |
US9560206B2 (en) | 2010-04-30 | 2017-01-31 | American Teleconferencing Services, Ltd. | Real-time speech-to-text conversion in an audio conference session |
US9189143B2 (en) | 2010-04-30 | 2015-11-17 | American Teleconferencing Services, Ltd. | Sharing social networking content in a conference user interface |
US10268360B2 (en) | 2010-04-30 | 2019-04-23 | American Teleconferencing Service, Ltd. | Participant profiling in a conferencing system |
US8626847B2 (en) | 2010-04-30 | 2014-01-07 | American Teleconferencing Services, Ltd. | Transferring a conference session between client devices |
US10372315B2 (en) | 2010-04-30 | 2019-08-06 | American Teleconferencing Services, Ltd | Location-aware conferencing with calendar functions |
USD642586S1 (en) | 2010-04-30 | 2011-08-02 | American Teleconferencing Services, Ltd. | Portion of a display screen with a user interface |
USD656941S1 (en) | 2010-04-30 | 2012-04-03 | American Teleconferencing Services, Ltd. | Display screen portion with an animated image |
USD642587S1 (en) | 2010-04-30 | 2011-08-02 | American Teleconferencing Services, Ltd. | Animated graphical user interface for a portion of a display screen |
USD656942S1 (en) | 2010-04-30 | 2012-04-03 | American Teleconferencing Services, Ltd. | Display screen portion with an animated image |
US9419810B2 (en) | 2010-04-30 | 2016-08-16 | American Teleconference Services, Ltd. | Location aware conferencing with graphical representations that enable licensing and advertising |
USD656505S1 (en) | 2010-04-30 | 2012-03-27 | American Teleconferencing Services, Ltd. | Display screen portion with animated image |
USD656506S1 (en) | 2010-04-30 | 2012-03-27 | American Teleconferencing Services, Ltd. | Display screen portion with an animated image |
US9082106B2 (en) | 2010-04-30 | 2015-07-14 | American Teleconferencing Services, Ltd. | Conferencing system with graphical interface for participant survey |
US9106794B2 (en) | 2010-04-30 | 2015-08-11 | American Teleconferencing Services, Ltd | Record and playback in a conference |
USD656504S1 (en) | 2010-04-30 | 2012-03-27 | American Teleconferencing Services, Ltd. | Display screen portion with an animated image |
EP2583253A2 (en) * | 2010-06-21 | 2013-04-24 | Johan Gielis | Computer implemented tool box systems and methods |
CN102332173B (zh) * | 2011-09-13 | 2013-03-27 | 浙江万朋网络技术有限公司 | 一种基于向量代数的简明软笔效果生成方法 |
JP2015043159A (ja) * | 2013-08-26 | 2015-03-05 | シャープ株式会社 | タッチパネル装置及び表示装置 |
JP6472171B2 (ja) * | 2013-08-27 | 2019-02-20 | キヤノン株式会社 | 画像処理装置およびその方法 |
WO2015075931A1 (en) * | 2013-11-19 | 2015-05-28 | Wacom Co., Ltd. | Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication |
SG11201610031XA (en) * | 2014-05-30 | 2016-12-29 | Fast Retailing Co Ltd | Image processing program, image processing terminal, image processing system, and image processing method |
US10930045B2 (en) | 2017-03-22 | 2021-02-23 | Microsoft Technology Licensing, Llc | Digital ink based visual components |
US10380175B2 (en) | 2017-06-06 | 2019-08-13 | International Business Machines Corporation | Sketch-based image retrieval using feedback and hierarchies |
KR102197652B1 (ko) * | 2018-12-14 | 2021-01-04 | 네이버웹툰 유한회사 | 선따기 훈련 데이터 생성 방법, 시스템 및 컴퓨터 프로그램 |
US20230419567A1 (en) * | 2022-06-23 | 2023-12-28 | Adobe Inc. | Generating chain pull painting styles in digital applications |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4620287A (en) * | 1983-01-20 | 1986-10-28 | Dicomed Corporation | Method and apparatus for representation of a curve of uniform width |
GB2244892B (en) * | 1990-06-08 | 1994-12-14 | Electronic Graphics Ltd | Computer graphics |
US5594855A (en) * | 1992-02-11 | 1997-01-14 | Macromedia, Inc. | System and method for generating real time calligraphic curves |
US5367617A (en) * | 1992-07-02 | 1994-11-22 | Microsoft Corporation | System and method of hybrid forward differencing to render Bezier splines |
JPH06176122A (ja) * | 1992-12-09 | 1994-06-24 | Casio Comput Co Ltd | 図形編集装置 |
US5594853A (en) * | 1995-01-03 | 1997-01-14 | University Of Washington | Method and system for editing the general sweep and detail of a figure with a curve |
US5940083A (en) * | 1997-04-01 | 1999-08-17 | Novell, Inc. | Multi-curve rendering modification apparatus and method |
US6100904A (en) * | 1997-06-25 | 2000-08-08 | Adobe Systems Incorporated | Curvature smoothing |
-
1998
- 1998-04-07 US US09/056,567 patent/US6208355B1/en not_active Expired - Lifetime
-
1999
- 1999-03-29 EP EP05015813A patent/EP1612735B1/en not_active Expired - Lifetime
- 1999-03-29 DE DE69940445T patent/DE69940445D1/de not_active Expired - Lifetime
- 1999-03-29 DE DE69927738T patent/DE69927738T2/de not_active Expired - Lifetime
- 1999-03-29 EP EP99302435A patent/EP0953944B1/en not_active Expired - Lifetime
- 1999-04-07 JP JP10051899A patent/JP4312295B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1612735B1 (en) | 2009-02-18 |
US6208355B1 (en) | 2001-03-27 |
DE69927738T2 (de) | 2006-07-20 |
EP0953944B1 (en) | 2005-10-19 |
EP0953944A3 (en) | 2003-07-09 |
EP0953944A2 (en) | 1999-11-03 |
DE69927738D1 (de) | 2006-03-02 |
JPH11328431A (ja) | 1999-11-30 |
DE69940445D1 (de) | 2009-04-02 |
EP1612735A1 (en) | 2006-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4312295B2 (ja) | スケッチを基にした曲線の編集 | |
US6067094A (en) | Brushstroke envelopes | |
US6304677B1 (en) | Smoothing and fitting point sequences | |
Rössl et al. | Extraction of feature lines on triangulated surfaces using morphological operators | |
Bruderlin et al. | Motion signal processing | |
US7589720B2 (en) | Mesh editing with gradient field manipulation and user interactive tools for object merging | |
US7443393B2 (en) | Method, system, and program product for re-meshing of a three-dimensional input model using progressive implicit approximating levels | |
Barnes et al. | PatchMatch: A randomized correspondence algorithm for structural image editing | |
US7814441B2 (en) | System and method for identifying original design intents using 3D scan data | |
MX2007014662A (es) | Deformacion de engranaje sin limitaciones utilizando grafica volumetrica laplaciana. | |
JP2003323631A (ja) | 3dシーンのモデリング方法 | |
US6553337B1 (en) | Parameterization of subdivision surfaces | |
US8830235B1 (en) | Non-uniform relaxation procedure for multiresolution mesh processing | |
EP1439494B1 (en) | Method for subdividing a mesh or polyline | |
Hildebrandt et al. | Constraint-based fairing of surface meshes | |
Bendels et al. | Detail-Preserving Surface Inpainting. | |
EP1793349B1 (en) | Method and aparatus for discrete mesh filleting and rounding through ball pivoting | |
US20090274394A1 (en) | Image processing method, image processing apparatus, and computer readable storage medium | |
KR20200045190A (ko) | 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치 | |
US8681156B2 (en) | Systems and methods for interactive vectorization | |
US7623127B2 (en) | Method and apparatus for discrete mesh filleting and rounding through ball pivoting | |
JPH06274149A (ja) | アウトラインフォントの幅変更処理方法および装置 | |
Schmidt et al. | Implicit sweep surfaces | |
Roy et al. | Multiresolution analysis for meshes with appearance attributes | |
Lanquetin et al. | Generalized SCODEF deformations on subdivision surfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090109 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090115 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090210 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090216 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090313 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090414 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090513 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130522 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130522 Year of fee payment: 4 |
|
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 |
|
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 |
|
EXPY | Cancellation because of completion of term |