JPH09506991A - 経路定義曲線装置および方法 - Google Patents

経路定義曲線装置および方法

Info

Publication number
JPH09506991A
JPH09506991A JP8529507A JP52950796A JPH09506991A JP H09506991 A JPH09506991 A JP H09506991A JP 8529507 A JP8529507 A JP 8529507A JP 52950796 A JP52950796 A JP 52950796A JP H09506991 A JPH09506991 A JP H09506991A
Authority
JP
Japan
Prior art keywords
curve
user
input
data
output
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.)
Pending
Application number
JP8529507A
Other languages
English (en)
Inventor
ブレ−クヒュイセン,ジェローム,エイ
Original Assignee
ノベル,インコーポレイテッド
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 ノベル,インコーポレイテッド filed Critical ノベル,インコーポレイテッド
Publication of JPH09506991A publication Critical patent/JPH09506991A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Abstract

(57)【要約】 経路定義曲線装置および方法が開示されている。出力デバイスから表示される曲線を作成する方法および装置は、ユーザによる制御に応答して入力デバイスによって生成された入力信号から曲線を対話でかつ直接的に指定するように動作する。装置は、ユーザによって直接に(近似的に曲線上に位置するようにした実際の入力点を使用して)指定された経路定義曲線上の点を入力するポインタをもつ入力デバイスを含むことが可能である。プロセッサは曲線のイメージをレンダリングするある種のレンダリング・データをリアルタイムで出力デバイスに出力してユーザにフィードバックする。ユーザはフィードバックされたイメージに基づいてポインタを動かし、曲線に入力点を追加することにより曲線を拡大(編集、延長)することができる。装置と方法は従属制御変数の非線形係数を線形的組合せで結合するように選択された「構築変数」にマッピングして、非線形係数を置換する。新しい入力が追加されると、構築変数は元の非線形加算項から再計算されるのではなく、新しい値に線形的に変換される。曲線は出力デバイス上でレンダリングされ、ユーザがポインタを動かして入力を追加することにより表示された曲線に適合させるとリアルタイムで即時にユーザにフィードバックされる。

Description

【発明の詳細な説明】 経路定義曲線装置および方法 技術分野 本発明は曲線をドローイング(描画)する装置に関し、より具体的には、出力 デバイスからフィードバックを受けるユーザによって制御される入力デバイスに 応答して、経路定義曲線(path defined curves)をリアルタイムで出力デバイス 上に生成する新規のシステムおよび方法に関する。 背景技術 多くのコンピュータは、アーチスト、ドラフトマン、エンジニア、建築家など によって専門的サービスに関係する図形をドローイングするために使用されてい る。構造をペーパーやその他のディスプレイ媒体上にグラフィカル・イメージで 表現するには、いくつかの方法が可能である。ペーパーに鉛筆を使用する伝統的 方法はまだ利用されている。また、ペーパーやリネン、プラスチック(例えば、 MYLAR(登録商標))にインクを使用する方法も、同じように利用されている。 しかるに、これらの媒体でドローイングされた図形を変更することは困難である か、不可能である。多くのプロフェッショナルは、ディジタル・コンピュータを 使用して曲線をドローイングすることにより、グラフィック作品のセーブ、再現 、スケーリング、および修正を可能にしている。 しかるに、曲線をドローイングする場合、それが「曲線(curved line)」であ るか、曲面であるかに関係なく、多くのトレードオフ(利害得失)を含んでいる 。例えば、曲線は、実際には、非常に複雑な数学式の目に見える形で表されたも のである場合がある。式は既知である場合もあれば、未知である場合もある。曲 線は、アーチストがオブジェクトをページまたはディスプレイ上に表現したもの の一部にすぎない場合がある。 コンピュータを使用して曲線をドローイングし、セーブし、修正することは、 スケッチパッド上でブラシまたは鉛筆で滑らかに流れる円弧を描く程には単純で ない。コンピュータでは、動作するための離散的情報が必要である。コンピュー タは処理能力と計算速度に限りがある。ユーザはそのような曲線上の点の実際の 計算値をリアルタイムで常に得られるとは限らない(つまり、この用語はこの分 野ではそのように理解されており、また、曲線はユーザによってドローイングま たは定義されるからである)。 アーチストまたはドラフトマンがコンピュータ・スタイラス(computer stylus )を使用して曲線をドローイングするためには、ドローイングされる曲線を制御 する必要がある。各ユーザは、曲線を描いているとき曲線が展開していく様子を 見ることができると好都合である。ユーザはレンダリング(rendering)の結果に 応じて手の動きを調節して、頭の中で描いている通りに表現できることを望んで いる。また、ユーザはコンピュータが間違ったジッタ(jitter)をフィルタにかけ て除去してくれるものと期待している。ジッタは、例えば、手の動きが不安定で 、誤った位置に置かれることや、ディジタル量子化、その他システムの物理的特 性が原因で起こることがある。 ユーザは曲線を定義する数学の知識なしで操作する場合がある。例えば、ユー ザは曲線が特定のルールに従って描かれることに無頓着である場合でさえある。 それよりもむしろ、ユーザは表現したもの(representation)を出力デバイスから 表示することを望んでおり、曲線をスケッチし、直接に見ているものを変更する ことで曲線を直観的に修正できることを望んでいる。 しかるに、曲線を生成するためにコンピュータによって使用される数学公式や 表現は、ユーザに理解しやすい変数や直観的に分かりやすい変数を使用していな いことがある。例えば、多くの人は、曲線がコンピュータ内部で数学的にどのよ うに表現されるかをまったく知らなくても、曲線をスケッチできるはずである。 滑らかな起伏をもつ曲線が完全関数(exact function)、スプライン関数、 Bスプライン(B-spline)、対数曲線(logarithmic curve)、無限系列(infinite s eries)などとして、どのように表現されるかを実際に知っているユーザは、相 対的に少数である。 例えば、多くの人は、実際に放物線を定義している点と線のロケーション(位 置)を知らなくても放物線をスケッチすることができる。ところが、放物線上に は点もなければ、線もない。放物線の数学的定義に従って放物線を厳密に定義す ることは多くのユーザのスキル、関心、または時間的投資以上のものであること はもちろんである。 ユーザは任意的な曲線を定義したい場合がある。例えば、ユーザは、円、楕円 または放物線のように、共通公式で容易に定義されている特定の既知曲線を望ま ない場合がある。ユーザは、頭の中で描いている通りに表現できる柔軟性を必要 とする場合がある。ユーザは単純な円弧や楕円の弧(segment)よりもはるかに込 み入った曲線を必要とする場合がある。ユーザは不規則であるが、滑らかな起伏 のある曲線をページ上に描きたい場合がある。 任意の曲線を作成し、定義し、レンダリングするプロセスは、現存のコンピュ ータ化されたドローイング・ハードウェアおよびソフトウェアでは十分にサポー トされていない。対話型(Interactive)の経路定義曲線(path defined curves) はまったく存在していない。この困難性の良い例として、ドローイングのために 多くのソフトウェア・プログラムで使用されているベジェ曲線がある。 「ソフトウェア」とも、「アプリケーション」とも、「プログラム」とも、「 パッケージ」とも呼ばれている、多くの市販ドローイング・ソフトウェア・アプ リケーションによって、ベジェ曲線はサポートされている。各パッケージ内には 様々なフィーチャ(ツールとも呼ばれる)が存在し、各フィーチャは、イメージ の一部のマーキング、ラインの消去、オブジェクトまたは点の移動、直線、長方 形、円、曲線などのドローイングといった、単一の関数を実行することを目的と している。この種のパッケージを使用すると、多くのユーザはベジェ曲線のドロ ーイング・ツールが使うことが難しいのを知るはずである。難しいことの主な原 因はユーザ・インタフェースが間接的すなわち、非対話型であるためである。 ここで言う「直接的(direct)」の用語は、曲線がユーザによって動かされる カーソルが通過するロケーションを通り抜けるか、あるいは密接に(つまり、最 小2乗最良適合(least squares best fit))近似していることを意味する。「対 話型(inteactive)」という用語は、ユーザが曲線を定義しているとき、リアルタ イムでフィードバックを受け取ることを意味する。「リアルタイム(realtime)」 という表現は、この分野で普通に用いられているものと正確に同じ原理を意味す ることができる。これは、入力からフィードバックまでの時間的遅延がユーザ側 から見たとき、瞬時と視覚的に区別できないほどに短時間であることを意味する 。一般的には、このようなフィードバック遅延は、実用上は感知できない。例え ば、ユーザは、ディスプレイ・モニタ上で曲線をアンレンダリング(unrendering )し、ユーザが曲線の終点(endpoint)に対応するカーソルを動かしながら再レン ダリングしたい場合がある。 ベジェをドローイング・ソウトウェア・パッケージでパラメトリック曲線タイ プ(parametric curve type)として使用すると、通常用意されている楕円曲線と 円曲線の集合を非常に柔軟に拡張することができる。もっと一般的なBスプライ ンに比べると、ベジェの場合は、より直接的で、相対的に単純化された制御が必 要である。 ドローイングは、曲線を作成し、そのあとで編集が行われるのが典型的である 。大部分の市販ソフトウェア・パッケージに用意されているベジェ曲線作成と編 集ツールは、曲線の定義の基礎となっている数学公式の計算を反映している。ユ ーザ・インタフェースは直観的でない。曲線ツールは、元来、エンジニアや科学 者のような技術的訓練を受けたユーザが使用するために開発されたものである。 現在では、ユーザとしては、グラフィック・アーチスト、ビジネス・プロフェッ ショナル、および絵情報を表すことを望んでいる平均的パーソナルコンピュータ ・ユーザなどがいる。ソフトウェア・パッケージに内在している概念モデルや数 学的実装は、ユーザが曲線をイメージとして出力デバイス上で図形化するのを非 常に妨げている。 例えば、ベジェ曲線形状で図形化するためには、制御点(control point)C0と C1とを2つの終点A0とA1の間に反直観的に置く必要がある(ベジェでは、「 制御変数(control variables)」と総称されている)。C0とC1は通 常、曲線上にない。これらは曲線から離れており、曲線と関係があるのは、基礎 となる数学知識のない人には抽象的である数学的関係においてだけである。 ベジェ曲線を作成する既存のツールは使うことが難しいため、コンピュータ・ システムの支援を受けて生成された形状は大幅な修正が必要になることがよくあ る。従って、ベジェ作成用の市販ツールの使用が難しいことは、その直接的結果 として、作成後の編集ツールに大きく依存することになる。 残念ながら、既存のベジェ曲線編集ツールは作成ツールよりもっと使うのが難 しい。本発明に従って実施される装置または方法によれば、編集ツールを余り使 用しないで済むようになっている。他方、作成と編集のためのツールは本発明に よると、大幅に単純化することができる。 商用化されているベジェ作成ツールは、基本的に2通りの方法でタスクを実行 している。最初の方法では「対話型(interactive)」曲線ツールを基礎に置き、 第2の方法では「フリーハンド型(freehand)」または「直接的(direct)」曲線ツ ールに基礎を置いている。 一方の対話型曲線ツールでは、ユーザが制御点を入れると、曲線の表現がリア ルタイムで更新されるようになっている。このツールが対話型であるのは、ディ スプレイ・モニタなどの出力デバイスから、すぐにフィードバックがユーザに返 されるからである。このフィードバックは、ユーザがカーソルを動かすたびに変 化するレンダリング曲線の形態になっている場合がある。しかし、従来のベジェ 作成ツールが間接的でもあるのは、上述したように、制御点のすべてが曲線上に 位置しているとは限らないからである。 これに対して、フリーハンド型曲線ツールでは、ユーザが所望の曲線の経路を 指定している間に、サンプリングされたカーソル・ロケーション(位置)の列が 収集されるようになっている。このツールが直接的であるのは、結果として得ら れた曲線がサンプリングされたカーソル・ロケーションに近似または補間される からである。このツールが対話型でないのは、レンダリングされた曲線表現を作 成期間中にユーザは見ていないからである。経路を指定している間にユーザが見 ているものは、サンプリングされたロケーションを表すドットの集合、またはこ れらのロケーション間を結ぶ一連のライン・セグメント(線分)だけである。そ の結果の曲線が表示されるのは、経路の指定が完了したあとだけである。実際の 曲線は指定された点のどれも通らないことも起こり得る。 これらの2つのツール・タイプ、つまり、「対話型」と「直接的」または「フ リーハンド型」とを比較すると分かるように、どちらも他方の長所を欠いている 。対話型曲線ツールは対話型であるが、間接的である。フリーハンド型曲線ツー ルは直接的であるが、対話型でない。残念ながら、商用化されたドローイング・ ソフトウェアの大部分のユーザは、ベジェ曲線をドローイングするツールが反直 観的であり、使うのが難しいため効果的に使用できないことを経験している。こ れに代わるツールもあるが、それらはもっと扱いにくく、間接的であることが多 い。他方、多数のソフトウェア・システムは、主にベジェと他のある種の曲線を 使用して、既存のまたは「遺産的(legacy)」アートワークのファイルを無数に作 成している。 センサ(例えば、ユーザが動かすスタイラス、マウスなど)の動きを「直接的 」に検知して、その動きの表現をユーザが感知できる曲線によってレンダリング するための装置と方法が要求されている。また、ユーザからの「直接的」入力に 応答して「対話型」で曲線を継続し、あるいは変更するための装置と方法が要求 されている。もっと具体的に説明すると、ドローイング中の曲線を直接的にかつ 対話型で作成し、変更することが要求されている。ベジェ曲線は非常に遍在的で あるので、ベジェ曲線を出力デバイス上で直接的にかつ対話型で作成する装置が あると、非常に有用である。さらに、ベジェ曲線がリアルタイムで生成され、変 更できるような装置があると、もっと有用である。上述した従来の問題を解決す る方法と装置は遺産的アートワークをすべて受け入れるようにしておくと、ユー ザはすでに存在する作品にアクセスして修正することが可能になる。直接的で、 直観的で、対話型で、視覚的に瞬時と区別できず、遺産的アートワークと逆方向 に互換性のある方法が要求されている。 前述したように、「ツール」は、グラフィカル関数を実行し、あるいは形状、 オブジェクト、曲線などをドローイングする独特のフィーチャまたは方法と考え ることができる。もう1つの既存問題は、同一または異なるドローイング・パッ ケージにおける異なるツールは、異なるルールを用いて曲線をレンダリングする ので、異なるパラメータまたは変数を使用し、格納していることである。そのた めに、ユーザがあるタイプの曲線を編集するために別のタイプの曲線に適用され る対話型手法を使用しようとすると、混乱が起こることになる。 残念ながら、グラフィック作品の作成では、数種類の対話型手法(ツール)が 使用されている可能性がある。しかし、結果の曲線は、ツール・タイプに関して 視覚的に区別できない場合がある。ツール・タイプを正しく選択しないと、曲線 の編集は不可能である。その結果、曲線を編集しようとするときに、フラストレ ーションが起こることになる。 その定義に関係なく任意の曲線をアクセスし、すべての曲線を簡単に、対話型 で、直接的に編集するような方法があると、それは飛躍的な進歩である。また、 対話型曲線ツールやフリーハンド型ツールで最初に作成された曲線、あるいは他 の任意の曲線を、ユーザに透過的(transparent)な単一の方法で編集することが できる方法があると非常に便利である。このような単一の方法は、遺産的アート ワークに作成されたすべての曲線を、発生源、ツール、ルール、または定義に関 係なく編集するために使用することが可能になる。 もっと広い意味では、ドローイングやスケッチングとは無関係の他の多くのタ スク(仕事)では、ユーザの動きを円滑化し、適合し、表現することが必要にな る。例えば、油圧機器の動作は、人間の入力を正確にトラッキング(追従)する のではなく、その動きを滑らかで予測できるように制御すると改善される場合が ある。別の例として、ロボットに、一連の動きを通してセンサを動かす熟練者の 動きをトラッキングすることにより、「教え込む」ことができる。例えば、熟練 の塗装者は、自動車のボディ全体にわたってスプレーワンド(spray wand)を動か し、人間の目に頼ってフィードバックを得ることができる。そのあと、ロボット は同じ経路上をスプレーワンドを動かすことになる。同様に、他の多くのデバイ スは、スタイラス、レバー、コントロール・スティック、ワンド、動きセンサ、 または"DataGlove"(登録商標)を使用して、ユーザが指示した動きをトラッキ ングしている。 また、不規則な動きを滑らかにして滑らかな流れの動きを得るようにすると、 好都合な場合がある。これらのプロセスは無数にあり、対話型デバイスの利点を 利用して、ユーザの手や他の器官の動きをフィードバックするようにしている。 しかし、人間の手の動きは完全には滑らかでないので、ユーザの手の動きを検知 し、その動きを格納し、その得られたデータに基づいて動作して、ピクチャやイ メージ、動き、その他の空間的表現をユーザにフィードバックすることに関して 、完璧なトラッキング・システムは存在していない。曲線の当てはめ(curve-fit )といった方法で人間の指示者(human director)の入力を円滑化すると、他の方 法では効率性に影響を与えるおそれのあるジッタが除去される。例えば、戦車や 戦闘機上の銃またはミサイル制御は人間に頼って、センサや制御のシステムを追 尾し、動かしている。人間の手は、車両の動きなどに影響されやすく、不安定に なる。 人間ユーザの複雑な動きを、その動きと同時にリアルタイムで(例えば、必要 な時すぐに:実際にはまたは知覚的には、瞬時に)トラッキング(追尾)し、再 現することは、典型的なデスクトップ・コンピュータでは困難であるか、不可能 である。個人のコンピュータ・ユーザの場合、大きな遅延があるのが普通である 。また、ユーザが検知デバイスを動かしてからマシンから応答があるまでにタイ ムラグがあるので、ユーザは余計な訂正を行う場合がある。従って、対話による ユーザの訂正は、トラッキング(追尾)とレンダリングに関連する大量の計算の あとでは、遅すぎることになる。 ユーザの動きを検知し、その動きを曲線などの反復可能で、格納可能な表現に 近似し、曲線の表現またはレンダリングをユーザに提示し、ユーザが曲線を対話 でリアルタイムで(例えば、必要時に:知覚的には、ユーザが瞬時と区別できな いフィードバックの形で、または、実用的には、ユーザが修正の入力を始める反 応時間よりも早いフィードバックの形で)継続または変更できるようにする装置 が要求されている。 上述した機能を組み合わせたものは、この分野では知られていない。直接的で 対話型の曲線ドローイングをリアルタイムで行うことは、平均的ユーザが利用で きるコンピュータ化ドローイング・パッケージには用意されていない。もっと広 い意味でのトラッキングとレンダリングの問題は、パーソナル・デスクトップコ ンピュータの平均的ユーザ用に用意されているパッケージでは解決されていな い。 発明の開示内容 上記に鑑みて、本発明の主目的は、曲線を直接的に作成する装置を提供するこ とである。 本発明の別の目的は、曲線を対話により作成する装置を提供することである。 本発明の目的は、曲線を直接的にかつ対話により、しかもリアルタイムで作成 する装置を提供することである。 本発明の目的は、経路定義曲線を、対話によりかつ直接的にリアルタイムで作 成する方法と装置を提供することである。 本発明の目的は、曲線を作成する場合よりも少ない時間で曲線を編集し、変更 し、または延長できる曲線を表す方法と装置を提供することである。 本発明の目的は、その発生源に関係なく、電子的に格納可能な元の曲線がある とき、本方法によって編集可能で、元の曲線と視覚的に区別できない対応する曲 線を作成する方法と装置を提供することである。 本発明の目的は、遺産的アートワークに存在するすべての曲線を、そのアート ワークが最初に作成されたときのツール、ルール、または表現データに関係なく 編集する方法と装置を提供することである。 本発明の目的は、すべての曲線をベジェ曲線で表されたものに変換し、遺産的 アートワークに存在するすべての曲線を、そのアートワークが最初に作成された ときのツール、ルール、または表現データに関係なくベジェ曲線として編集する 方法と装置を提供することである。 本発明の目的は、単純化されたパラメータ、つまり、曲線の数学的に定義され た「制御変数(contral variables)」に置換可能である変数から曲線を作成する ことにより、曲線の変化を反映する出力の計算とレンダリング速度を高速化する ようにした装置を提供することである。 本発明の別の目的は、ユーザの動きから直接に検知された入力から曲線を作成 する装置を提供することである。 本発明の別の目的は、一般的には、入力を直接に検知し、出力デバイスを制御 するようにその入力を処理し、ユーザに感知可能な信号を出力デバイスからユー ザにフィードバックすることにより、ユーザが入力を対話で調整することを可能 にし、具体的には、入力が曲線に対応する場合に上記のことを行い、特に、曲線 がベジェ曲線である場合に上記のことを行う装置を提供することである。 本発明の別の目的は、ユーザに感知可能であり、曲線の制御変数から変換され た変数に対応する信号を、出力デバイスからユーザに提示することである。 本発明の別の目的は、ユーザによる動きを検知し、その動きに対応する入力を 与え、出力デバイスに渡すために、入力に関係する中間信号を作成するように入 力を処理し、ユーザに感知可能であり、ユーザによる動きに対応する信号を出力 デバイスからユーザにフィードバックし、もっと具体的には、リアルタイムで動 作する装置を提供することである。 本発明の別の目的は、ユーザが動かした入力デバイスの動きから検知された入 力を使用して曲線を作成し、曲線を特徴づける中間パラメータを作成するように 入力を処理し、その中間パラメータを出力デバイスへ送って、動きに対応しかつ ユーザに感知可能である信号を生成し、これらはすべてがリアルタイムで行われ 、具体的には、出力デバイスを見ているユーザの目に滑らかに流れるアニメーシ ョンを提示するような高速で行われるようにした装置を提供することである。 上記目的を達成するために、以下に実施例として広い意味で説明されている本 発明によれば、装置と方法は曲線を作成する場合の本発明の一実施例として開示 されている。対話型および直接的曲線ツールによると、ほぼ即時のフィードバッ クをリアルタイムでユーザに返すことができる。ここでリアルタイムとは、出力 信号がユーザによる直接入力からの対話型フィードバックの流れに関して、瞬時 と区別できないことを意味する。 リアルタイムのフィードバックは曲線の作成と同時に返される。ユーザは、ス タイラスまたは他のポインタ(マウスなど)を所望の経路上を動かすことができ る。ツールはユーザが動かした上記入力デバイスを追尾する(track)ことができ る。ディスプレイ、モニタ、CRTスクリーンなどの出力デバイス上のカーソル は、ユーザがポインタで経路をたどっていくとき、ポインタの動きを表すことが できる。関連のコンピュータは、カーソルのロケーションをサンプリングするこ とができる。曲線は、出力デバイス上で作成し、レンダリングすることができ、 その曲線は、サンプリングされたロケーションを正確にまたは近似的に通ること ができる。以上のように、ツールは、リアルタイムで動作する対話型で、直接的 で、フリーハンド型のツールにすることができる。 多くの場合、リアルタイムとは、出力デバイスからのフィードバックが、例え ば、視覚のような少なくとも1つの望ましい感覚系知覚により、瞬時と区別でき ないことを意味する場合がある。しかし、一般的には、リアルタイムとは「対話 による流れ(interactive fluidity)」と定義するだけで十分である。この対話に よる流れは、ポインタ(例えば、マウス、スタイラスなど)の動きに応答して、 出力デバイス(例えば、モニタ)からフィードバックがユーザに返される間存在 しているので、ユーザは混乱しないで済み、また、入力に対応する曲線を出力デ バイスがレンダリングするのを待つために入力を停止する必要もない。一実施例 では、本発明による装置は曲線をリアルタイムでレンダリングすることができる 。装置には、ユーザが指定した経路上のロケーションに直接に対応する入力信号 を与える入力デバイスを含めることができる。また、装置には、入力信号を受信 し、その入力信号に適合した曲線に対応する出力データを与えるプロセッサを含 めることも可能である。メモリ・デバイスはプロセッサから受け取ったデータを 格納することができる。出力デバイスは、ユーザに検知可能で、入力信号に当て はめられた曲線に対応する出力信号をリアルタイムで出力することができる。 プロセッサは、指定されたロケーションに対応する点に適合した線形変換可能 曲線(linearly transformable curve)に対応するディジタル信号からなるデータ 上で動作するディジタル・プロセッサにすることができる。入力デバイスには、 経路上をユーザによって動かされるように適応したポインタを含めることでき、 この場合、入力デバイスはロケーションに対応する入力信号を生成する。 出力デバイスは、イメージング・デバイス(画像表示デバイス)を含むことが でき、イメージング・デバイスは、ポインタの位置に対応するイメージをユーザ に提示するカーソルを含むことができる。出力デバイスは、入力信号に対応する 曲線のイメージをレンダリングするレンダリング・デバイスを含むことができる 。レンダリング・デバイスは、三次元(cubic)曲線から選択された曲線をレンダ リングするために、プロセッサから出力データを受け取る信号受信器を含むこと もできる。立方曲線はベジェ曲線、ハーミット多項式(Hermit polynomial)、ス プライン、Bスプライン、または他の曲線にすることができる。レンダリング・ デバイスは、ユーザに見えるイメージをレンダリングするスクリーンを含むこと ができる。 本装置は、経路上をユーザが動かしたポインタから直接に入力信号を受信し、 ユーザが指定したロケーションに適合した曲線に対応するイメージを、出力デバ イスから対話でリアルタイムにフィードバックするようにプログラムされたプロ セッサを含むことができる。入力デバイスは、イメージに応答してユーザがポイ ンタをさらに動かしたことを反映する追加の入力信号を、リアルタイムで受信す るように構成することができる。出力デバイスは、追加の入力信号を反映する別 の曲線を、リアルタイムでレンダリングするように構成することが可能である。 本装置は、離散点を表すディジタル信号からなる入力信号を基礎に置くことが 可能である。入力信号は、経路に沿って一定インターバルでサンプリングされた 点に対応させることも、連続曲線に対応させることも可能である。 本発明による装置は、ユーザによって直接に制御される入力信号に応答して、 平滑化された出力信号をユーザにフィードバックすることができる。入力デバイ スは、ユーザによる動きを検出し、その動きに対応する入力信号を選択的に与え るように、ユーザによる操作可能にすることができる。入力デバイスに接続され たプロセッサは、入力信号を受信し、その入力信号に論理演算を行って、入力信 号に適合した線形変換可能曲線に対応するプロセス信号を出力するようにするこ とができる。メモリ・デバイスは、プロセッサに操作可能に接続し、入力信号に 対応する入力データを格納すると共に、プロセス信号に対応する出力データを格 納することができる。出力デバイスは、プロセッサに接続して、出力データを受 信し、ユーザに検知可能で、かつ出力データに対応する出力信号をユーザに与え るようにすることができる。 本装置は、動きを検出し、かつその動きに対応する入力信号を選択的に与える ように入力デバイスを使用して、経路定義曲線を対話で作成するように構成する ことが可能である。入力デバイスに接続されたプロセッサは、入力信号を受信し 、その入力信号に対応するプロセス信号を出力することができる。プロセッサに 操作可能に接続されたメモリ・デバイスは、構築変数(building variable)に対 応するプロセス信号を格納することができる。プロセッサに接続された出力デバ イスは、出力データを受信し、その出力データに対応する出力信号をユーザに与 えることができる。 本発明に従って実施される方法は、経路定義曲線をリアルタイムで増分的に拡 大(incrementally augment)し、延長し、編集することができる。この方法には 、入力デバイスに関連するポインタを動かすことを含むことができる。ユーザは 、経路上のロケーションに対応するデータを入力することができる。ユーザは、 ポインタを制御することによって入力を指定することができる。そのあと、ユー ザは、線形変換可能曲線に対応するプロセス・データを、入力デバイスに接続さ れたプロセッサで作成することができる。 また、本方法は、プロセッサ・データに操作を加えて、線形変換可能曲線に対 応する変数と係数の線形系を表す構築変数(building variable)データを作成す ることを含むことが可能である。構築変数データに操作を加えて、ロケーション に適合した曲線に対応する出力データを作成した後に、適合したロケーションに 対応する曲線のイメージを、プロセッサに接続された出力デバイスからユーザに フィードバックすることが可能である。 本方法には、イメージに応答してポインタを動かし、入力デバイスから追加の 入力データを受け取ることを含めることができる。この追加入力データは、経路 上の追加ロケーションに対応させることができる。本方法は、構築変数を線形変 換(linearly transform)して構築変数データと置換する、新しい構築変数データ を作成することができる。本方法には、以前のイメージと置換する新しいイメー ジを、出力デバイスからリアルタイムでユーザにフィードバックすることを含め ることができる。 本方法は、受信、線形変換、およびフィードバックを、入力デバイスを制御し て方法の継続を指示するユーザから受け取った入力に従って、さらに繰り返すこ とが可能である。入力デバイスからの直接的な新入力、あるいは他の方法で、ユ ーザが入力した入力に従って、リアルタイムで対話型で拡大(更新)することは 、ユーザが望んでいる間継続することが可能である。この拡大は、ユーザが指定 した新しいロケーションの数に関係なく、継続することが可能である。 開示された本発明に従って構築される装置、または本発明に従って実施される 方法は、曲線ドローイング・ツールにおける2つのツール・タイプの各々の長所 を結合して、従来のツールよりも使いやすく、直観的なものにしている。 一般的には経路定義曲線(Path-Defined Curve‐PDC)、具体的には経路定義 ベジェ(Path-Defined Bezier‐PDB)は、多項式の最小二乗適合(least square s fit of polymomial)に基礎を置くことが可能である。三次元(cubic)(三段級 :third dogree)ベジェ曲線などの多項式は、サンプリングされたロケーション の列(シーケンス)に適合することができる。ロケーションは、代表例として、 ポインタのようにユーザが制御する入力デバイスで指定することができる。ユー ザは、ポインタの操作によって、モニタのスクリーン上のカーソルのロケーショ ンを変えることができる。ロケーションは、経時的にサンプリングすることによ り、ポインタでユーザが選択した点に対応する点の集合を得ることができる。基 本的ドローイング装置と方法は、それぞれポインタとモニタ以上の、他の入力デ バイスと出力デバイスで拡張することが可能である。 例えば、ある次元数の点(値)を得るための入力デバイスは、信号を得るため の多種類のデバイスから選択することができる。信号は、動きや他の活動から検 出された入力に対応させることができる。同様に、出力デバイスは、これらの値 のある種の表現をユーザにフィードバックすることができる。入力デバイスは、 ユーザに検知可能な信号を出力する多種類のデバイスから選択することができる 。 例えば、出力は、ユーザが装着したDataGlove(登録商標)上のロケーション に加わる圧力またはそのロケーションからの圧力とすることができる。出力は、 線 上または面上の圧力分布とすることができる。出力は、ディスプレイまたはグラ フィック・イメージにおける光の強さにすることも、モニタ上の白黒ピクセルに することもできる。出力は、時間または空間における音の振幅または周波数分布 などにすることができる。以上のように、多くの知覚可能な信号は、ユーザに対 して曲線の出力を表すことができる。ある場合には、デバイスは、出力信号を受 信するように設計できるが、非常に有用な例では、ユーザが与えた入力に対応す る出力を人間のユーザが感知できるようになっている。 本発明による装置と方法は、曲線の最小二乗適合を増分的に調整することを基 礎にすることができる。最小二乗適合に基礎を置く従来の方法は、許容し得る計 算時間を保つために短い曲線に限られている。つまり、最小二乗適合は計算に関 しては厳しい(computationally intensive)。処理時間は、そのプロシージャで 使用されるサンプリング点の数‘n’と共に線形的に増加する。曲線は、追加の 点がユーザによって入力されるたびに再計算され、再度レンダリングされなけれ ばならない。点の総数は、コンピュータが再計算して、ユーザ作成の曲線の更新 された表現をレンダリングするときの速度に直接に影響する。このような方法か らの遅延により、リアルタイムで出力をレンダリングすることは不可能になる。 これに対して、本発明によって構築されたツールでレンダリングされる曲線は 一定の時間で操作される。つまり、一定の更新回数で曲線をレンダリングするこ とができる。これは、曲線のベースとなるサンプリング・カーソル・ロケーショ ンが少数であるか、数百であるか、数千であるかとは無関係である。 新規のデータ構造は経路定義曲線(PDC)に対応し、1つの具体例では、経 路定義ベジェ(PDB)に対応している。このデータ構造は、追加する入力毎に 曲線を適当する最小二乗法に対して、増分的に「拡大」することをサポートして いる。 本発明の装置と方法によると、ユーザは、曲線を対話型でドローイングし、出 力デバイス上で曲線をレンダリングし、ユーザに対するフィードバックをリアル タイムで得ることができる。例えば、ユーザは、曲線がドローイングされている 途中で中間結果をアニメーションでモニタから見ることができる。 本発明の装置によれば、マルチセグメント(複数の線分からなる)曲線をドロ ーイングし、レンダリングすることが可能である。複数のセグメントは事後処理 (post-processing)で連続性をチェックするために結合することも、隣接する曲 線のエンドを制約することによって結合して、曲線またはそのスロープ(接触(t anglncy))の連続性を確かめることも可能である。この制約(constraint)をユー ザ・インタフェースと一緒に使用すると、ユーザが最終的に制御して、結果の曲 線がユーザの意図を反映していることを確かめることができる。 図面の簡単な説明 本発明の上記およびその他の目的と特徴は、以下に添付図面を参照して行って いる説明と請求の範囲に示すとおりである。これらの図面は本発明の代表的な実 施例だけを示したもので、従って、本発明を限定するものではないとの了解の上 で、以下、添付図面を参照して具体的にかつ詳細に本発明について説明すること にする。添付図面において、 図1は、本発明に従って曲線を作成する装置の一実施例を示すブロック図であ る。 図2は、ユーザが指定した経路上の点に適合した曲線のイメージを示す概略図 である。 図3は、本発明に従ってサンプリングなどによって、入力に適した曲線のイメ ージを示す概略図である。 図4は、ユーザが入力した経路に適合し、そのあとユーザが追加の点で拡大し た曲線を示す概略図である。 図5は、本発明による概念化された方法を示すブロック図である。 図6から図9までは、図5の方法からの詳細を示すブロック図である。 図10は、本発明に従ってレンダリング・データを管理する他の実施例を示す ブロック図である。 図11は、本発明による線形変換方法の一実施例を示すブロック図である。 図12は、本発明による方法と装置の一実施例において曲線を表現する方法を 説明するために示した一連の式である。 図13は、本発明に従って曲線を定義するための係数と変数の線形系(linear system)を作成する方法を説明するために示した一連の式である。 図14は、図13の線形系における係数を定義し、評価する方法を説明するた めに示した一連の式である。 図15と図16は、図13の線形系の係数(加算項:summation term)を構築 変数qとrにマッピングする方法を説明するために示した一連の式である。 図17は、構築変数qとrを新しい変数q′とr′に線形変換する方法を説明 するために示した一連の式である。 図18は、本発明に従ってユーザが追加の入力を行ったために、図13の線形 系の係数を更新して、出力デバイス上でレンダリングされる新しい曲線を表現す る方法を説明するために示した一連の式である。 図19は、連続曲線の円弧長さを表す正確な数学式を、離散点間の弦(chord) による近似と対照させて示す式である。 図20から図22までは、本発明に従って入力された連続曲線に関連するデー タから構築変数QとR(その使い方は図15〜図16に示すシステムにおける構 築変数qとrと同じである)を合成する方法を説明するために示した一連の式で ある。 図23は、本発明に従って構築され、操作される装置の一実施例を示すブロッ ク図である。 図24は、本発明による方法と装置で使用するのに適している曲線の他の実施 例を示す概略図である。 図25と図26は、図13に示すものと異なる制御変数と式の代替システムに よって表現可能な線形変換可能曲線の他の実施例を表現する方法を説明するため に示した一連の式である。 図27と図28は曲線を示す概略図および本発明による再帰的方法によって曲 線の円弧長さに近似する方法を示す概略図である。 好ましい実施例の詳細な説明 以上の説明から容易に理解されるように、以下に添付図面を参照してその概要 が説明されている本発明のコンポーネント(構成要素)は広範囲にわたる様々な 構成に配置し、設計することが可能である。従って、図1ないし図28に示され ている本発明のシステムと方法の各種実施例に関する以下の詳細説明は、請求の 範囲に記載されている本発明の範囲を限定するものではなく、本発明の好ましい 実施例を例示したものにすぎない。 本発明の好ましい実施例を理解しやすくするために、以下、添付図面を参照し て説明するが、図面全体において、類似の部品は類似の参照符号を付けて示され ている。 次に、図1と図5を参照して説明すると、同図は、それぞれ本発明による装置 と方法の好ましい実施例の概略図を示したものである。また、図6から図11ま では、図5のブロック図から派生した概略図を示したものである。この分野の精 通者ならば当然に理解されるように、図6〜図11の概略図は上記の図1と図5 のブロック図を参照して説明されている本発明の基本的特徴から逸脱しない限り 、種々態様に変更することが可能である。従って、図6〜図11の詳細な概略図 の以下の説明と図12〜図28の表現は単なる例示であり、図1と図5の以下の 説明および請求の範囲に記載されている本発明と一貫性のある概略図のいくつか の好ましい実施例を示したものにすぎない。図5の種々機能ブロックは図6〜図 11に太線の破線で囲んで示し、類似番号が付けられている。 上記説明から理解されるように、本発明によれば、経路定義曲線(path-define d curve)をユーザによって制御される入力デバイスで生成された入力から直接的 にかつ対話型で作成し、レンダリングし、ユーザへのフィードバックを出力デバ イスから出力することができる。また、本発明によれば、入力デバイスを制御す るユーザによる追加入力に従って、曲線または曲線のイメージを出力デバイスか らリアルタイムで拡大し、編集し、延長することができる。 次に、図1を参照して説明すると、本発明の一つの好ましい実施例に従って構 築・使用される装置200には、プロセッサ202とメモリ・デバイス204を 含めることが可能であり、これらは、ディジタル・データなどの信号を相互間で 送信するためのバス206で相互接続されている。バス206は、汎用ディジタ ル・コンピュータのマザーボードに実装されているバスから1つを選択すること も、本発明に従って構築された装置に固有のものにすることも可能である。 入力デバイス208と出力デバイス210も、プロセッサ202と通信するた めにバス206に接続することが可能である。記憶デバイス212もバス206 上に含めておくと、プロセッサ202によって送信、受信または処理される信号 などに対応するデータを永続的に格納しておくことができる。 プロセッサ202は入力デバイス208から受信した信号を処理し、これらの 信号を表すデータを格納し、出力データを出力デバイス210へ送るように構成 することができる。プロセッサ202はバス上の任意のデバイスに対する命令( 指示:instrection)を作成し、受信し、送信することができる。 適切なプロセッサ202には、多くのポピュラな汎用コンピュータの中央演算 ユニット(CPU)に見られるものを含むことが可能である。特に興味があり、 応用性があるのは、マイクロコンピュータまたはミニコンピュータと呼ばれ、メ インフレーム・コンピュータに比べると処理速度が限られているデスクトップ・ コンピュータである。CPUは、MC68020、MC60830 およびMC68040を含む、Moto rola 68000シリーズなどの集積チップから選択することができる。同様に、適当 なCPUは80286、80386、80486 およびPentium CPU を含む、Intel 80000 シリ ーズから選択することができる。また、Power PC 601、602、603、604 および62 0 などのRISCチップも完全に適している。 メモリ・デバイス204はプロセッサ202に対する命令、その命令に従って 演算されるデータ、およびプロセッサ202による値の中間計算を表すデータを 一時的に格納するように構成することができる。また、メモリ・デバイスは入力 デバイス208から受け取った入力を表すデータと出力デバイス210へ送られ る出力データを格納することもできる。 適切なメモリ・デバイス204は、市販されている大部分のタイプのランダム アクセス・メモリ(RAM)を含むことが可能である。通常は、電源を切るとす べてのデータと信号が消失する揮発性メモリが適している。揮発性ほどには好ま しくはないが、ある種の非揮発性メモリ・デバイス204を使用することも可能 であるが、入力を受け取り、信号を処理し、出力を送出するとき装置200のパ フォーマンスを低下させるおそれがある。 メモリ・デバイス204は、第1メモリ205A、第2メモリ205B、およ び汎用動作メモリ205を含み、分割するなどアドレス可能に構成することが可 能である。また、メモリ・デバイス204には、装置200で起きて検出された イベントを記録するためにイベント・キュー(event queue)205Dを含めるこ とも可能である。検出されたイベントとしては、種々のデバイス202,204 ,206,208,210,212のいずれかで使用される、あるいはこれらの デバイスを制御するために使用される活動がある。 入力デバイス208は、プロセッサ202によって処理される信号を生成する ように構成することができる。しかし、入力デバイス208は、装置200内部 または外部の別のデバイスからのデータを読み取ることも可能である。例えば、 入力デバイス208は、別のコンピュータからデータを受け取って処理するよう にすることも、入力デバイス自身にプロセッサを含めることも、アナログ信号ま たはディジタル信号を送るセンサを含めることも、さもなければ、ユーザによっ て、あるいはユーザの制御の下で入力されたデータを送出するように構成するこ とも可能である。 入力デバイス208は、プラテンで支持された感知面(sensor surface)に押し つけたスタイラスの動きを検出するフリーハンド・パッド(freehand pad)を含む 、多数のデバイスから選択することが可能である。この種のパッドの例としては 、パッケージ受取人の署名を記録するために使用される特殊目的コンピュータで 使用されているものがある。また、表面上のスタイラスの動きに感応するスケッ チ・パッドも入力デバイス208として使用することができる。1次元、2次元 または多次元空間の位置に対応する信号を表面上の動きと同時に生成する動き検 出器である、マウスを入力デバイス208として使用することが可能である。別 の入力デバイスとしては、DataGlove(登録商標)があるが、これは、ユーザのボ ディの指、手、その他の器官による動きや圧力を検出するセンサを備えたデバイ スである。その他の入力デバイスには、単純なものとして、スイッチ、従 来からあるものとして、ジョイスティック、トラックボール、タッチスクリーン ・ディスプレイなど、高度なものとして、種々のイメージング・カメラなどのハ ードウェアがある。例えば、コンピュータ断層スキャナ(computed tomography s canner)、磁気共鳴画像マシン、または超音波画像デバイスはいずれも、人間が 介入する量の変化に応じた入力を得ることができる。場合によっては、入力デバ イス208は未知のものを使用することも可能である。これは、ソースから収集 され、ディジタル電子信号としてメモリ・デバイス204または記憶デバイス2 12に格納された信号を表すデータのキューだけで表されたものである。 出力デバイス210は信号をユーザに与えるように構成することができる。こ の信号はユーザの五感に感知可能にすることができる。例えば、音、動き、圧力 、イメージ、光、音の強さまたは周波数、光の強さまたは周波数、あるいは電磁 スペクトルからの他の信号は、出力デバイス210からの出力信号にすることが できる。出力デバイスは信号を一方の表現から他方の表現へ変換するデバイスを 含むことも、さもなければ、そのデバイスと関連づけることも可能である。本発 明の一つの好ましい実施例では、プロセッサ202からの出力信号はコンピュー タ・モニタのスクリーンから曲線として表示(レンダリング)可能になっている 。それほど好ましいはない別の実施例では、出力信号は、電気機械式デバイスに よって受信、認識、応答可能になっている。 出力デバイス210は、陰極線管CRT、フラットパネル・ディスプレイなど のモニタにすることができる。あるいはまた、ある種の入力デバイス208には 、出力デバイス210の働きをするデバイスを含めることも可能である。例えば 、タッチスクリーン・ディスプレイは、イメージをレンダリングし、ユーザから 入力を受け取ることができる。同様に、超音波または磁気共鳴画像デバイスのよ うな、医療画像デバイスには、そのデバイス自身だけが読み取ることができる、 あるいはユーザに感知可能な出力デバイスを含めることができる。本発明のある 種の実施例による装置200では、人間のユーザに感知可能である出力、人間の ユーザに感知不能な出力またはその両方の出力にすることができる。しかし、非 常に興味のある一つの好ましい実施例では、出力デバイス210の出力は ユーザに検知可能(感覚的に感知可能)にすることができる。 記憶デバイス212は、装置200に存在することも、存在しないことも可能 である。記憶デバイス212は、ユーザがアクセスしてから次のアクセスするま での間、受け取ったデータを長期間格納しておくように構成することが可能であ る。例えば、一つの好ましい実施例では、記憶デバイス212は、曲線398を ドローイングの一部として表すデータの集合を格納することができる。あるいは また、記憶デバイス212は、プロセッサ202によって実行可能な命令、およ びプロセッサを制御するユーザが操作を加えた曲線を表すデータと、バス206 に接続されたすべてのデバイスのオペレーションを制御するためにプロセッサに よってアクセスされる命令とを一緒に含むソフトウェア・パッケージを格納して おくことができる。 記憶デバイス212は、多くの市販タイプから、およびこれらのタイプに属す る多数の特定製品から選択することができる。代表的な記憶デバイス212は、 電子データを格納するハードディスク・ドライブ、フレキシブルディスク・ドラ イブ、電磁気テープ・ドライブ、光ディスク・ドライブ、PCMCIAメモリなどから 選択することができる。適切な記憶デバイスは、電源が切られたときでもデータ がそのまま残っているように、非揮発性にすることができる。しかし、ある種の 実施例では、必要とされる電源と保守の面で劣るが、RAMタイプのメモリを記 憶デバイス212として使用するように適切に構成することも可能である。 次に、図2〜図4および図5〜図11を参照して説明すると、本発明による装 置200と方法の一実施例では、プロセッサ202は図5に示すステップに従っ て動作するようにプログラムすることができる。図5のステップを詳しく展開し て示したのが図6〜図11である。 装置200は入力を受け取ることができる。入力が与えられるとき(220) 、これらの入力は、入力デバイス208、汎用メモリ205Cまたはイベント・ キュー205Dから受け取る(読み取る、送信される等)ことができる。入力は 曲線398と関連づけることができる(例えば、図3を参照)。入力の例として は、曲線398(データに適合した、または定義された)またはユーザが指定し た経路420上の点418に対応するデータがある。また、入力には、バス 206に接続された、任意のまたはすべてのデバイス202,204,206, 208,210,212を制御する命令を含めることもできる。 曲線398または点418に対応するデータの受信を含めて、入力が与えられ たとき(220)、曲線が連続(continuous)であるか離散(discrete)であるかを 、テスト222で判断することができる。つまり、曲線398は、従属変数(dep endent variable)の値が、ある領域内の独立変数(independent variable)(パラ メータ)のすべての値に対して、ある範囲にわたって存在するような連続関数で あることが可能である。曲線が連続であれば、装置200と方法219は経路2 24をたどり、連続過渡状態(continuous transient state)226で動作して、 曲線398を表す曲線400を作成する。 曲線398は所望タイプの線形変換可能曲線(linearly transformable curve) である場合がある。そのような場合には、曲線398の表現に制御変数401を 含めることが可能である。制御変数は例えば、図2に示すアンカー点(anchor po int)402,408と制御点(control point)404,406を含むことが可能 である。制御点404,406は曲線400を定義するために使用されるが、曲 線398を定義するためにも使用できる。そのような場合には、曲線398は望 ましい線形変換可能曲線400とみなされる。 これに対して、離散点(discrete point)418または426に関連するデータ だけが与えられた場合には、方法219と装置200は、経路228をたどって 離散過渡(discrete transient)オペレーション230へ向かい、曲線398を曲 線400として表現することになる。つまり、曲線398は、指定された経路4 20からの離散点の列(図2)である場合もあれば、曲線400に適合する曲線 398を表す入力として与えられた点である場合もある。 連続過渡ステップ226における連続曲線398の性質に応じて、装置は経路 232をたどって行くことができる。つまり、プロセッサ202は連続曲線39 8からの離散サンプリング点426(図3参照)に対応するデータを与えること ができる。そのあと、装置200は離散過渡ステップ230に従って動作するこ とができる。 連続過渡ステップ226または離散過渡ステップ230が完了したあと、装 置はそれぞれの経路234,236をたどって行き、定常状態(steady state)2 40に従って動作し、曲線398の表現を曲線400とすることができる。不十 分な数の離散点418に対応するデータだけが与えられた場合には、装置は経路 238をたどって行き、入力データと出力データの処理を終了する(244)。 連続過渡状態226、離散過渡状態230、および定常状態240を含むステ ップの各々において、プロセッサ202は入力デバイス208から直接に、ある いはメモリ・デバイス204から入力信号、例えば、データを取り出す。プロセ ッサ202はこれらの入力を処理して、レンダリング・データ、イメージの作成 を制御するために出力デバイス210へ送られる信号、またはユーザに感知可能 な他の出力信号を作成することができる。 プロセッサ202が連続過渡226モードで動作するときは、入力データが処 理されて連続曲線398の表現が作成される。プロセッサ202が離散過渡23 0モードで動作するときは、入力が操作されて、入力データからの点418に適 合する曲線400が作成される。定常状態240モードにあるプロセッサ202 は、線形変換可能表現でキャスト(cast)されていた曲線400が拡大(編集、拡 張、変更)する。 以上のように、離散過渡ステップ230または連続過渡ステップ226から得 た曲線400は線形的に変換することができる。線形変換は、典型例として、従 属変数の累乗(非線形項)を含む項の一連の加算で表された曲線400は、構築 変数(building variable)414と呼ばれる項の単純な線形代数和にマッピング できるという事実に基づいている。(例えば、図15と図16、特に式14と1 8を参照)。 線形変換から明らかなように、構築変数414の代数和で表された曲線は、各 項に対する単純な乗算と加算によって変換することができ、非線形項に戻らなく ても、あるいはこれらの非線形項を構築変数414の線形代数式にマッピングし なくても、新しい曲線の新しい解を作成することができる。 曲線400は、図17の式20,22,24に示すように代数的にスケーリン グできる項によって表され、これらの項は、ユーザによる直接的入力に応答して リアルタイムで即時に更新されるようになっている。曲線400のオリジナル表 現の項は、変換されて新しい曲線を作成し、非線形項の一連の加算や他の一連の 計算により新しい曲線400全体を再計算または再生成するのではない。このよ うに、曲線400に含めるべき新しい点を表す入力の追加に応答して、リアルタ イムで曲線400を延長(編集、拡大、変更)することができる項に、曲線44 0をキャストすることができる。 以上のように、線形変換可能曲線400では、プロセッサ202は、曲線40 0の計算に含めるべき点418を直接に指定している入力を読み取ることができ る。そのあと、プロセッサ202は、入力を処理してレンダリング・データと命 令を出力デバイスへ送り、出力デバイス210からユーザに表示されるイメージ などのフィードバックが返される。フィードバック(例えば、モニタ上のイメー ジ)により、訂正、拡大、編集などの追加入力を行って、フィードバックとして 返された出力を調整することができる。 例えば、ユーザは入力デバイス208に関連するポインタを動かして、出力デ バイス210に関連するモニタのスクリーンから表示された曲線400の終点を 、430から432に変更することができる。プロセッサ202は、ポインタの 動きに関連する、その入力データを処理し、出力デバイス210を制御するため のレンダリング・データを出力する。出力デバイス210は、編集された曲線4 00を表す新しいビジュアル・イメージを、出力デバイス210の可視スクリー ンから表示(レンダリング)する。本発明の方法によると、曲線400を入力し 、作成し、およびレンダリングするプロセス全体(226,230,240)は 、ユーザが、曲線400を指定している所望の経路420に沿って、入力デバイ ス208を操作するのに従って、リアルタイムで行うことができる。 次に、図5を参照して説明すると、本発明の装置200に実装されている方法 219によれば、特に、曲線398を表すデータを表している入力を得ることが できる(220)。曲線398を入力するために使用される信号は、連続関数ま たは離散点によってディジタルに表すことができる(例えば、図2と3を参照) 。 220に与えられた入力からの連続曲線398に対するテスト222からの否 定的な結果は、プロセス219または方法219を離散過渡状態230に向ける ことができる(経路228を参照)。そのあと、離散過渡状態230は、曲線3 98を表す入力である点426が曲線400に適合する単なる入力であるかのよ うに動作することができる。 曲線398が連続であれば、テスト222からの肯定的な結果が経路224に よって示され、そこでは、連続過渡226のオペレーションまたはステップは、 入力曲線398を表している曲線400を作成する。テスト250は、まず、連 続曲線398が望ましい線形変換可能タイプであるかどうかを確かめる。例えば 、ツールの方法219が三次元ベジェ曲線に基づいている場合は、曲線398を 三次元ベジェ曲線にする必要がある。同様に、エルミート(Hermite)三次元曲線 または他の曲線が、装置200または方法219のプログラムされたルールに従 って動作するためには望ましい場合がある。 曲線398が望ましい線形変換可能タイプでなければ、テスト252は、曲線 398が望ましい線形変換可能タイプにマッピング可能であるかどうかを確かめ る。つまり、あるタイプの曲線を別のタイプにマッピングすることは、すでに確 立されている種々の方法で行われるが、これらの方法をここで説明するには詳細 すぎる。いくつかのマッピング方法では、式の項を置換するだけである。曲線3 98が望ましい線形変換可能タイプにマッピング不能であれば、方法は、例えば 、曲線398上のいくつかの点426を計算することによってサンプリング25 4する。これらの離散点が与えられていると、方法は経路256を通って離散過 渡状態230へ進むことができる。逆に、曲線398が望ましい線形変換可能タ イプにマッピング可能であれば、マッピング260が行われる。以上のようにし て、方法は、経路262を通って戻り、構築変数414の集合を合成264する 。この合成プロセスを理解するには、以下の例1を参照のこと。特に、図19〜 図22の式28と36を参照のこと。 構築変数414を合成264するために、曲線398は最小二乗誤差適合とし て表されている。最小二乗法によると、累乗の加算である一連の項が得られる( 例えば、図19〜図22、図示の順になっているすべての式および関連テキス トを参照。図19〜図22と関連テキストと比較のこと)。これらの加算を評価 する代わりに、定積分(defitite integral)が各加算と代替される。この積分は 、曲線全体398に沿って定積分として積分することができる。 以上のように、式の線形系(例えば、図13の式7を参照)が必要とする加算 から求められた係数は、構築変数414の代数和を用いて評価することができる (例えば、図15,図16の式15,16のqaとraを参照)。他方、構築変数 414の合成で使用される積分は、式の線形系(例えば、図13の式7を参照) に等価で、代入可能である項(例えば、図20,図21の式7を参照)を作成す る。そのあと、式の線形系は制御変数を定義することができ、これにより、適合 する線形変可能曲線400が正しく描かれる(一般的には、例えば、図20〜図 22の式27〜34と式37〜39のそれぞれにおけるQaとRaの展開を参照) 。構築変数414の合成264に続いて、方法219は、経路234をたどって 定常状態240のオペレーションへ進む。 次に、図8を参照して説明すると、離散過渡状態230は、曲線400に適合 する必要がある離散点418の数に等しくなるように、カウンタをセット266 することから始める(例えば、図2を参照)。テスト268はカウンタを評価し て、それが所望の角度の曲線に適合するために必要な点の数より大きいかどうか を確かめる。曲線400が次数5(degee 5)であれば、退化ケース(degenerate c ase)を得るのではない限り、6個の点が必要になるのが普通である。エルミート 三次元、三次元スプライン、または三次元ベジェなどの曲線の場合は、4個の点 が必要である。三次元曲線400の場合は、点418の数が4未満であると、曲 線400の退化表現が得られることになる(例えば、図8のステップ276,2 84,286を参照)。 与えられた点418の数が十分であれば、つまり、テスト268の結果269 が肯定的であれば、方法219は、曲線400をリアルタイムで拡大するための 構築変数414を生成することができる。構築変数414を生成270するため に、方法は、曲線400を描くための制御変数401(例えば、図2の制御点4 04,406とアンカ点402,408を参照)の係数(例えば、図13の式7 を参照)を線形代数式の系(例えば、図15,図16の式14,15と18, 19を参照)にマッピングすることができる。構築変数414を生成したあと、 方法219は経路272を通って定常状態240へ進むことができる。 カウンタが必要とする点418の数以下であれば、方法219は、十分な点4 18が追加されて望ましい次数の曲線400が作成されるまで、退化曲線400 の作成を続ける。例えば、テスト274が肯定的であれば、プロセッサ202は 二次曲線(quadratic curve)を作成(276)し、曲線400を出力デバイス2 10から最終的にレンダリングするためのデータを出力(280)する。テスト 274が負であれば、次の退化ケースがテスト(282)される。 同様に、カウンタが2だけならば、つまり、点418が2つのときは、テスト 282は曲線400の退化一次多項式(degenerate first degree polynonial)で ある、ラインを作成(284)を作成するように方法219に指示する。テスト 282からの結果が否定的なときは、方法219は次の退化ケースへ進む。なお 、退化ケースの数は、曲線400の三次元適合では3つにすることができるが、 別の次数の多項式では異なる数にすることができる。 最終的には、すべてのテスト268,274,282の結果が否定的(デフォ ルト)であると、方法219は点曲線400を作成286することになる。次に 、すべての退化曲線が出力280され、レンダリングされる。プロセッサ202 によるレンダリング・データの出力280は、データを出力デバイス210、メ モリ・デバイス204、または記憶デバイス212に渡すことによって行うこと ができる。一実施例では、プロセッサ202は、信号を直接に新しいメモリ20 5Aに渡し、出力デバイス210に読み取らせて、レンダリングさせることが可 能になっている。 次に、図9と図5を参照して説明すると、定常状態240には、連続過渡状態 226と経路234または離散過渡状態230と経路236を経由して到達する ことができる。装置200の定常状態240のオペレーションはプロセッサ20 2で集中して行うことができる。まず、構築変数414は式の線形系の加算係数 にマッピング(300)される(例えば、図13,図15,図16のそれぞれの 式7,15,19を参照)。次に、式の線形系は適当な方法によって解が求めら れる。式の系は、場合によっては非線形になることが許されるが、解の線形 変換が効果的であることが図示の例によって判明している。 次に、制御変数401はレンダリング・データにマッピング304される。こ の場合も、曲線400を定義する制御変数401を表す信号を、出力デバイス2 10から曲線400のレンダリングを制御するための信号に変換するために使用 できる方法には、多数の方法がある。ディジタル・データでは、信号は、グラフ ィカル・データを表示するようにモニタをドライブするために、すでに確立され ているソフトウェア・コードでマッピングすることが可能である。 次に、レンダリング・データは出力デバイス210へ送られる(306)。出 力デバイス210は、プロセッサ202で制御することも、プロセッサ202ま たはメモリ・デバイス204からデータを受け取るだけにすることも可能である 。 次に、装置200は、プロセッサ202などの手段によって、入力デバイス2 08から入力を受け取る。入力には、曲線400を編集または延長するための新 しい点418(図2)または拡大点(augment point)432(図4)に対応する データを含めることができる。また、入力には、入力デバイス208に関連する ポインタの動きに対応するデータを含めることも可能である。例えば、ユーザは 1つの点418または432を指示するだけではなく、点418,432が曲線 400に追加されることを指示するためにも、マウスまたはスタイラスを使用す ることができる。 テスト310は、曲線400を拡大させるかどうかを、受け取った308入力 に基づいて判断することができる。肯定的な結果は、新しいデータ点432を受 け取った308入力から抜き出す312ことで繰返しを開始する。新しいデータ は構築変数414を線形変換314するために使用されるので、離散過渡状態2 30と連続過渡状態226で行っていたように、制御変数を「初めから」再生成 しないで済む。 本発明の一つの好ましい実施例での、構築変数414を線形変換する一実施例 は図17と図18に示されている。一般的には、線形変換を行うには多数の方法 がある。線形変換の特徴は、点418または曲線400に対応するデータから構 築変数414を再生成しないで済むことである。また、各構築変数414は直接 に更新できるので、それが作成されたときの構成項のどれにも頼らないで済む。 これとは別に、すべての構築変数は、単純な比率、積、加算、または例えば、図 17の式22と24で上述したものによって更新することも可能である。例では 、αで示した円弧の長さ416は、βで示した新しい円弧の長さ416に更新さ れ、旧と新の円弧長さの比率は、式17,式20に示すように構築変数414を 更新するために使用されている。 線形変換314は経路316をたどっていくことにより行われる。経路316 はプロセス219を経路234に戻し、そこから定常状態に入る。プロセス21 9は繰り返されて、構築変数414を式の線形系の加算係数にマッピング300 する(図13の式17)。 テスト310の結果が否定的な結果であるときは、曲線400はこれ以上拡大 または編集する必要はない。従って、制御変数401は代表例としてメモリ・デ バイス204または記憶デバイス212に格納318される。しかし、別の実施 例では、構築変数414をセーブすることが可能である。しかし、方法219で は、曲線の作成とレンダリングの始まりで一度だけ、連続過渡状態226または 離散過渡状態230のもっと広範な処理が必要である。そのために、制御変数4 01に必要な記憶量はそれだけ少なくなる。さらに、遺産的アートの非常に多く は制御変数401を格納するので、そのように格納すると、単純化され、必要記 憶量を削減することができる。 次に、図10を参照して説明すると、レンダリング・データの出力280(図 8も参照)には、データ・ファイルを更新320する種々の手段を含めることが 可能である。同様に、定常状態240のオペレーション(図9参照)期間のレン ダリング・データの送信306には、データ・ファイルの更新320を含めるこ とが可能である。一つの好ましい実施例では、例えば、新メモリ205A、旧メ モリ205B、汎用メモリ205C、およびイベント・キュー205Dは分割す るか、あるいは他の方法でメモリ・デバイス204に用意することが可能になっ ている。更新には、曲線400のレンダリング・データを新メモリ204に格納 322することを含めることができる。そうすれば、プロセッサ202または出 力デバイス210の同等機能は、曲線400の格納された旧データに関連するイ メージを出力デバイス210からアンレンダリングする命令を、出力デバイスに 対して作成326することができる。これに続いて、曲線400の格納された新 データに関連するイメージを、出力デバイス210にレンダリングする命令が作 成326される。最後に、新メモリ205Aの内容は旧メモリ205Bにコピー 328される。旧メモリの内容は、例えば、出力デバイス210に関連するモニ タ・スクリーン上の曲線400のイメージをリフレッシュするために使用するこ とができる。他の手段を使用することもできるが、更新320に関して説明して きたステップによると、旧データに関連するイメージをアンレンダリングしてか ら、曲線400の新データに関連するイメージをレンダリングするまでの遅延が 最小限になる。 次に、図11を参照して説明すると、構築変数414の線形変換(図9も参照 )には、円弧長さ416の新しい値に近似330するステップを含めることが可 能である(例えば、図17の式20を参照)。他の構築変数414の新しい値の 評価332,334(例えば、図17の式22,24を参照)は任意の順序で続 けることができる。係数(例えば、図18の式25を参照)は、構築変数414 が式の線形系の係数(例えば、式7を参照)に代入されると評価336,338 される。そのあと、係数の値は出力340され、式のシステムを解いて制御変数 401の新しい値を得ることができる。 本発明に従っている一実施例では、円弧長さ416の近似330は弦(chord) 425を使用して行うことができる(例えば、図3、図17の式20を参照)。 この例では、定数qaまたはQaを与え332、前述したように、曲線が生成され たものか、合成されたものかに応じてraまたはRaを評価334することができ る。tとuの項の和はSTU係数436と呼ぶことにし、pi,tおよびuの項 の加算はSPTU係数438と呼ぶことにする。従って、STU係数436を評 価336すると、新しいqaまたはQaを求めることができ、SPTU係数438 を評価338すると、生成または合成された曲線400の新しいraまたはRaを 求めることができる。新しいSTUまたはSPTU係数436,438のそれぞ れの出力は、制御変数401を唯一の未知としてもつ新しいベクトル・マトリッ クス式(例えば、式7)を作成するために使用される。 次に、図6を参照して説明すると、出力デバイス210は種々の市販デバイス から選択することができる。同様に、出力デバイス210を制御するには、多く の方法がある。一実施例では、出力デバイス210による曲線400のレンダリ ングは、プロセッサ202の出力280または306に対する応答になっている 。レンダリングには、レンダリング・データを受け取り354、レンダリング・ データを出力信号に変換354し、出力信号を表示356することを含めること が可能である。例えば、レンダリング・データは、出力デバイスがバス206を ポーリングすることによって受信することも、プロセッサ202からの直接の送 信によって受信することも可能であり、あるいはプロセッサ202が出力デバイ ス210を直接に制御することも可能である。レンダリング・データの変換35 4には、数値データを陰極線管(CRT)または他のディスプレイで信号に変換 することを含めることができるが、圧力やイメージの可視光の強さを含む、どの タイプの検出可能信号を含めることも可能である。同様に、ディスプレイはフィ ードバックを目的に受信して、曲線400を必要時にまたは要求時に拡大できる ようにする信号ならば、どのタイプの信号にすることもできる。例1 曲線の表現は種々タイプのものが存在するが、ベジェ曲線がポピュラな表現タ イプの1つである。ベジェ曲線(単にベジェと呼ぶ場合もある)に関して説明し ていることは、多種多様なタイプの曲線にも適用可能である。しかし、本発明の 一実施例では、ベジェ曲線が使用されている。従って、本明細書でベジェ曲線と 言及されている場合は、概念化された方法と装置で曲線を作成するときの具体例 として示したものである。同様に、曲線と言及されている場合は、具体例として のベジェに適用されるものである。 :PDB)に基礎を置くことが可能である。本発明は適当な経路定義曲線(Path- Defind Curve:PDC)を使用することも可能である。本発明の方法は、PDB が具体例として示されているが、多くのPDCにも応用可能である。 図2〜図4を参照して説明すると、本発明に従って実現される方法と装置は、 2次元の非有理三次元ベジェ・セグメント(two dimensional,non-rational, ンカ点402,408(A0とA1)はそれぞれ曲線400の始点410と終点4 12に一致するように選択することができ、2つの制御点404,406(C0 とC1)は終点410,412間の形状を支配する。構築変数414の集合は、 曲線400の円弧長さα416およびqaとraも含めて作成される(図15の式 14と図16の式18を参照)。構築変数414は一連のPi,tおよびuのパ ワーに取って代わる代数和である(図15の式15と図16の式19を参照)。 加算項は作成と編集のとき曲線400を調整するために使用され、曲線400を 再計算する必要がないのでリアルタイムでの更新が容易化される。 最小二乗誤差手法を用いる1つの目標は、曲線のイメージを作成し、それをユ ーザに提示し、ユーザ指定の経路420を円滑化し、近似化することである。例 えば、図2の曲線400は、点A0とA1、つまり、アンカ点402,408およ びC0とC1、つまり、制御点404,406を含む「制御変数(control variabl es)」401の関係を示したものである。ここでの太字は配列された数の集合( 例えば、ペア、トリプル)をもち、各々の数がベクトルの1次元における変数の 値に対応しているベクトル量を示している。本発明の方法と装置によれば、ユー ザが指定した経路上の点418に基づいて制御変数401(それぞれA0,C0, C1,A1,402,404,406,408)を定義することができる。 図2と図12に示すように、曲線400はtにおける3次元(立方)パラメト リック曲線(third degree(cubic)parameter curcve)、Bez(t)=u30+3t u20+3t2uC1+t3A1で表すことができる。ただし、u=(1−t)で あり、パラメータtはA0でt=0、A1でt=1のように変化する(図12の式 1を参照)。 曲線400の円弧長さα416の区分線形近似(piecewise linear approximat ion)は、点P1,P2など426間の弦425の長さ422から得る ことができる。従って、結果の曲線400の円弧長さα416の線形近似は、各 ペアの隣接点426間の距離の和である(図12の式2参照)。この弦長422 の和から、ノット・ベクトル(knot vector) kvは各部分弦長を正規化すること により作ることができる。各部分弦長は、最初のカーソル・ロケーションから問 題のロケーションまでの点426(例えば、A0から問題の点426まで)間の すべての先行区分線形距離422の和である(例えば、A0から問題の点426 まで。図12の式3を参照)。各部分弦長は最後の部分弦長によって分割される 。つまり、最後の部分弦長は最初のカーソル・ロケーションから最後のロケーシ ョンまで(例えば、A0からA1まで)のすべての弦長422の合計である。部分 弦長と最後の部分弦長とのこれらの比率はノット・ベクトルの各項 kviを定義し ている。 三次元ベジェのアンカ点(A0,A1)402,408および制御点(C0,C1 )404,406は、ユーザ指定の経路420における適合する曲線と入力点4 18の各々間の誤差から決定することができる。この誤差は、点418と曲線4 00上の対応するロケーション間の距離428、特にユークリッド距離で表すこ とができる。ベクトルの場合は、ユークリッド距離は入力点Piおよび計算され たベジェ曲線400上のtiにおける対応する点間の各次元における成分または 構成ベクトルの長さ(図13の式4を参照)に対応している。なお、ti=kviで ある(図13の式9参照)。近似曲線400とユーザ入力で定義された点Pi4 18間の二乗誤差の和については、図12の式4を参照のこと。 次に、図12〜図22、特に図12〜図16を参照して説明すると、最小二乗 法は最小二乗誤差を求めるために呼び出すことができる。部分微分(partial der inative)(図13の式4の誤差表現の変化率)は変数の各々に対して行うことが でき、最小誤差のロケーションはゼロにセットすることにより示すことができる (例えば、図13の式5と6を参照)。その結果の式の系(図13の式17)の 解を求めると、制御変数401(例えば、402,404,406,408)が 得られる。 従属変数は2つのアンカ点402,408(A0,A1)および2つの制御点4 04,406(C0,C1)になるように選択すると、4個の未知ベクトルをもつ 4個の線形ベクトル式の系が得られる。しかし、本発明による方法は、点A0と A1を定義するためにユーザによって指定された入力(例えば、点pi418)を 使用することを目的としているので、自由度が2つのベクトルに減少されている 。つまり、本発明の方法によれば、A0とA1がユーザによってスケッチされた経 路420上に実際に存在する点であることが必要があるので、適合する曲線40 0のアンカ(エンド)402,408点A0とA1がユーザ指定の経路420の開 始ロケーションと終了ロケーションと一致するように、実効的に制約またはクラ ンプしている。これらの2変数が既知であるときは、式システムは、図13の式 7にマトリックス形式で示しているように、2つの未知ベクトル(C0とC1)を もつ2つの線形ベクトル式に減少することができる。 線形式システムの解を求めるいくつかの手法のどれを用いても、C0とC1の値 を求めることができる。実用的には、クラマーの法則(Cramer's Rule)によると 、十分に正確な結果が得られることが分かっている。従って、曲線A0,C0,C1 およびA1を定義するために必要な4つの点402,406,408,404は 、ユーザによって指定された経路420に沿ってサンプリングされた点Pi41 8から既知である。 一般的には曲線400、具体的にはベジェ曲線は、ある種の入力データの集合 を通してユーザによって指定された経路420からサンプリングされた最初のn 個の点418に適合することができる。本発明の方法と装置は、以前に定義され た曲線400を効率的に拡大(例えば、編集、延長など)するために使用でき る。例えば、ユーザが図4に示すように、経路420内のn+1番目の点432 をもつ曲線400を延長したいときは、1つの方法は、上述したプロセスをn+ 1点418について繰り返すことである。 しかし、意味のあるフィードバックをユーザに与えるためには、各点Pn-14 32が追加されるたびに、ユーザに感知可能な曲線400を出力デバイス210 上で再レンダリングすることが必要である。更新された制御変数401A0,C0 ,C1,A1とその結果の曲線400の再レンダリングされた表現を最も有用なも のにするには、即時に計算する必要がある。ユーザへのフィードバックは「瞬時 (instant)」であることが必要である。ここで「瞬時」または「リアルタイム」 とは、ユーザが別の点を指定するに必要な時間よりも短時間であることを意味す る。あるいはまた、リアルタイムという用語は、ユーザの目や他の五感の知覚で 曲線の変化を検出する時間よりも短時間であることを意味するために使用される 場合もある。 単純な再計算手法でも、各点が追加されるたびに長い時間を要する。曲線40 0が長くなると、曲線を初期定義するために使用される手法はユーザが「対話型 」と考えるには遅すぎることがある。この方法を実行するようにプログラムされ たプロセッサ202は、応答をリアルタイムで返却できないことがある。この方 法によると、例えば、曲線400をスケッチしているユーザにタイムリにフィー ドバックするために必要とされる、対話による動きの流れが得られないことがあ る。 しかるに、本発明による方法によれば、増分的曲線適合(incremental curve f itting)を一定時間で行うことができる。つまり、例えば、n+22番目の点で 曲線を拡大するとき必要になる時間は、n+2番目のまたはn+1番目の点43 2の場合に必要になる時間よりも多くない。また、曲線400がいったん作成さ れたあとでは、曲線400はnがどの値をとるかに関係なく、新しいn+1番目 の点を受け入れると同じ時間量で再作成し、再レンダリングすることができる。 上述した適合法の計算負担の大部分は、加算STU436とSPTU438係 数の計算に起因している。ただしSTU436は図14の式12のtとu項の加 算であり、SPTU438は図16の式16のP,tおよびu項の加算である。 n+1点の場合のこれらの加算436,438は、n点418の曲線400を求 めるとき使用されるn点のそれとほぼ同一である。主な違いは、tとu値が異な る円弧長さα416でスケーリングされることである。前記加算436,438 の値をスケーリングするだけであるので、最初の方法を再度用いてこれらを再計 算する必要がない。その正味結果として、このように線形的に「スケーリング」 できる曲線400ならば、一定時間法を用いて増分的に曲線を更新することがで きる。具体的には、三次元ベジェ曲線の例はこのように操作される。n+1番目 の点を追加すると、「構築変数」414と呼ばれる中間変数が計算されて、曲線 が定義される。 適当な構築変数414の集合に円弧長さ416(α,β)を含めることが可能 であり、これは曲線に沿った離散点418Pi間に弦長を追加することにより十 分な精度で計算される。 また、構築変数414qa(図15の式14)とra(図16の式18)は、加 算項436,438(図15、式7のA0,C0,C1,A1の係数)をraとqaの 線形式(図15の式15と図16の式5を参照)にマッピングするように定義す ることができる。 つまり、図12のノット・ベクトル kv は円弧長さα416によって正規化さ れる(図14の式9を参照)。ただし、tとuは、図14の式8〜10では点4 18間の正規化されたユークリッド距離sと定義されている。 なお、式13の展開は、式12の加算項436,438がqaにおける線形式 15としてどのように再キャストされるかの例である。そこでは、qaは式14 で定義されている。t、uおよびPが関係する加算項に同じように代入すると、 raにおける式19が得られる(例えば、式16〜17参照。そこではraは式1 8で定義されている)。 以上のように、曲線400の表現は構築変数414qaとraで線形になるよう に変換することができ、これは曲線を円弧長さαで正規化することにより直接に 得られる。 従って、ベジェなどの曲線400が点418の集合に適合されるか、さもなけ れば、その制御変数401A0,C0,C1,A1(それぞれ402,404,40 6,408)によって定義されると、構築変数414qa,raの集合を定義する ことができる。これらの構築変数414qa,raに基づいて、新しい線形代数式 15,19を非線形パラメトリック式(tとuにおける図14の式12、図16 の式16)に代入することができる。以上のように、マトリックス式7の係数は qaとraにおける単純な線形代数式になっている。 構築変数414qa,ra、αを更新すると、n+1番目の点432をn点41 8の集合に追加することによって生じた変化を反映するように曲線400を変換 することができる。更新された構築変数415を使用すると、式7の加算項43 6,438を再定義して、式14,18で定義されたqaとraの式15,19で 使用することができる。そのあと、マトリックス式7の解を求めると、ベジェ曲 線などの新しい最小二乗誤差適合曲線が再計算される。 つまり、図17に示すように、構築変数415q′a(式22)とr′a(式2 4)は実際には、それぞれqa(図14)とra(図18)を線形変換したもので あり、長時間を消費して再計算したものではない。式22と24に定義されてい る、新しい「更新」構築変数415q′aとr′aはそれぞれqaとraの式15と 19に直接に代入して、式7の係数を定義することができる。 なお、式20のβはn+1点のときの新しい円弧長さ(例えば、n点のときの 式2のαを参照)を表している。αをβに更新することは、図4のn番目の点4 30である旧A1からの弦セグメントの円弧長さαに、n+1番目の点432で ある新A1を加えることによって行われる。 qaとraをq′aとr′aに線形変換することは、それぞれ式21,22と式2 3,24に示されている。q′aとr′aを項とする式7の係数の線形代数式は式 25に示されている。なお、更新構築変数415q′aとr′aにおける式25は 元の構築変数415qaとraにおける式15と同じ形式になっている。 一般的に、このような加算係数の線形変化の対象となる、どの適合した曲線の 場合も、具体的には、ベジェ曲線の場合は、曲線は構築変数414を元の加算か ら再計算しなくても、増分的に延長、拡大、編集などを行うことができる。式2 5の増分的に作られた加算項に基づいて、マトリックス式7の新しい解から得 られた新曲線は、n点418の元の適合に関して上述した方法に従ってすべての n+1点418を再適合すると得られるものと同じである。 図17と図18の式20〜25に記載されている拡大の方法では、構築変数4 14qa,raとαは経路指定(曲線ドローイング)プロセスの全期間保存されて いる。経路420、曲線400、またはベジェ曲線が完全に指定されたあとでは 、構築変数414をメモリ・デバイス204または記憶デバイス212に残して おく必要はない。ほとんどどの曲線も立方ベジェ曲線セグメントの列で表すこと が可能である。いったん定義されたあとは、どのベジェ曲線も、従来のベジェ曲 線とまったく同じように、格納された制御変数401A0,C0,C1,A1(それ ぞれ402,404,406,408)からいつでも再構築することが可能であ る。これは曲線400のタイプとは無関係に行うことができる。 しかし、ユーザがあとで、曲線400(または、以前にドローイングした他の 曲線)をさらに延長することを決めた場合は、構築変数414がなくても、リア ルタイムで拡大(例えば、編集、延長)することの妨げとはならない。 最小二乗誤差適合プロセスの加算項は有限列の離散ロケーション点Pi418 に基づいている。基本ベジェ曲線だけが存在するときは、その曲線が作られたと きの構築変数414も点Pi418の列も残っていない。構築変数414を再生 成する1つの方法は曲線400をサンプリングして、点Pi418の列を得るこ とである。構築変数414は上述した方法で作ることが可能である。 しかるに、本発明による方法と装置は加算(係数)STU436とSPTU4 38ではなく、積分を使用することを目的としている。積分を積分することは離 散的にではなく、連続的にサンプリングするのと同じである。本発明の方法はqa とra構築変数414の合成を目的としているので、本発明の利点を利用すると 、本発明とは無関係のシステム、方法および装置で作成された曲線400の操作 、拡大、および編集が容易化される。 図3に示すように、曲線400の円弧長さ416を求める1つの方法は、曲線 400上の連続する点426間の無限小の長さ427の弦425の長さを積分す ることである(例えば、図19の式26を参照)。この積分に対する閉形式(cl osed form)の解は分かっていない。サンプリングした点426間の弦425 の長さの加算を使用して円弧長さの近似を得るためには、十分な精度を得るため に曲線400を計算するためのロケーションがどこにあり、いくつであるかが分 かっている必要がある。 円弧長さα416に近似するために、本発明の方法と装置が意図している1つ の解決手法では、凸体の開部分である、再帰的に細分割された殻の区分長さが使 用されている。この凸殻の方法は図27と28に示されているが、以下で説明す る。この方法では、曲線の周囲に包絡線が作成され、弦の中間点間の弦はその全 体形状が曲線の形状に近似し、その結合長さが曲線の長さに近似している「殻(s hell)」を形成している。再帰的プロセスは殻を曲線の局所形状に自動的に適合 させ、より大きな曲率の領域で自動的にさらに細分割する。この方法によると、 所望の精度が指定でき、円弧長さの近似計算は所望の精度が得られた時点で中止 することができる。 実際には、qaは、式27(式9を式14に代入)に示すようにta項の加算で ある。n個の離散t値のパワーを含んでいる項を加算する問題は、tのパラメト リック変化のドメイン全体である、範囲[0,1]にわたるtの累乗の各々の連 続定積分として正確に表すことができる。つまり、tの値はこの範囲に正規化さ れるのに対し、sの値は曲線の実際の長さ416によってスケーリングされる。 離散問題を定積分の連続積分に変換することの別の利点は、Qaの値が定数であ るので、反復的計算を不要とすることである。図20の式29〜34に示すよう に、各Qaは単純な分数になっている。 同様に、図21の式35に示すように、式35は式9を式18に代入すること によって、raをPtaの加算に等しくしている。これらの離散的加算も、式36 に示すように範囲[0,1]にわたる関数に対して評価された連続定積分に変換 することが可能である。Bez(t)は、曲線400が図2において近似することが できる経路420からの有限数の離散Pロケーションまたは点418ではなく、 既存の連続曲線400からの無限数の点426(図3)の値を表している。 式36からは、既存の曲線400のアンカ点(A0,A1)402,408およ び制御点(C0,C1)404,406の関数である制御変数410の単純代数式 が得られる(図22の式37〜39を参照)。定数Qaと簡単に計算で求め られるRaの値は旧A0,C0,C1およびA1(それぞれ402,404,406 ,408)を項として定義されている。Qaとkaはそれぞれqaとraの代わりに 式15,19(図15,図16)の中で直接に使用して、加算項STU434と SPTU436を計算して図13のマトリックス式7の解を求めることができる 。式7の解を求めると、C0とC1の新しい値を得ることができる。ただし、A0 は元のA0であり、A1は曲線400がそこまで延長されている新しい終点432 である。例2 図24を参照して説明すると、曲線400の定義には、例えば、制御点C04 04とC1406を使用することができる。この定義はこれらの制御点404, 406の配置に接線拘束(tangency constaint)を課すことができる。これらの制 御点404,406の配置に接線拘束を課すと、セグメント接合点での連続性を 保証することができる。これを図形で示したのが図24である。 ここでは、C0は接線ベクトルTVr上に位置するように拘束されており、C1 は接線ベクトルTVs上に位置するように拘束されている。TVrとTVsはユニ ット・ベクトルにすることができる(例えば、図25の式40〜41を参照)。 図25において、式42は曲線を定義しており、そこでは式40〜41が図12 の式1に代入されている。 図26の式46は2つの未知変数における線形スカラ式の系を表し、そこでは 図25の式43は二乗誤差の合計を表している。つまり、式42は図13の式4 に代入されている。しかし、この場合には、部分微分が式44と45のrとsに 対してとられる。式46はクラマーの規則(Cramer's Rule)に従ってrとsの解 を求め、これはC0とC1を計算するために使用できる(図25の式40,41を 参照)。この場合も、A0とA1は、ユーザが指定した経路420上の点の列41 8の最初の点410と最後の点412となるように選択することができる。従っ て、式システムで表すことができる多くの曲線400は、式の系が線形的に変換 可能であれば、本発明の方法と装置に従って出力デバイス210からリアル タイムでレンダリングするために直接的にかつ対話型で使用することができる。 従って、他のタイプの曲線400を使用することも可能であり、制御変数40 1は例のものとはまったく異なるものにすることができる。数学関数を適当に選 択することにより、ユーザはある種の制御変数401と共に、あるタイプの曲線 400を選択することができる。また、ユーザは構築変数414を選択して線形 式系を作成することもでき、その場合には、構築変数414は単純な線形変換に よって更新することができる。例は、出力デバイス210での曲線400のレン ダリングを更新するために入力デバイス208、プロセッサ202、および出力 デバイス210に必要な時間を減少する目的でそのように行う方法を示している 。従って、本発明による方法と装置を使用すると、ユーザは曲線を直接的にかつ 対話型でリアルタイムで作成し、編集することができる。例3 図27を参照して説明すると、円弧長さの高速近似化のための方法は本発明に よって開発され、実現されたものである。この方法は凸包(convex shell)を分析 的に表現する再帰的公式に基礎を置いて曲線600に近似するようにしている。 制御点602,604,606および608は、曲線400について前述したよ うに、曲線600に対応する制御変数401に対応させることができる。殻(she ll)601は、制御点602,604,606および608間にわたっている辺( leg)610,612および614を含んでいる。曲線600の円弧長さ(図2を 参照)の第1近似は、それぞれ、辺610,612および614の長さ616, 618および620を総和することによって殻601の区分長さを計算すること により求められる。 ド・カーステルジオ法(de Casteljau method)を適用して、曲線600および その対応する殻601は細分割される。辺(leg)610,612,614の中間 点622,624,626は、それぞれ、分析的に求められる。中間点632と 634は、それぞれ、中間点622,624および624,626間に張られて いる織(web)628と630について求められる。中間点638は中間点632 と634間に張られている織636について求められる。この細分割の結果とし て、図28に別々に示すように、2つの新殻635A,635Bが作られる。 細分割の結果として得られた論理的左側殻635Aは、制御点602,622 ,632および638間に延びている辺652,654,656を含んでいる。 細分割の結果として得られた論理的右側殻635Bは制御点638,634,6 26および608間に延びている辺658,660,662を含んでいる。 曲線600の円弧長さの第2近似は細分割の結果得られた2つの殻635A, 635Bの各々の区分長さを加算することによって求められる。論理的左側殻6 35Aの区分長さは、それぞれ、辺652,654,656の長さ640,64 2,644を加算することによって求められる。論理的右側殻635Bの区分長 さは、それぞれ、辺658,660,662の長さ646,648,650を加 算することによって求められる。論理的左側殻635A,635Bの辺646, 648,650,658,660,662の区分長さをそれぞれ加算すると、曲 線600の円弧長さの第2近似が得られる。 以上のように、殻601について説明した方法は、必要時に殻635Aと63 5Bについて繰り返される。論理的左側殻635Bについては、点602,62 2,632および638は点602,604,606および608に対応し、他 方、点664,666および668はそれぞれ点622,624および626に 対応している。点684と686は点632と634に対応している。点696 は点638に対応している。同様に、辺652,654および636は辺610 ,612および614に対応し、そこでは、長さ700,702,704,70 6,708および710はそれぞれ長さ640,642,644,646,64 8および650に対応している。織676,678および692はそれぞれ62 8,630および636に対応している。 論理的右側殻635Bについても、殻601について上述した方法が繰り返さ れる。従って、点638,634,626および608は点602,604,6 06および608に対応し、他方、点670,672および674はそれぞれ 点622,624および626に対応している。点688と690は点632と 634に対応している。点698は点638に対応している。同様に、辺658 ,660および662は辺610,612および614に対応しており、そこで は、長さ712,714,716,718,720および724は、それぞれ長 さ640,642,644,646,648および650に対応している。織6 80,682および694は、それぞれ628,630および636に対応して いる。 以上から明らかのように、曲線600の円弧長さの第2近似は、一般に、曲線 600の円弧長さの第1近似よりも小さくなっている(大になることはない)。 これらの2つの近似から、相対誤差項は第1近似と第2近似の差を第2近似で除 することにより計算される。 この相対誤差項の絶対値が、ある種のあらかじめ決められた基準に合うだけ十 分に小さければ、第2近似は曲線600の円弧長さに十分に近似しているものと みなすことができる。相対誤差項があらかじめ決められた基準を超えているとき は、この方法は、2つの論理的曲線および以前のステップでド・カステルジオ細 分割の結果得られた対応する殻635A,635Bの各々について再帰的方法で 繰り返される。点602,622,632および638は論理的左側殻635A の制御変数401となり、点638,634,626および608は論理的右側 殻635Bの制御変数401となる。以上から明らかなように、曲線600の円 弧長さは殻601の辺の区分長さ、殻635A,635Bの辺の区分長さの和、 または以上のように定義された後続殻の和よりも常に小さくなっている。 以上のように、再帰は精度基準に一致するまで続けられる。あらかじめ決めら れた基準は精度基準であり、これは、任意の殻601,635A,635B、以 下後続の殻に対する円弧長416の連続する近似間の正規化された差が前記精度 基準以下か、等しいとき満足される。結論 図23を参照して説明すると、対話型曲線ドローイング・ツールは、以下で説 明されているように、また例1で説明したように本発明に従って実現されたもの である。一実施例における装置500は、入力デバイス502、出力デバイス5 04、メモリ・デバイス506、記憶デバイス508、およびプロセッサ510 を備えている。入出力デバイス502はマウス514をポインタとして含んでい る。出力デバイス504はイメージを表示するモニタ516を含み、そこにはマ ウス514の相対的位置を示すカーソル518が含まれている。プロセッサ51 0とメモリ・デバイス506はアップル・マッキントシュ・コンピュータに実装 されている。プロセッサ510は、加算項の計算精度を保つために浮動小数点ユ ニット(FPU)を備えた33メガヘルツ(MHz)MC68040プロセッサを装備してい る。また、プロセッサ510は上述した方法の実行可能弦を'C'プログラミング 言語で実行するようにプログラムされている。 この実施例によれば、各曲線400はアンレンダリングされ、連続する、拡大 され増分的に計算された曲線400をレンダリングする。新しいレンダリングは メモリ・デバイス506内のイベント・キュー522から読み取られた点の各新 ロケーションPn+1432に基づいている。イベント・キュー522には、シス テム・イベント・キュー522で受け取ったときのマウス514の位置に対応す るデータ点Pi418が格納されている。この装置500の応答はユーザが感知 できる範囲においてほとんど瞬時になっている。ベジェ曲線を出力デバイスから 実際にレンダリングするために出力デバイスとプロセッサに必要な時間は、パフ ォーマンスの制約要因となるものと判断されている。 この方法の実施例は、25MHz MC68030 CPUをプロセッサ510として実装して いるコンピュータで実行される。応答は認識できるほどに遅いが、それでも、大 部分の実用目的上は、更新された曲線400をリアルタイムでレンダリングする には十分に高速になっている。つまり、処理遅延は目でも分かるが、ユーザが入 力デバイス502のマウス514を動かしたときの入力に応答して、出力デバイ ス504(モニタ516)からのフィードバックの対話の流れを妨げるほどには 遅くない。 ハードウェアの浮動小数点コプロセッサの依存性をテストするために、この方 法は浮動小数点計算ルーチンのソフトウェア・ライブラリである、SANE (Standard Apple Numerics Environment)を使用するようにコンパイルされた弦 を採用して、プロセッサ510に実装されている。この実施例における方法は、 Motorola MC68020プロセッサをプロセッサ510として使用したときでも、非常 に満足な応答が得られるようになっている。 装置500でプログラムされ、本発明に従って実現されているツールによると 、広範囲にわたる市販プロセッサ510を使用して、編集とフィードバックを含 むリアルタイム・パフォーマンスをリアルタイムで達成することができる。また 、実行速度が低速であるクラスに属する、種々の現存プロセッサ510を使用し ても、非常に有用な応答時間が得られる。 本発明の方法と装置のプロトタイプを実現して実証されたことは、上記の機能 性が中規模から平均規模までのデスクトップ・コンピュータで実現できることで ある。ポピュラなドローイング・プログラムに組み入れるのに適した曲線ドロー イング・ツールは、シングル・セグメントおよびマルチ・セグメントの実施例に PDC、具体的には、PDBドローイング・ツールを組み入れると、大幅に機能 が強化される。この方法の意図は、曲線400の黙示的(自動)および明示的( ユーザ制御による)セグメンテーションに適用されることである。また、この方 法は、既存曲線400の内部部分を編集する編集ツールに適用することも可能で ある。例えば、曲線上の内部点Pi426は、それぞれ、点426の両側にある 曲線400の2部分の各々の新しい終点A0またはA1となることができる。また 、既存曲線の任意の内側部分を、本発明の方法と装置に従って再定義することも 可能である。 曲線400は、幅広く変化する多数の現象、例えば、データの近似、表面のエ ッジ、誘導ミサイルの軌跡、義足の歩行性能、プレスや他の製造マシンの複雑な 動きを表現するために使用することができ、また、空間の次元、温度、圧力、そ の他の物理的特性における多数のパラメータの経路を制御することができる。ま た曲線400はドローイングでも使用できる。 この例のPDBは曲線の特殊例にすぎない。一般的にはPDC、具体的にはP DBを使用すると、ユーザ・インタフェースが容易化される。容易化される理由 の1つは、この方法によると、曲線400をユーザがリアルタイムで、直接的 にかつ対話型で指定できるからである。 この方法によると、曲線400をリアルタイムで増分的に変更(拡大または延 長とも呼ばれる)することができる。フィードバックは、モニタのスクリーンか らあるいは適切な感知可能媒体によって表示される曲線として、目に見える形で 行われる。 例えば、アーチストやドラフトマンに対するビジュアル・フィードバックに適 用できるものは適当なフィードバック・プロセスにも応用可能である。例えば、 フィードバックは感知可能(知覚可能)な刺激を通してユーザに感知させること ができる。従って、曲線400はあるプロセスを表すように作成すると、パラメ ータ(例えば、熱の流れ、温度、圧力、力、空間を通る動き、時間的または空間 的応力を表す値)を曲線で変化させることができる。同様に、これらのパラメー タの値のフィードバックは視覚、音、感触、または五感で知覚可能なモードでユ ーザに伝えることが可能である。 以上のように、本発明の方法と装置を使用すると、曲線400の作成、変更、 または編集が効率化され、作成者の期待に添うように直接的に、対話型で、リア ルタイムで行うことができる。ほとんどその発生源に関係なく、曲線は、例えば 、ベジェ曲線で表すことができる。ベジェ曲線はユーザ制御のカーソルでマーク した特定点418の「最小二乗」曲線適合を使用して生成することができる。本 発明による方法と装置を使用すると、既存の曲線からの経路定義曲線を合成した り、既存のベジェ曲線からの経路定義ベジェ曲線を合成したりできる。 本発明は、その精神または基本的特徴から逸脱しない限り他の種々態様で実現 することが可能である。上述した実施例はすべての点で単なる例示であり、これ らに限定されるものではない。従って、本発明の範囲は上述した説明によってで はなく、請求の範囲の記載によって判断されるものである。請求の範囲の記載の 意味と等価範囲に属するすべての変更はその範囲内に属するものである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BB,BG,BR,BY,CA,CH,CN,CZ, DE,DK,EE,ES,FI,GB,GE,HU,I S,JP,KE,KG,KP,KR,KZ,LK,LR ,LS,LT,LU,LV,MD,MG,MK,MN, MW,MX,NO,NZ,PL,PT,RO,RU,S D,SE,SG,SI,SK,TJ,TM,TR,TT ,UA,UG,UZ,VN 【要約の続き】 れ、ユーザがポインタを動かして入力を追加することに より表示された曲線に適合させるとリアルタイムで即時 にユーザにフィードバックされる。

Claims (1)

  1. 【特許請求の範囲】 1.曲線をリアルタイムでレンダリングする装置において、 ユーザによって指定された経路上のロケーションに直接に対応する入力信号を 与えるための入力デバイスと、 入力信号を受け取って、該入力信号に適合する曲線に対応する出力データを与 えるためのプロセッサと、 プロセッサから受け取ったデータを格納するためのメモリと、 ユーザに検知可能であり、曲線に対応する出力信号を対話で与えるための出力 デバイスと を備えていることを特徴とする装置。 2.請求項1に記載の装置において、前記プロセッサはデータに論理演算を行う ディジタル・プロセッサを含み、データはロケーションに対応する点に適合する 線形変換可能曲線に対応するディジタル信号を含んでいることを特徴とする装置 。 3.請求項1に記載の装置において、前記入力デバイスはユーザによって経路上 を動かされるポインタをさらに含み、該入力デバイスは入力信号を生成すること を特徴とする装置。 4.請求項3に記載の装置において、前記出力デバイスはイメージング・デバイ スをさらに含み、該イメージング・デバイスはポインタの位置に対応するイメー ジをユーザに提示するカーソルを含んでいることを特徴とする装置。 5.請求項1に記載の装置において、前記出力デバイスは曲線のイメージをレン ダリングするレンダリング・デバイスをさらに含んでいることを特徴とする装置 。 6.請求項5に記載の装置において、曲線は三次元曲線から選択されることを特 徴とする装置。 7.請求項5に記載の装置において、前記レンダリング・デバイスはユーザに見 えるイメージをレンダリングするスクリーンをさらに含み、イメージは曲線に対 応し、曲線は三次元ベジェ曲線から選択されることを特徴とする装置。 8.請求項1に記載の装置において、前記プロセッサは、ユーザによって経路上 を動かされるポインタを含んでいる入力デバイスから入力信号を直接に受け取る ようにプログラムされたディジタル・プロセッサであり、該ディジタル・プロセ ッサは曲線に対応するイメージを出力デバイスからリアルタイムで対話でフィー ドバックし、前記入力デバイスは、前記イメージに応答してユーザがポインタを さらに動かしたことを反映する追加の入力信号をリアルタイムで受信するように 構成され、前記出力デバイスは、さらに、前記追加の入力信号を反映する第2の 曲線をリアルタイムでレンダリングするように構成されていることを特徴とする 装置。 9.請求項1に記載の装置において、入力信号はロケーションに対応するディジ タル信号からなることを特徴とする装置。 10.請求項9に記載の装置において、入力信号はロケーションの空間座標に対 応し、ロケーションは経路に沿って一定インターバルでサンプリングされた点に 対応していることを特徴とする装置。 11.請求項1に記載の装置において、入力信号は連続曲線に対応する信号から なることを特徴とする装置。 12.ユーザによって直接に制御される入力信号に応答して平滑化された出力信 号をリアルタイムで対話によりフィードバックする装置において、 ユーザによって操作可能で、ユーザによる動きを検知し、経路上の動きに直接 に対応する入力信号を選択的に与える入力デバイスと、 入力信号を受信するために入力デバイスに接続されていて、該入力信号に論理 的に演算を行って該入力信号に適合する線形変換可能曲線に対応するプロセス信 号を出力するプロセッサと、 前記プロセッサに動作可能に接続されていて、入力信号に対応する入力データ を格納すると共に、プロセス信号に対応する出力データを格納するメモリと、 該プロセッサに接続されていて、出力データを受信し、出力信号をリアルタイ ムでユーザに対話型でフィードバックする出力デバイスであって、前記出力信号 はユーザに検出可能で、前記出力データに対応しているものと を備えていることを特徴とする装置。 13.請求項12に記載の装置において、ユーザによって選択された空間内の経 路上の空間で移動できるようにユーザによって制御可能である入力デバイスをさ らに含むことを特徴とする装置。 14.経路定義曲線をリアルタイムで増分的に拡大する方法であって、 入力デバイスに関連するポインタを動かし、 経路上をポインタを動かすユーザによって指定された経路上のロケーションに 対応する入力データを作成し、 入力データに適合する線形変換可能曲線に対応するプロセス・データを、入力 デバイスに接続されたプロセッサで作成し、 プロセス・データを線形変換可能曲線に対応する線形系を表す構築変数データ にマッピングし、 構築変数を演算して曲線に対応する出力データを作成し、 曲線の第1イメージをプロセッサに接続された出力デバイスからユーザにフィ ードバックし、 イメージに応答してポインタを動かし、 追加の入力データを入力デバイスから与え、この場合、該追加入力データはポ インタの追加の動きからの追加のロケーションに対応しており、 構築変数データを線形変換して構築変数データを置換する新しい構築変数を作 成し、第1イメージを置換する第2イメージを出力デバイスからリアルタイムで ユーザにフィードバックする ことを含むことを特徴とする方法。 15.請求項14に記載の方法において、 ユーザによって制御される入力デバイスから継続入力を与え、 前記継続入力に対応する命令データに従って受信、線形変換、およびフィード バックを繰り返すことをさらに含むことを特徴とする方法。 16.請求項14に記載の方法において、 該方法を複数の曲線の各曲線ごとに繰り返すことをさらに含み、各曲線は複数 の曲線の別の曲線と共通する、少なくとも1つの点を含んでいることを特徴とす る方法。 17.請求項14に記載の方法において、プロセス・データを作成するステップ は、入力データに適合する複数の線形変換可能曲線に対応するプロセス・データ を作成し、前記複数の線形変換可能曲線の各曲線ごとにマッピングからフィード バックまでのステップを繰り返すことをさらに含むことを特徴とする方法。 18.複数の制御点によって定義された曲線の長さに近似する方法であって、 曲線の総長さに近似するために許容精度に対応するテスト値を与え、 各々の辺(leg)が複数の制御点の1つの制御点と該複数の制御点の隣接制御点 の間にわたっている線分に対応している複数の辺を含んでいる殻(shell)を定義 し、 複数の辺に対応する複数の辺の長さを論理回路で計算し、 辺の長さの和に対応する殻長さをメモリ・デバイスに格納し、 殻を複数の副殻(sub shell)に分割し、この場合、該複数の副殻の各副殻は複 数の制御点に対応する複数の副殻制御点をもつと共に、複数の副殻の辺をもち、 各副殻の辺は複数の副殻制御点の1つの副殻制御点と該複数の副殻制御点の隣接 副殻制御点の間にわたる線分に対応しており、 複数の副殻のすべての副殻の副殻の辺に対応する複数の副殻長さの加算に対応 する副殻長さを論理回路で計算し、 副殻長さをメモリ・デバイスに格納し、 殻長さと副殻長さを論理回路で比較し、 複数の副殻の各副殻を新しい殻として論理回路で定義し、 複数の新しい殻の各新しい副殻を複数の副殻に対応する複数の新しい副殻に分 割することによって新しい殻を分割することを、新しい殻の新しい殻長さと新し い殻に対応する新しい副殻の新しい副殻長さとの差がテスト値以下になるまで継 続することを含むことを特徴とする方法。 19.請求項18に記載の方法において、継続するステップは再帰と繰返しから 選択された方法によって行われることを特徴とする方法。
JP8529507A 1995-03-24 1996-03-22 経路定義曲線装置および方法 Pending JPH09506991A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/410,274 1995-03-24
US08/410,274 US5694535A (en) 1995-03-24 1995-03-24 Direct interactive, constant-time curve apparatus and method
PCT/US1996/003839 WO1996030874A2 (en) 1995-03-24 1996-03-22 Path-defined curve apparatus and method

Publications (1)

Publication Number Publication Date
JPH09506991A true JPH09506991A (ja) 1997-07-08

Family

ID=23624009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8529507A Pending JPH09506991A (ja) 1995-03-24 1996-03-22 経路定義曲線装置および方法

Country Status (7)

Country Link
US (2) US5694535A (ja)
EP (1) EP0764313B1 (ja)
JP (1) JPH09506991A (ja)
AU (1) AU5319296A (ja)
CA (1) CA2190579C (ja)
DE (1) DE69600392T2 (ja)
WO (1) WO1996030874A2 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115051A (en) * 1996-08-07 2000-09-05 Adobe Systems Incorporated Arc-length reparameterization
US6111588A (en) * 1996-12-05 2000-08-29 Adobe Systems Incorporated Creating and modifying curves on a computer display
US6025850A (en) * 1997-03-28 2000-02-15 Adobe Systems Incorporated Object boundaries identified in a raster image by a user selecting positions on the raster image and then using cost functions to predict likelihood of pixels near the position being on a boundary path
CA2233380A1 (en) * 1997-04-04 1998-10-04 Microsoft Corporation Parametric function curve editing
JPH10293854A (ja) * 1997-04-18 1998-11-04 Koubundou:Kk 曲線表示方法及び装置、同曲線を表すデータの作成方法及び装置、並びに同表示方法及び作成方法を実現するためのプログラムを記録した記録媒体
US6268871B1 (en) * 1997-04-30 2001-07-31 Silicon Graphics, Inc. Generating a curve for computer graphics through points residing on underlying geometries in a three dimensional space
US6100904A (en) * 1997-06-25 2000-08-08 Adobe Systems Incorporated Curvature smoothing
US6271864B1 (en) * 1997-06-30 2001-08-07 Sun Microsystems, Inc. Representing a path as an object with transformation capability
JP3705923B2 (ja) * 1998-04-09 2005-10-12 株式会社ソニー・コンピュータエンタテインメント 画像処理装置および画像処理方法、プログラム提供媒体、並びにデータ提供媒体
US6674435B1 (en) * 1998-09-16 2004-01-06 Texas Instruments Incorporated Fast, symmetric, integer bezier curve to polygon conversion
JP3508619B2 (ja) * 1999-05-13 2004-03-22 株式会社デンソー 車両用ナビゲーション装置
US6911980B1 (en) * 1999-12-10 2005-06-28 Adobe Systems Incorporated Manipulation of curves and surfaces
US6563509B1 (en) * 2000-02-25 2003-05-13 Adobe Systems Incorporated Seeding map having intermediate seed values
AU2002222702A1 (en) * 2000-11-25 2002-06-03 Infinitt Co., Ltd. 3-dimensional multiplanar reformatting system and method and computer-readable recording medium having 3-dimensional multiplanar reformatting program recorded thereon
US6771266B2 (en) * 2001-01-16 2004-08-03 Microsoft Corporation Method and apparatus for improving the appearance of digitally represented handwriting
US6895574B2 (en) * 2001-06-28 2005-05-17 Sun Microsystems, Inc. Method and apparatus for automatically producing efficient code for computing derivatives
DE10164496A1 (de) * 2001-12-28 2003-07-17 Siemens Ag Automatisierungssystem
US7385612B1 (en) 2002-05-30 2008-06-10 Adobe Systems Incorporated Distortion of raster and vector artwork
WO2004108365A1 (ja) * 2003-06-02 2004-12-16 Honda Motor Co., Ltd. 多関節ロボットのティーチングデータ作成方法
DE102004030709A1 (de) * 2004-06-25 2006-01-19 Daimlerchrysler Ag Verfahren zur Bestimmung des Krümmungsverlaufs einer Wegstrecke
US7405733B2 (en) * 2005-03-24 2008-07-29 Autodesk Canada Co. Spline drawing in a computer-implemented graphics program
US7798873B1 (en) 2005-06-22 2010-09-21 The United States Of America As Represented By The Secretary Of The Navy Design of a flush inlet as integrated with a ship hull for waterjet propulsion
CA2624258C (en) * 2005-09-30 2016-08-02 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
US8520003B2 (en) * 2006-05-22 2013-08-27 Raphael L Levien Method and apparatus for interactive curve generation
US7877317B2 (en) * 2006-11-21 2011-01-25 Yahoo! Inc. Method and system for finding similar charts for financial analysis
US7852380B2 (en) * 2007-04-20 2010-12-14 Sony Corporation Signal processing system and method of operation for nonlinear signal processing
US8014630B1 (en) * 2007-05-02 2011-09-06 Evernote Corporation Method and apparatus for representing image data using digital filtering and adaptive parameterization
US7969440B1 (en) 2007-05-02 2011-06-28 Evernote Corporation Method and system for curve fitting using digital filtering
US7706912B2 (en) * 2007-11-30 2010-04-27 Caterpillar Inc. Orifice formation control system
US9529778B2 (en) 2008-03-27 2016-12-27 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
EP2427729A4 (en) * 2009-05-04 2014-08-27 Tomtom North America Inc METHOD AND SYSTEM FOR REDUCING SHAPE POINTS IN A GEOGRAPHIC DATA COMPUTING SYSTEM
JP5476103B2 (ja) * 2009-11-27 2014-04-23 富士フイルム株式会社 ページ記述データ処理装置、方法及びプログラム
IT1398088B1 (it) * 2010-02-03 2013-02-07 Unox Spa Metodo di impostazione di parametri inerenti curve di regolazione di apparecchiature destinate alla gestione delle condizioni climatiche ambientali di spazi chiusi climatizzati, in particolare camere di forni di cottura per alimenti o di dispositivi per il mantenimento o l'abbattimento della temperatura
US20110285718A1 (en) 2010-05-21 2011-11-24 Kilgard Mark J Point containment for quadratic bèzier strokes
US8515714B2 (en) * 2010-06-02 2013-08-20 Livermore Software Technology Corp. Curve matching for parameter identification
US8521484B2 (en) * 2010-06-02 2013-08-27 Livermore Software Technology Corp. Curve matching for parameter identification
CN102305590B (zh) * 2010-08-10 2012-12-12 南通大学 曲线位移检测系统及其用途
US20120050293A1 (en) * 2010-08-25 2012-03-01 Apple, Inc. Dynamically smoothing a curve
US8510029B2 (en) * 2011-10-07 2013-08-13 Southwest Research Institute Waypoint splining for autonomous vehicle following
EP2648084A1 (en) * 2012-04-05 2013-10-09 BlackBerry Limited Electronic device and method of controlling display of information on a touch-sensitive display
US20130265239A1 (en) * 2012-04-05 2013-10-10 Research In Motion Limited Electronic device and method of controlling display of information on a touch-sensitive display
TWI476640B (zh) 2012-09-28 2015-03-11 Ind Tech Res Inst 時間資料序列的平滑化方法與裝置
US9898249B2 (en) 2012-10-08 2018-02-20 Stc.Unm System and methods for simulating real-time multisensory output
US9508166B2 (en) * 2014-09-15 2016-11-29 Microsoft Technology Licensing, Llc Smoothing and GPU-enabled rendering of digital ink
US9804709B2 (en) 2015-04-28 2017-10-31 Samsung Display Co., Ltd. Vector fill segment method and apparatus to reduce display latency of touch events
RU2643431C2 (ru) * 2015-09-02 2018-02-01 Общество С Ограниченной Ответственностью "Яндекс" Способ и сервер симплификации кривой
US10347016B2 (en) * 2016-01-12 2019-07-09 Monotype Imaging Inc. Converting font contour curves
US10013631B2 (en) * 2016-08-26 2018-07-03 Smart Technologies Ulc Collaboration system with raster-to-vector image conversion
US10936792B2 (en) 2017-12-21 2021-03-02 Monotype Imaging Inc. Harmonizing font contours
US11192584B2 (en) * 2019-09-23 2021-12-07 GM Global Technology Operations LLC Method and apparatus for lateral movement control
US11227419B2 (en) 2020-03-30 2022-01-18 Adobe Inc. Removing anchor points from a path while reducing deviation of the path
US20230120598A1 (en) * 2021-10-15 2023-04-20 Fanuc Corporation Robot program generation method from human demonstration

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4674058A (en) * 1981-12-07 1987-06-16 Dicomed Corporation Method and apparatus for flexigon representation of a two dimensional figure
GB2248754A (en) * 1990-06-13 1992-04-15 Rank Cintel Ltd Electronic painting system
JP2899084B2 (ja) * 1990-08-03 1999-06-02 キヤノン株式会社 図形処理装置及び方法
JP2522108B2 (ja) * 1990-10-17 1996-08-07 株式会社精工舎 曲線近似方法
US5434959A (en) * 1992-02-11 1995-07-18 Macromedia, Inc. System and method of generating variable width lines within a graphics system
US5367617A (en) * 1992-07-02 1994-11-22 Microsoft Corporation System and method of hybrid forward differencing to render Bezier splines
US5363479A (en) * 1992-07-02 1994-11-08 Microsoft Corporation System and method for rendering bezier splines
JPH06110992A (ja) * 1992-09-25 1994-04-22 Agency Of Ind Science & Technol Cadシステムにおける形状変形入力操作方法
US5381521A (en) * 1993-05-14 1995-01-10 Microsoft Corporation System and method of rendering curves
GB2278470B (en) * 1993-05-28 1997-12-24 Canon Res Ct Europe Ltd Signal processing methods and apparatus
US5583977A (en) * 1993-10-21 1996-12-10 Taligent, Inc. Object-oriented curve manipulation system
US5473742A (en) * 1994-02-22 1995-12-05 Paragraph International Method and apparatus for representing image data using polynomial approximation method and iterative transformation-reparametrization technique

Also Published As

Publication number Publication date
WO1996030874A3 (en) 1996-11-07
CA2190579C (en) 2000-10-24
CA2190579A1 (en) 1996-10-03
DE69600392D1 (de) 1998-08-06
AU5319296A (en) 1996-10-16
WO1996030874A2 (en) 1996-10-03
EP0764313B1 (en) 1998-07-01
EP0764313A2 (en) 1997-03-26
DE69600392T2 (de) 1999-03-11
US5694535A (en) 1997-12-02
US5731820A (en) 1998-03-24

Similar Documents

Publication Publication Date Title
JPH09506991A (ja) 経路定義曲線装置および方法
US11403434B2 (en) Surface patch techniques for computational geometry
US6628295B2 (en) Modifying a stylistic property of a vector-based path
Igarashi et al. Teddy: a sketching interface for 3D freeform design
US6639592B1 (en) Curve network modeling
US6549201B1 (en) Method for constructing a 3D polygonal surface from a 2D silhouette by using computer, apparatus thereof and storage medium
Nealen et al. Fibermesh: designing freeform surfaces with 3d curves
CA2606794C (en) Large mesh deformation using the volumetric graph laplacian
Schmidt et al. Shapeshop: Sketch-based solid modeling with blobtrees
Tai et al. Prototype modeling from sketched silhouettes based on convolution surfaces
US7123269B1 (en) Modifying vector objects
US20070229544A1 (en) Nurbs surface deformation apparatus and the method using 3d target curve
AU5390799A (en) Geometric design and modeling system using control geometry
Du et al. Dynamic PDE-based surface design using geometric and physical constraints
Erdogan Spline interpolation techniques
Barsky et al. TRANSPLINE—A system for representing curves using transformations among four spline formulations
Kwon et al. Free-Hand stroke based NURBS surface for sketching and deforming 3d contents
JP3209196B2 (ja) 多関節物体の表示方法及び表示装置
Igarashi A Sketching Interface for Freeform 3D Modeling
GB2422757A (en) Time-dependent animation of a 3D object
JP4451327B6 (ja) コンピュータ支援設計システムで曲線を線描する方法
JP4451327B2 (ja) コンピュータ支援設計システムで曲線を線描する方法
Choi et al. Free hand stroke based virtual sketching, deformation and sculpting of NURBS surface
Casciola Xccurv: the 2D Modeller: User's Guide, Version 1.0
Anjyo et al. Parametrizing 3D Positive Affine Transformations