(57)【要約】【課題】所望の形を達成するためにベジェ曲線の調整を可能とする技術を提供する。【解決手段】点列中の連続点については、点Ａ、点Ｂ及び点Ｃが点列中の連続点であり、点Ｂに対応しセグメントＡＢに関連する制御点は、式Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））により決定され、且つ点Ｂに対応しセグメントＢＣに関連する制御点は、式ＰＢＢＣ＝Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））により決定される。ここでＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）、及びＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）である。【選択図】図１Ａ
2010257460.tif 000002
【特許請求の範囲】
【請求項１】
点列からのベジェ曲線の生成を可能にする双方向コンピュータグラフィックスのためのシステムであって、
データ論理処理手段と、
ユーザー入力を受け取るための入力手段と、
コンピュータ読み取り可能媒体とを含み、
ユーザー入力を受け取るための前記入力手段によって点列を受け取り、前記データ論理処理手段により処理するために前記コンピュータ読み取り可能媒体に前記点列が転送され、前記データ論理処理手段は、前記コンピュータ読み取り可能媒体からの前記点列の点を読み出し、前記点列の連続点間の相対距離に従い１つ以上の点に対応する制御点を計算し、前記データ論理処理手段は、前記計算された制御点及び前記点列を用いてベジェ曲線を生成し、前記生成されたベジェ曲線は、前記コンピュータ読み取り可能媒体に保存されるシステム。
【請求項２】
前記入力手段は、コンピュータポインティングデバイスを含む請求項１に記載のシステム。
【請求項３】
前記コンピュータ読み取り可能媒体は、コンピュータメモリである請求項１に記載のシステム。
【請求項４】
点Ａ、点Ｂ及び点Ｃは、前記点列の連続する点で、点Ｂに対応しセグメントＡＢに関連する制御点は、式Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））により決定され、且つ点Ｂに対応しセグメントＢＣに関連する制御点は、式Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））により決定され、式中ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）、及びＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）である請求項１に記載のシステム。
【請求項５】
前記データ論理処理手段は、前記コンピュータ読み取り可能媒体から前記作られたベジェ曲線を読み出し、前記出力装置上に前記作られたベジェ曲線を表すコンピュータ出力装置を更に含む請求項１に記載のシステム。
【請求項６】
前記データ論理処理手段は、前記コンピュータ出力装置及び前記入力手段を用いるグラフィカルユーザーインターフェースを提供し、前記グラフィカルユーザーインターフェースはユーザーが前記ベジェ曲線の制御点を修正することができる請求項５に記載のシステム。
【請求項７】
点列からベジェ曲線を生成するための方法を実行するためのコンピュータシステムにより実行可能な保存されたコンピュータ命令を有する非一時的コンピュータ読み取り可能媒体であって、前記方法は、
コンピュータ読み取り可能媒体から、コンピュータ入力装置を用いる前記コンピュータシステムのユーザーにより特定された点列中の連続点である点Ａ、Ｂ及びＣを読み出すステップと、
前記コンピュータシステムの処理装置において、前記読み出された点Ａ、Ｂ、及びＣの相対位置により決定される制御点を前記読み出された点Ａ、Ｂ、及びＣから計算するステップと、
前記点Ａ、Ｂ、及びＣ及び前記計算された制御点を含むベジェ曲線データ構造を生成するステップと、
コンピュータ読み取り可能媒体に前記生成されたベジェ曲線データ構造を保存するステップと、
グラフィカルユーザーインターフェースを用い前記作られたベジェ曲線データ構造をユーザーが操作することを可能にするステップと
を含むコンピュータ読み取り可能媒体。
【請求項８】
点Ｂに対応しセグメントＡＢに関連する制御点は、式Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））により決定され、且つ点Ｂに対応しセグメントＢＣに関連する制御点は、式Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））により決定され、式中ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）、及びＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）である請求項７に記載のコンピュータ読み取り可能媒体。
【請求項９】
双方向コンピュータグラフィックスシステムのグラフィカルユーザーインターフェースにおいて、ベジェ曲線を定義する方法であって、
前記双方向コンピュータグラフィックスシステムの前記グラフィカルユーザーインターフェースを通じてユーザーにより特定された第１の点Ａを受け取るステップと、
前記双方向コンピュータグラフィックスシステムの前記グラフィカルユーザーインターフェースを通じてユーザーにより特定された第２の点Ｂを受け取るステップと、
前記双方向コンピュータグラフィックスシステムの前記グラフィカルユーザーインターフェースを通じてユーザーにより特定された第３の点Ｃを受け取るステップと、
ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）、及びＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）であって、式Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））により決定される、点Ｂに対応しセグメントＡＢに関連する制御点を計算するステップと、
式Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））により決定される、点Ｂに対応しセグメントＢＣに関連する制御点を計算するステップと、
点Ａ、点Ｂ及び点Ｃを保存するベジェ曲線データ構造を作り、且つ点Ｂに関連する前記第１制御点及び前記第２制御点を点Ｂに関連して保存するステップとを含む方法であって、前記ベジェ曲線データ構造は、コンピュータグラフィックスシステムの表示装置上に表示するため及びユーザーによる操作のためベジェ曲線を表現するために使われる方法。
【請求項１０】
データ論理処理手段と、
コンピュータ読み取り可能媒体と、
経路データを受け取り且つ前記コンピュータ読み取り可能媒体に前記経路データを保存する入力装置とを含み、
点列は、前記データ論理処理手段により処理するために前記経路データから特定され且つ前記コンピュータ読み取り可能媒体に保存され、前記データ論理処理手段は、前記コンピュータ読み取り可能媒体から前記特定された点列の点を読み出し、前記特定された点列の連続点間の相対距離に従い１つ以上の点に対応する制御点を計算し、前記データ論理処理手段は、前記計算された制御点及び前記特定された点列を用いるベジェ曲線を作り、前記作られたベジェ曲線は、前記コンピュータ読み取り可能媒体に保存されるシステム。
【請求項１１】
前記点列は、所定の間隔に従い前記経路データから特定される請求項１０に記載のシステム。
【請求項１２】
前記所定の間隔は、距離ベースである請求項１１に記載のシステム。
【請求項１３】
前記所定の間隔は、時間ベースである請求項１１に記載のシステム。
【請求項１４】
前記所定の間隔は、形状ベースである請求項１１に記載のシステム。
【請求項１５】
前記入力装置は、ユーザー入力装置から経路データを受け取る請求項１０に記載のシステム。
【請求項１６】
前記入力装置は、コンピュータ読み取り可能媒体から経路データを受け取る請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、簡潔かつ概略的には、コンピュータグラフィックスのためのコンピュータ実装方法及び装置に関し、特に、コンピュータグラフィックスシステムにおける点列からの立方ベジェ制御点の生成に関する。
【背景技術】
【０００２】
ベジェ曲線は、曲線をモデル化するためにコンピュータグラフィックスシステムで使用されるパラメトリック曲線である。点Ｐ０からＰ３までの立方ベジェ曲線は、２つの制御点Ｐ１及びＰ２に沿う点によって定義される。点Ｐ０での曲線の接線は、制御点Ｐ１の方向で、且つ点Ｐ３での曲線の接線は、制御点Ｐ２の方向である。曲線は、以下のパラメータ方程式により定義される。
Ｂ（ｔ）＝（１−ｔ）３Ｐ０＋３（１−ｔ）２ｔＰ１＋３（１−ｔ）ｔ２Ｐ２＋ｔ３Ｐ３、ｔは０≦ｔ≦１
【０００３】
いくつかの双方向コンピュータグラフィックスアプリケーションでは、マウスを使うことによりユーザーはベジェ曲線を定義することができる。ユーザーは、点Ｐ０を特定するためマウスボタンをクリックし且つ押し続け、制御点Ｐ１の所望の位置に向けてボタンを押し続けながらマウスをドラッグすることができる。ユーザーがマウスボタンを離すとき、その時点のポインター位置が制御点Ｐ１となる。このプロセスは、点Ｐ３（所望の位置に向け、クリックし、押し続けことにより）及び点Ｐ２を（マウスを所望の位置にドラッグし、マウスボタンを離すことにより）を定義し続ける。このように、ユーザーは、ベジェ曲線を定義することができる。
【０００４】
さらに、いくつかの双方向コンピュータグラフィックスアプリケーションでは、ユーザーは、制御点Ｐ１及びＰ２と同様に点Ｐ０及びＰ３をクリック及びドラッグすることにより定義されたベジェ曲線を操作することができる。このように、ユーザーは、所望の形を達成するため曲線を調整することができる。しかし、点特定をポインターで指し制御するためのクリック・ドラッグアプローチは、フリーハンドでの図とは大いに違い、ある人にとって煩雑で、創造性を鈍らせるおそれもある。
【発明の概要】
【課題を解決するための手段】
【０００５】
一般に、点列からのベジェ曲線の生成を可能にする双方向コンピュータグラフィックスシステムが開示される。システムは、データ論理処理手段、ユーザー入力を受け取るための入力手段及びコンピュータ読み取り可能媒体を含む。点列は、入力手段により受け取られ、データ論理処理手段により処理するためにコンピュータ読み取り可能媒体に転送される。データ論理処理手段は、コンピュータ読み取り可能媒体からの点列のうちの複数点を読み出し、点列の連続点間の相対距離に従い１つ以上の点に対応する制御点を計算する。データ論理処理手段は、計算された制御点及び点列を用いベジェ曲線を生成し、コンピュータ読み取り可能媒体に作られたベジェ曲線を保存する。
【０００６】
幾つかの実施例において、制御点は、以下のように点列中の連続する点Ａ、点Ｂ及び点Ｃから計算される。（ｉ）点Ｂに対応し且つセグメントＡＢに関連する制御点は、式Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））により決定され、及び（ｉｉ）点Ｂに対応し且つセグメントＢＣに関連する制御点は、式ＰＢＢＣ＝Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））により決定される。この計算の目的のために、ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）、及びＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）とする。
【０００７】
この技術は、コンピュータグラフィックスアプリケーションにおけるベジェ曲線を定義するための改良方法を提供する。例えば、入力手段は、コンピュータキーボード、コンピュータ・ポインティング・デバイス（例えば、マウス）等として実施されても良い。幾つかの実施例において、ユーザーは、点列中の連続点を定義するためにマウスを用いポインターで示し且つクリックし、その結果点列は、点列中の連続点の相対位置に従い、ベジェ曲線に変換される。作られたベジェ曲線は例えば、追加の処理及び／又は表示のためにコンピュータ読み取り可能媒体中に保存されても良い。
【０００８】
又、各々が双方向コンピュータグラフィックスシステムのグラフィカルユーザーインターフェースを通じてユーザーにより特定される第１の点Ａ、第２の点Ｂ及び第３の点Ｃの受け取りを含む双方向のコンピュータグラフィックスシステムのグラフィカルユーザーインターフェースにおけるベジェ曲線を定義する方法が一般に開示される。ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）、及びＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）とする時、式Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））を用い点Ｂに対応し且つセグメントＡＢに関連する制御点を計算し、及び式Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））を用い点Ｂに対応し且つセグメントＢＣに関連する制御点を計算するようにシステムは構成される。点Ａ、点Ｂ及び点Ｃを保存し、且つ点Ｂに関連する第１制御点及び第２制御点を保存するベジェ曲線データ構造を生成するようにシステムは更に構成される。ベジェ曲線データ構造は、コンピュータグラフィックスシステムによりディスプレーに表示され、ユーザーにより操作されても良い曲線を定義する。
【０００９】
又、データ論理処理手段、コンピュータ読み取り可能媒体及び経路データを受け取りコンピュータ読み取り可能媒体に経路データを保存する入力装置を含むシステムが一般に開示される。点列は、経路データから特定され、データ論理処理手段による処理のためコンピュータ読み取り可能媒体に保存される。データ論理処理手段は、コンピュータ読み取り可能媒体から特定された点列の複数点を読み出し、特定された点列の連続点間の相対距離に従い１以上の点に対応する制御点を計算する。
【００１０】
データ処理手段は、計算された制御点及び特定された点列を用いベジェ曲線を作り、作られたベジェ曲線は、コンピュータ読み取り可能媒体に保存される。点列は、距離ベース、時間ベース、形状ベース等の所定の間隔に従い、例えば、経路データから特定されても良い。入力装置は、例えば、マウス、タッチスクリーン等のユーザー入力装置を通じ、又はメモリ、記憶装置、ネットワークインターフェース等のコンピュータ読み取り可能媒体を通じることを含む如何なる方法でも経路データを受け取る事ができる。
【００１１】
１つ以上の実施の詳細は、添付図面及び下記の記述中に説明される。他の機能及び利点は、明細書、図面及び請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】ベジェ曲線の生成のために使われるべき点列を示す図である。
【図１Ｂ】セグメントＡＢ及びＢＣの相対的長さに基づき相対値ＲＡ及びＲＣの計算を示す図である。
【図１Ｃ】点Ｂに対応する制御点の計算を示す図である。
【図１Ｄ】制御点及び端点の位置を示すベジェ曲線の図である。
【図１Ｅ】図１Ｄに示されるような端点及び制御点を持つベジェ曲線の図である。
【図２】本発明の実施形態に従い作られた制御点の図である。
【図３】点列からベジェ曲線を生成するために使用可能なコンピュータシステムのブロック図である。
【図４】点列からベジェ曲線を生成するためのプロセスのフローチャートである。
【図５】点列から複数のベジェ曲線を生成するためのシステムのブロック図である。
【図６】コンピュータ読み取り可能媒体にベジェ曲線を保存するためのデータ構造の図である。
【図７Ａ】ベジェ曲線への変換のための例示的経路を示す図である。
【図７Ｂ】図７Ａに示される経路に沿う制御点の位置を示す図である。
【発明を実施するための形態】
【００１３】
図１Ａから１Ｅを参照して、本明細書は、点列からベジェ曲線を生成するための種々の技術を説明する。これらの技術は例えば、双方向コンピュータグラフィックスアプリケーション（例えば、ベクトルベースコンピュータ描画ツール、コンピュータ支援設計ツール、視覚化ツール、コンピュータアニメーションツール、グラフィックデザインツール等）において使用可能である。ユーザーは、所望のベジェ曲線上の点列中の連続点を定義するために、単にポイント及びクリックを行うことで、改良されたグラフィカルユーザーインターフェースを用いる双方向コンピュータグラフィックスアプリケーションの文書にベジェ曲線を挿入することができる。点列は、例えば、（ｉ）各連続点が入力された時点、又は（ｉｉ）点列全体が入力された後、ベジェ曲線に変換される。このように、ベジェ曲線は、ユーザーが制御点を特定する必要なくユーザーにより定義可能である。制御点は、ある複数の点間の相対距離に基づき、自動的に定義される。ここに記述された技術は、２つの隣接点の相対位置から制御点の外挿を可能にし、位置にかかわらず安定制御点を提供する。これらの技術は、簡便性と数学的完全性との間をうまく両立させる。
【００１４】
本明細書においては、「ベジェ曲線」という用語は、本明細書の背景技術で説明された式により定義された曲線のみに限られるわけではなく、むしろ、端点と端点とを接続する一連のベジェ曲線セグメント（ベジェスプラインとして言及されることもあある）だけでなく、例えば、単一のベジェ曲線セグメントをも包含するよう、より広い用語として用いられている。
【００１５】
例えば、適切に滑らかに接続された一連の立方ベジェセグメントを生成するために隣接点の相対位置に基づき制御点を生成することにより図１Ａに示される点Ａ１２、点Ｂ１４及び点Ｃ１６の３点からベジェ曲線を生成することができる。例えば、以下のように点Ｂ１４に対応する制御点の生成を記述する。
【００１６】
点Ｂ１４に隣接する制御点は、点Ａ１２及び点Ｃ１６の相対位置に基づき生成することができる。立方ベジェ曲線セグメントは、各端点での接線を定義する２つの端点及び２つの制御点により定義される。この技術は、これらを貫通して点Ｂ１４を共有する２つの立方ベジェセグメントＡＢ及びＢＣに寄与する点Ｂ１４での制御点を外挿法で推定する。セグメントＡＢに沿う２つの制御点をＰＡＡＢ及びＰＡＢＢと称し、セグメントＢＣに沿う２つの制御点をＰＢＢＣ及びＰＢＣＣと称する。Ａ、Ｂ、Ｃの位置から外挿法で推定される制御点は、ＰＡＢＢ及びＰＢＢＣである。
【００１７】
制御点の位置は、ＡＢ及びＢＣ間の距離の比率に依存し、｜ＡＢ｜及び｜ＢＣ｜は、線セグメントＡＢ及びＢＣの長さである。比率は、
ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）
ＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）
として定義されうる。
【００１８】
Ａ、Ｂ及びＣは、位置ベクトルとして扱われ、制御点ＰＡＢＢ及びＰＢＢＣは、以下のように定義される。
ＰＡＢＢ＝Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））
ＰＢＢＣ＝Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））
【００１９】
図１Ｂを参照して、点Ｂ１４に対応する制御点は、点Ｂ１４と隣接の端点１２及び１６との間の距離に依存する。図１Ｂは、距離｜ＡＢ｜は２．２４、距離｜ＢＣ｜は２．８２として示される。距離の合計｜ＡＢ｜＋｜ＢＣ｜は５．０６である。ＲＡ及びＲＣを計算すると
ＲＡ＝｜ＡＢ｜／（｜ＡＢ｜＋｜ＢＣ｜）＝２．２４／５．０６＝０．４４、及び
ＲＣ＝｜ＢＣ｜／（｜ＡＢ｜＋｜ＢＣ｜）＝２．８２／５．０６＝０．５６となる。
【００２０】
図１Ｃを参照して、これらの比率ＲＡ及びＲＣは、制御点ＰＡＢＢ２０及びＰＢＢＣ１８を計算するために使われる。制御点ＰＡＢＢ２０は、位置ベクトルＰＡＢＢ＝Ｂ＋ＲＡ＊（ＲＡ＊（Ｂ−Ｃ）＋ＲＣ＊（Ａ−Ｂ））＝０．４４（０．４４（Ｂ−Ｃ）＋０．５６（Ａ−Ｂ））によりスケーリングされる。図１Ｃは、ベクトルＲＣ（Ａ−Ｂ）及びＲＡ（Ｂ−Ｃ）の和を示し、その結果は、係数ＲＡ＝０．４４によりスケーリングされる。同様に、制御点ＰＢＢＣ１８は、位置ベクトルＰＢＢＣ＝Ｂ＋ＲＣ＊（ＲＡ＊（Ｃ−Ｂ）＋ＲＣ＊（Ｂ−Ａ））により定義される。図１Ｃは、ベクトルＲＣ（Ｂ−Ａ）及びＲＡ（Ｃ−Ｂ）の和を示し、その結果は、係数ＲＣ＝０．５６によりスケーリングされる。このように、ベクトルは、点Ｂ１４で滑らかな接線を形成する。制御点２０及び１８、及び点Ａ１２、点Ｂ１４及び点Ｃ１６に対応する結果として生じるベジェ曲線２２は、図１Ｄに示され、ベジェ曲線２２は、図１Ｅにコンピュータグラフィックスアプリケーションで描画されるように示される。
【００２１】
ベジェ曲線を生成するために一連の端点から制御点を非明示的に生成することによって、例えば、コンピュータグラフィックスの手書きを容易にするために、ユーザーに使いやすいインターフェースを提供することができる。結果生じる端点及び制御点は、ユーザーによって望まれるようなベジェ曲線を調整するために従来の方法で操作可能である。この技術は、点列中の各点に適用されても良い。
【００２２】
上述の技術は、点列中の最初と最後の点を扱うために変更可能である。例えば、最初の点に関連する制御点と最後の点に関連する制御点は、それら自体をポイントに設定可能である。更に、上述の技術は、例えば、コンピュータ支援設計ツール、グラフィックエディター、ワードプロセッサ、エンターテインメントソフトウエア等を含む広範囲の種々のコンピュータ実装システムで使用可能である。
【００２３】
図２は、点Ａ及びＢの相対位置に関する制御点２４及び２６の相対位置を示す。例えば、制御点２４は、ベクトル（Ｂ−Ｃ）と（Ａ−Ｂ）との間の線上に存在する。この線の方向は、｜ＡＢ｜対｜ＢＣ｜の率により決定され、そのような線に沿った制御点２４の位置は、同じ率により決定される。同様に、制御点２６の位置は、点Ｂに対して反対方向でそのような線に沿ったものとなる。点２４及び２６は、同じ線に沿って存在するので、｜ＡＢ｜対｜ＢＣ｜の比率がどのようなものであっても、点Ｂにおける接線は、連続したものとなる。
【００２４】
図３を参照して、本明細書に記述された技術に従い、ベジェ曲線を生成するためのコンピュータシステム３０を示す。コンピュータシステム３０は、処理装置３４、メモリ３８、データストレージ４０、表示装置３６、及び入力装置３８を接続するバス３２を含む。一般に、これは、従来のフォンノイマンアーキテクチャに関するが、当業者は、本明細書に記述された技術は、例えば、別離のデータ及び命令バスを有するコンピュータシステムのような他のコンピュータアーキテクチャに等しく適用される事を理解するであろう。コンピュータシステム３０は、データストレージ４０中、又は如何なる他のコンピュータ読み取り可能媒体上にも保存された命令を含む。実行された時、これらの命令は、処理装置３４がメモリ３８中に保存された点列をベジェ曲線に変換し、メモリ３８中にベジェ曲線を保存することを可能にするようにコンピュータシステム３０を構成する。処理装置３４は、従来の方法で曲線を表現することによってメモリ３８に保存されたベジェ曲線を表示する。そのような表現された曲線は、表示装置３６を用い見ることができる。好ましい実施形態において、複数の点は連続していて、マウス、キーボード及び／又はそれらの何らかの組み合わせを用い入力される。しかし、入力装置３８は、キーボード、マウス、トラックボール、トラックパッド、ジャイロスコープポインティングデバイス等のうちの１つ又はそれ以上として具体化されうる。
【００２５】
処理装置３４は、例えばパーソナルコンピュータ、ノート型パソコン、及び／又は携帯機器に一般に使われる処理装置のような、点列をベジェ曲線に変換するために命令を実行できる如何なる装置をも含む。更に、処理装置３４は、同時及び平行実行のための複数コアを含むことができる。
【００２６】
図４を参照して、点列から、該点列の最初の点で始まるベジェ曲線を生成するための方法を示す。この技術は、現時特定点の前後に置かれた点の相対位置を用いる。しかし、第１の点については、点列中には直前点はない。したがって、対応する制御点は、定義されないでそのまま残るか又は制御点は、第１の点として同じ位置に設定されても良い。プロセスは、点列中の次の点へ、この場合、点列の第２の点へ動くことにより続く（４２）。
【００２７】
点列中に３つ以上の点があると仮定すると（即ち、第２の点は点列中の最後の点ではない）、プロセスは、点列中の途中の点を通り繰り返し、各関連制御点を計算する。点列中の最後の点に達すると、プロセスは終了する（４４）。点が残っている限り、プロセスは、点列中の現在の点の制御点を計算することにより継続する（４６）。制御点が計算された後、プロセスは、点列中の次の点に行き（４２）、点列中の最後の点に達するまで、繰り返し続く。点列中の最後の点に関連する制御点は、定義されず残ってもよく、又は点列中の最初の点として同じ位置に設定されても良い。
【００２８】
このプロセスは、全ての点がいったん入力されてから実施されてもよく、又は点が入力されるにつれて順次実施されてもよい。例えば、ユーザーは、第１の点及び第２の点でクリックできる。ユーザーが、点列中の第３の点でクリックする時、第２の点に対応する制御点は計算可能で、第１の点で始まり、制御点に従い第２の点を通って進み、第３の点で終わるベジェ曲線を示すように表示装置は更新される。もし、第４の点が追加されると、第２の点と第４の点は、第３の点に対応する制御点を設定するために使われても良く、表示装置を、それに応じて更新することができる。
【００２９】
このプロセスは、例えば、コンピュータグラフィックスシステム内で点列からベジェ曲線を生成するために使われても良い。１つの実施例において、システムは、ユーザーがベジェ曲線上の１点の所望の位置にカーソルを移動させ且つその位置を取得するためにマウスボタンをクリックすることによりベジェ曲線を定義することを可能にする。最後の点に達するまで複数の点はこのように連続して入力される。ユーザーは、例えば、最後の点を再びクリックすることにより、キーボードのボタンを押すことにより、マウスボタンをクリックすること等により、点列中の最後の点に達したことを示す。
【００３０】
別の実施例において、ユーザーは、ある特定の順又は続きで互いに接続された点列からなる経路を生成する。一旦経路が作られると、ユーザーはメニュー項目を選択して経路をベジェ曲線に変換することができる。一度ベジェ曲線が作られると、ユーザーは従来の方法で制御点及び端点を修正できる。
【００３１】
図５を参照すると、点列をベジェ曲線に変換するためのソフトウエアは、システムの種々の構成要素及び周辺機器と相互作用するためにプロセスモジュール５４用の環境を提供するオペレーティングシステム５２を含む。プロセスモジュール５４、入力モジュール５６、表示モジュール５８各々は、点列６０をベジェ曲線６２に変換するためオペレーティングシステム５２と及び互いに相互作用する。例えば、プロセスモジュール５４は、グラフィカルユーザーインターフェースを実施する。ユーザー入力は、オペレーティングシステム５２により受け取られ、点列中の複数の点を特定するため入力モジュール５６により処理される。例えば、ユーザーがマウスを動かすとき、オペレーティングシステム５２は、動きを処理し、表示装置上のポインターを表示する。点列に追加すべき点を示すためにユーザーがマウス又は他の入力装置上のボタンをクリックする時、入力モジュール５６は、入力を受け取って処理し、プロセスモジュール５４は、適切にデータ構造を更新する。
【００３２】
点列６０中の複数の点は、例えば、ランダムアクセスメモリ、ハードドライブ、フラッシュメモリ等のようなコンピュータ読み取り可能媒体に保存される。メモリをシステムに対しローカルに又はリモートに置くことができる。プロセスモジュール５４は点列６０を読み出し、上述のやりかたでベジェ曲線のための制御点を計算する。結果生じる制御点は、ベジェ曲線６２を定義する端点とともに保存される。
【００３３】
ベジェ曲線６２は、図６で説明するようなデータ構造として保存されても良い。ベジェ曲線データ構造６４は、点列中の第１の点を特定するタイプベジェ点６６のｐｔ列と呼ばれるデータ要素を含む。データタイプベジェ点６６は、以下のデータ要素を含む：（ｉ）ベジェ端点の座標を示すためのタイプポイントの「ｌｏｃ」、（ｉｉ）点列中のそれぞれ次の及び直前のベジェ点を示すためのタイプベジェポイントの「ｎｅｘｔ」及び「ｐｒｅｖ」、及び（ｉｉｉ）制御点の座標を特定するためのタイプポイントの制御点「ｐｔＡＢＢ」及び「ｐｔＢＢＣ」。データ要素ｐｔＡＢＢは、セグメントＡＢに対応するＢにおける制御点であり、データ要素ｐｔＢＢＣは、セグメントＢＣに対応するＢにおける制御点である。ベジェ曲線データ構造６４を上述の方法で制御点を計算中にプロセスロジックにより生成することができる。
【００３４】
上記の実施例は、点列を如何にベジェ曲線に変換するかを記述するが、ベジェ曲線として如何なる与えられた経路をも表す又は近似することも可能である。例えば、図７Ａは、ベジェ曲線へ変換されるべき典型的経路７０を示す。例えば、タッチスクリーン、ペンタブレット、マウス、トラックボール、運動センサー、ジャイロスコープコントローラ等のような入力装置を用い経路７０を生成することができる。
【００３５】
図７Ｂに示されるように、経路７０は種々の点７２でサンプリングされる。これらの点７２は、その後図１Ａ〜１Ｅに関し上述された方法でベジェ曲線を生成するために使われる。（１）時間ベース間隔、（２）距離ベース間隔、又は（３）形状ベース間隔という、少なくとも３つの異なるアプローチを用いて、複数の点７２を選択できる。時間ベース間隔を用い、経路７０は、それが受け取られる（例えば、入力装置から）時にサンプリングされる。周期的に、（例えば、毎Ｎ秒ごと）経路７０に沿う点７２は特定される。結果生じる複数の点７２は、ベジェ曲線を生成するために使われる。距離ベース間隔を用い、経路７０に沿い規則的距離間隔で点７２が選択される。例えば、複数の点７２は、経路７０に沿い毎Ｎインチ（又は他の距離単位）ごとに特定されても良い。同様に、結果生じる複数の点７２は、ベジェ曲線を生成するために使われる。
【００３６】
形状ベース間隔アプローチを用い、複数の点７２は、経路７０の特定された形状で又はその近くでより頻繁に特定される。当業者は、経路７０の形状を特定するための種々の技術を理解するであろう。例えば、経路７０に沿う点は、所定の時間間隔又は距離間隔を用いることにより周期的に特定されても良い。次に、１つの特定された点から次の点までのベクトルが決定される。形状を特定するために、連続的な複数のベクトルを比較して使うことができる。連続的な複数のベクトルが異なれば異なるほど、追加点７２は、より有益となり、経路７０の形状に沿う複数の点７２の数がより多くなるように複数の点７２が特定される。反対に、経路７０が規則的であれば規則的であるほど、それを表すために必要となる点の数は小さくなる。
【００３７】
複数の点７２を定義するために使われる方法に関係なく、図１Ａ〜１Ｅに関する上述の方法で複数の点７２からベジェ曲線を生成することができる。結果生じるベジェ曲線は、元の経路７０のコンパクトな表現を提供する。何百、何千、又は更に多数の点列として経路７０を表す代わりに、経路７０は、ベジェ曲線を定義するコンパクトな点列７２として表すことができ、結果としてかなりのデータ圧縮となる。更にこのように、望んだ時に、図１Ａ〜１Ｅに関する上述の技術を用い制御点を生成することができるので、関連制御点なしの点列７２としてベジェ曲線を表す事ができる。例えば、一実施例において、ベジェ曲線は、対応する制御点の明確な表現なしに点列として保存される。そのような曲線が表示装置（又は他に望まれるもの）用に表される時、制御点は決定される。制御点が修正されない限り、それらを明確に表現する必要はなく、結果として圧縮された表現となる。
【００３８】
多くの実施形態が記述されてきた。にもかかわらず、本発明の精神及び範囲から逸脱することなく種々の修正を為すことができる事は理解されるであろう。従って、その他の実施形態も、以下の請求項に記載される発明の範疇に含まれるものである。
【符号の説明】
【００３９】
２６      制御点
３０      コンピュータシステム
３４      処理装置
３６      表示装置
３８      メモリ
４０      データストレージ
５２      オペレーティングシステム
５４      プロセスモジュール
５６      入力モジュール
５８      表示モジュール
６０      点列
６２      ベジェ曲線
６４      ベジェ曲線データ構造
【図１Ａ】
2010257460.tif 000003
【図１Ｂ】
2010257460.tif 000004
【図１Ｃ】
2010257460.tif 000005
【図１Ｄ】
2010257460.tif 000006
【図１Ｅ】
2010257460.tif 000007
【図２】
2010257460.tif 000008
【図３】
2010257460.tif 000009
【図４】
2010257460.tif 000010
【図５】
2010257460.tif 000011
【図６】
2010257460.tif 000012
【図７Ａ】
2010257460.tif 000013
【図７Ｂ】
2010257460.tif 000014