(57)【要約】対話型楕円弧制御システムおよび方法が開示されている。３つの制御点（中心制御点と２つの焦点制御点）が与えられている。これらをユーザが対話形式で操作して、当該楕円パラメータを特定および変更することができる。中心制御点は、ｙ方向の楕円の半径とｘ方向の楕円の半径との比を一定に保ちながら、ｘ方向の楕円の半径を制御することができる。また中心制御点は、掃引フラグと当該大円弧フラグとの関係を制御することもできる。２つの焦点制御点は、ｙ方向の楕円の半径とｘ方向の楕円の半径との比、座標系のｘ軸から楕円のｘ軸までの角度、掃引フラグの値を制御することができる。
2005526310.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ入力に応答して楕円弧を描画する方法であって、
グラフィカル・ユーザ・インターフェース（ＧＵＩ）のポインティング・デバイスを介して、楕円弧に対する第１の端点と第２の端点とを受け取るステップと、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する中心点を受け取るステップと、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する焦点を受け取るステップと、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画するステップと、を含む方法。
【請求項２】
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する第２の焦点を受け取るステップと、
中心点と第２の焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画するステップと、をさらに含む請求項１に記載の方法。
【請求項３】
半長軸に沿っての楕円の半径と、半短軸に沿っての楕円の半径とを、受け取ったユーザ入力に基づいて決定するステップをさらに含む請求項１に記載の方法。
【請求項４】
ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度を、受け取ったユーザ入力に基づいて決定するステップをさらに含む請求項１に記載の方法。
【請求項５】
楕円の円弧と円弧の方向とを、受け取ったユーザ入力に基づいてさらに含む請求項１に記載の方法。
【請求項６】
ユーザ入力に応答して楕円弧を生成するための方法であって、
楕円弧に付随する中心制御点、第１の焦点制御点、および第２の焦点制御点の少なくとも１つの移動を受け取るステップと、
少なくとも１つの中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定するステップと、
焦点制御点の少なくとも一方に対する値に基づいて、楕円弧に付随する焦点半径に対する値を決定するステップと、
焦点半径に対する値に基づいて、楕円弧の第１の半径に対する値を決定するステップであって、第１の半径は、楕円弧に付随する第１の幾何学的軸に対して規定されるステップと、
楕円弧の第２の半径に対する値を決定するステップであって、第２の半径は、楕円弧に付随する第２の幾何学的軸に対して規定されるステップと、
第１の半径および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定するステップと、を含む方法。
【請求項７】
第１の焦点制御点または第２の焦点制御点が移動したときに、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定するステップと、
少なくとも１つの焦点制御点に基づいて、楕円弧に付随する回転角に対する値を決定するステップと、
楕円弧の第１の半径に対する値を決定するステップと、
楕円弧の第２の半径に対する値を決定するステップと、
回転角、第１の半径、および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定するステップと、をさらに含む請求項６に記載の方法。
【請求項８】
中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定するステップが、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を固定するステップをさらに含む請求項７に記載の方法。
【請求項９】
楕円弧に付随する焦点半径に対する値を決定するステップを、楕円弧の第１の端点および楕円弧の第２の端点に対して行ない、
楕円弧の第１の半径に対する値を決定するステップが、焦点半径に対して計算される２つの値の小さい方に基づく請求項７に記載の方法。
【請求項１０】
第１の幾何学的軸がｘ軸を含み、第２の幾何学的軸がｙ軸を含む請求項６に記載の方法。
【請求項１１】
中心制御点が、楕円弧の第１の端点と楕円弧の第２の端点とを結ぶ線を越えて移動したときに、楕円弧に付随する掃引フラグに対する値を交換するステップをさらに含む請求項６に記載の方法。
【請求項１２】
楕円弧の第２の半径に対する値を決定するステップが、楕円弧の第１の半径に対する値と楕円弧の第２の半径に対する値との間の比を維持するステップを含む請求項７に記載の方法。
【請求項１３】
第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定するステップが、楕円弧に付随する中心制御点と焦点半径とに対する値を維持するステップをさらに含む請求項７に記載の方法。
【請求項１４】
楕円弧に付随する回転角に対する値を決定するステップが、第１の焦点制御点または第２の制御点の値に基づいて回転角に対する値を決定するステップをさらに含む請求項７に記載の方法。
【請求項１５】
焦点制御点が、第１の幾何学的軸を表わす線を越えて移動したときに、楕円弧に付随する掃引フラグに対する値と、楕円弧に付随する大円弧フラグに対する値とを交換する請求項６に記載の方法。
【請求項１６】
ユーザ入力に応答して楕円弧を描画するためのシステムであって、
グラフィカル・ユーザ・インターフェースと、
グラフィカル・ユーザ・インターフェースに結合されたポインティング・デバイスと、を備え、
グラフィカル・ユーザ・インターフェースは、
ポインティング・デバイスを介して、楕円弧に対する第１の端点および第２の端点を受け取り、
ポインティング・デバイスを介して、楕円弧に対する中心点を受け取り、
ポインティング・デバイスを介して、楕円弧に対する焦点を受け取り、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画する、システム。
【請求項１７】
グラフィック・ユーザ・インターフェースがさらに、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する第２の焦点を受け取り、
中心点と第２の焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画する、請求項１６に記載のシステム。
【請求項１８】
グラフィック・ユーザ・インターフェースがさらに、半長軸に沿っての楕円の半径と半短軸に沿っての楕円の半径とを、受け取ったユーザ入力に基づいて決定することが実行可能である請求項１６に記載のシステム。
【請求項１９】
グラフィック・ユーザ・インターフェースがさらに、ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度を、受け取ったユーザ入力に基づいて決定することが実行可能である請求項１６に記載のシステム。
【請求項２０】
グラフィック・ユーザ・インターフェースがさらに、楕円の円弧と円弧の方向とを、受け取ったユーザ入力に基づいて決定することが実行可能である請求項１６に記載のシステム。
【請求項２１】
楕円弧を生成するためのシステムであって、
プロセッサ装置と、
プロセッサ装置に結合されたディスプレイ装置と、
プロセッサ装置に結合された入力装置と、を備え、
プロセッサ装置は、入力装置に応答して、
楕円弧に付随する中心制御点、第１の焦点制御点、および第２の焦点制御点の少なくとも１つをディスプレイ上で移動させることと、
少なくとも１つの中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定することと、
焦点制御点の少なくとも一方に対する値に基づいて、楕円弧に付随する焦点半径に対する値を決定することと、
焦点半径に対する値に基づいて、楕円弧の第１の半径に対する値を決定することであって、第１の半径は、楕円弧に付随する第１の幾何学的軸に対して規定される、決定することと、
楕円弧の第２の半径に対する値を決定することであって、第２の半径は、楕円弧に付随する第２の幾何学的軸に対して規定される、決定することと、
第１の半径および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定することと、が実行可能であるシステム。
【請求項２２】
プロセッサ装置がさらに、
第１の焦点制御点または第２の焦点制御点が移動したときに、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定することと、
少なくとも１つの焦点制御点に基づいて、楕円弧に付随する回転角に対する値を決定することと、
楕円弧の第１の半径に対する値を決定することと、
楕円弧の第２の半径に対する値を決定することと、
回転角、第１の半径、および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定することと、が実行可能である請求項２１に記載のシステム。
【請求項２３】
プロセッサ装置が、中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定することが実行可能であり、さらに、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を固定することが実行可能である請求項２１に記載のシステム。
【請求項２４】
プロセッサ装置が、楕円弧に付随する焦点半径に対する値の決定を、楕円弧の第１の端点および楕円弧の第２の端点に対して実行することによって行なうことと、楕円弧の第１の半径に対する値の計算を、焦点半径に対して計算される２つの値の小さい方に基づいて行なうことと、が実行可能である請求項２２に記載のシステム。
【請求項２５】
第１の幾何学的軸がｘ軸を含み、第２の幾何学的軸がｙ軸を含む請求項２１に記載のシステム。
【請求項２６】
プロセッサ装置がさらに、中心制御点が、楕円弧の第１の端点と楕円弧の第２の端点とを結ぶ線を越えて移動したときに、楕円弧に付随する掃引フラグに対する値を交換することが実行可能である請求項２１に記載のシステム。
【請求項２７】
プロセッサ装置が、楕円弧の第２の半径に対する値を決定することが実行可能であり、さらに、楕円弧の第１の半径に対する値と楕円弧の第２の半径に対する値との間の比を維持することが実行可能である請求項２２に記載のシステム。
【請求項２８】
プロセッサ装置が、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定することが実行可能であり、さらに、楕円弧に付随する中心制御点と焦点半径とに対する値を維持することが実行可能である請求項２１に記載のシステム。
【請求項２９】
プロセッサ装置が、楕円弧に付随する回転角に対する値を決定することが実行可能であり、さらに、第１の焦点制御点または第２の制御点の値に基づいて回転角に対する値を決定することが実行可能である請求項２２に記載のシステム。
【請求項３０】
焦点制御点が、第１の幾何学的軸を表わす線を越えて移動したときに、プロセッサ装置がさらに、楕円弧に付随する掃引フラグに対する値と、楕円弧に付随する大円弧フラグに対する値とを交換することが実行可能である請求項２１に記載のシステム。
【請求項３１】
ユーザ入力に応答して楕円弧を描画するための、媒体中にエンコーディングされるロジックにおいて具現化されるソフトウェアであって、コンピュータシステムによって実行されたときに、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する第１の端点および第２の端点を受け取る手段と、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する中心点を受け取る手段と、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する焦点を受け取る手段と、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画する手段と、
半長軸に沿っての楕円の半径と、半短軸に沿っての楕円の半径と、ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度とを、受け取ったユーザ入力に基づいて決定する手段と、を構成するソフトウェア。
【請求項３２】
ユーザ入力に応答して楕円弧を描画するためのシステムであって、
ユーザから、楕円弧に対する第１の端点および第２の端点を受け取るための手段と、
ユーザから、楕円弧に対する中心点を受け取るための手段と、
楕円弧に対する焦点を受け取るための手段と、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画するための手段と、
半長軸に沿っての楕円の半径と、半短軸に沿っての楕円の半径と、ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度とを、受け取ったユーザ入力に基づいて決定するための手段と、を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、コンピュータ支援設計／コンピュータ支援製造（ＣＡＤ／ＣＡＭ）分野に関し、特に、しかしこれに限定されないが、楕円形の円弧セグメント（楕円弧セグメント）を含む円弧セグメントをコンピュータを用いて作図するためのパラメータを特定するための直感的で対話型のインターフェースを与えるシステムおよび方法に関する。
【背景技術】
【０００２】
ある種のＣＡＤ／ＣＡＭ作図ツールには、楕円形の円弧作図ツールが含まれている。ユーザ・インターフェースを簡単にするために、これらのツールでは通常、楕円パラメータの一部が固定されている。たとえば、楕円を作るために用いられる普通の簡単化された作図技術では、楕円を強制的にｘまたはｙ軸の何れかに平行にさせた後、ユーザが、楕円がフィットするボックスを描く。他の作図ツールでは、楕円パラメータをユーザが手動で入力（たとえばタイプ入力）することができ、設計上の柔軟性が多少得られるようになっている。
【０００３】
ある種のＣＡＤアプリケーションは、楕円弧セグメントなどのスケーラブル・ベクトル・グラフィックス（ＳＶＧ）データをインポートおよびエクスポートする。ＳＶＧは、ベクトル・ベースのＣＡＤフォーマットであり、これによって、サイズ変更、動画、回転などがリアル・タイムで実行できる動的対話型グラフィックスを、ユーザが作成することができる。ＳＶＧでは各楕円弧セグメントは、５つの楕円パラメータに加えて当該セグメントの端点（endpoints）を用いて特定される。
【発明の開示】
【課題を解決するための手段】
【０００４】
概要
本開示では、コンピュータを用いた作図用の楕円パラメータを特定するための方法およびシステムを提供する。一実施形態によれば、作図および図表のアプリケーションで用いるための対話式円弧制御システムであって、ユーザが、２つの節点（ノード）を接続する円弧（たとえば楕円弧）のパラメータを完全に特定することができるシステムが提供される。
【０００５】
一実施形態においては、楕円制御システムによって２つの制御点、中心制御点と焦点制御点とが与えられ、これらの点をユーザが対話型式で操作して、表示されている特定の円弧（たとえば楕円弧）のパラメータを変えることができる。たとえば、楕円弧が表示されているかまたは描かれているときに、中心制御点は、ｙ方向の楕円の半径（半短軸）とｘ方向の楕円の半径（半長軸）との比を一定にしながら、ｘ方向の楕円の半径（半長軸）を制御する。また中心制御点は、掃引フラグ（たとえば、円弧を時計方向に描くべきかまたは反時計方向に描くべきかを特定するフラグ）と大円弧フラグ（たとえば、楕円の大きい方の円弧を用いるべきかまたは小さい方の円弧を用いるべきかを特定するフラグ）との関係も、制御する。焦点制御点は、ｙ方向の楕円の半径（半短軸）とｘ方向の楕円の半径（半長軸）との比、座標系のｘ軸から楕円のｘ軸までの角度（回転）、および掃引フラグを制御する。その結果、説明した２つの制御点を用いて、２つの節点を接続する円弧に対するパラメータを、直感的かつ比較的簡単な方法で特定することができる。
【０００６】
代替的な実施形態においては、円弧制御システムによって、３つの制御点、中心制御点と２つの焦点制御点とが与えられ、これらの点をユーザが対話形式で操作して、表示されている特定の円弧（たとえば楕円弧）のパラメータを変えることができる。同様に、この実施形態においても、楕円弧が表示されているときに、中心制御点は、ｙ方向の楕円の半径（半短軸）とｘ方向の楕円の半径（半長軸）との比を一定にしながら、ｘ方向の楕円の半径（半長軸）を制御する。また中心制御点は、掃引フラグ（たとえば、円弧を時計方向に描くべきかまたは反時計方向に描くべきかを特定するフラグ）と大円弧フラグ（たとえば、楕円の大きい方の円弧を用いるべきかまたは小さい方の円弧を用いるべきかを特定するフラグ）との関係も、制御する。２つの焦点制御点のそれぞれは、ｙ方向の楕円の半径（半短軸）とｘ方向の楕円の半径（半長軸）との比、座標系のｘ軸から楕円のｘ軸までの角度（回転）、および掃引フラグを制御する。その結果、説明した３つの制御点を用いて、２つの節点を接続する円弧に対するパラメータを、直感的かつ比較的簡単な方法で特定することができ、および表示される制御の対称性を大きくすることができる。
【０００７】
本開示をより完全に理解するために、以下の説明を添付の図面とともに参照する。
【発明を実施するための最良の形態】
【０００８】
詳細な説明
図１を参照して、本開示のシステムおよび方法の１つまたは複数の実施形態を実施するために使用できる典型的なワークステーション１０が与えられている。ワークステーション１０は、ＣＡＤ／ＣＡＭ、もしくはエンジニアリング・アプリケーション、デスクトップ・パブリッシング、ソフトウェア開発、または比較的高品質のグラフィックス能力が得られる他のタイプのアプリケーション用に通常用いられるコンピュータとすることができる。たとえばワークステーション１０は、高分解能のグラフィックス・モニタ１２、内部メモリ（たとえばランダム・アクセス・メモリ）１４、およびグラフィカル・ユーザ・インターフェース（ＧＵＩ）１６を有するデスクトップ・コンピュータとすることができる。マウス２０、他のポインティング・デバイス、またはタッチ・スクリーンを設けて、ユーザが、ＧＵＩ１６によってモニタ１２上に表示される要素を特定、選択、移動、および／またはそうでなければ制御できるようにしても良い。またメモリ１４は、大容量記憶装置または媒体１８、たとえばディスク・ドライブを、含んでいても良い。
【０００９】
ワークステーション１０用の好適なオペレーティング・システムは、ユニックス（ＵＮＩＸ）（登録商標）またはウィンドウズＮＴ（ＷＩＮＤＯＷＳ  ＮＴ）（登録商標）オペレーティング・システムであり得る。ワークステーション１０は、シングル・ユーザ・コンピュータ、もしくは複数のワークステーション、サーバ、および／または他のコンピュータ装置であって、互いにリンクして１つまたは複数のローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、広域ネットワーク（ＷＡＮ）、またはグローバル・ネットワークの一部、たとえばインターネットを形成するコンピュータ装置とすることができる。
【００１０】
図２を参照して、本開示の一実施形態による円弧制御システム１００を示す例示的なブロック・ダイアグラムである。円弧制御システム１００は、アプリケーション・ウィンドウ１１０と対話式の円弧制御コンポーネント１０２とを含む。楕円弧制御システム１００は、ソフトウェアおよび／またはハードウェアで行なうことができる。アプリケーション・ウィンドウ１１０は、ＧＵＩ１６によってモニタ１２上に表示される。アプリケーション・ウィンドウ１１０によって、ユーザは、対象物（たとえば楕円弧）を作成することができ、対象物に付随する１つまたは複数の制御点を操作することによって対象物を対話形式で変更することができる。
【００１１】
対話式の円弧制御システム１０２には、端点パラメータ化コンポーネント１０４、中心点パラメータ化コンポーネント１０６、および焦点パラメータ化コンポーネント１０８が含まれる。端点パラメータ化コンポーネント１０４は、スケーラブル・ベクトル・グラフィックス（ＳＶＧ）をサポートするために、システム１００によって用いられる。中心パラメータ化コンポーネント１０６は、アプリケーション・ウィンドウ１１０内で表示する円弧（たとえば楕円弧）を作図するために用いられる。中心パラメータ化コンポーネント１０６と焦点パラメータ化コンポーネント１０８との組み合わせはユーザに円弧（たとえば楕円弧パラメータ）パラメータの制御（調節）を提供する。これはアプリケーション・ウィンドウ１１０を通してユーザによってグラフィカルに特定された制御点からの円弧パラメータを決定することによって行われる。特定の実施形態においては、円弧制御システム１０２は、円弧の端点を固定したまま、たとえば楕円パラメータをあるタイプから他のタイプへ変換することによって、すべてのパラメータを決定しても良い。具体的な実施形態においては、たとえば、円弧制御システム１０２は、端点パラメータを中心および／または焦点パラメータに対してマッピングしても良く、ならびに中心および／または焦点パラメータを互いにおよび／または端点パラメータに対してマッピングしても良い。
【００１２】
図３Ａに、アプリケーション・ウィンドウ１１０を通してユーザに表示されユーザによって制御可能な例示的な楕円弧１２０を例示する。楕円弧１２０および好適であればどんなＳＶＧ円弧も、リアル・タイムで、ユーザに表示されユーザによって操作されても良い。楕円弧１２０によって、２つの端点Ｐ１およびＰ２が接続される。楕円弧の構成を規定する制御点も、アプリケーション・ウィンドウ１１０上に表示されている。図３Ａの構成においては、表示された円弧を操作するために３つの制御点を用いることができる。すなわち中心点（Ｃ）および２つの焦点（Ｆ１およびＦ２）である。図３Ｂに見られるように、代替的な実施形態においては、表示された円弧を操作するために２つの制御点を用いることができる。すなわち中心点（Ｃ）および焦点（Ｆ１またはＦ２）である。ユーザが、中心（Ｃ）または焦点（Ｆ１および／またはＦ２）制御点の１つまたは複数を対話形式で操作することによって、楕円弧１２０の構成を特定することができる。各端点Ｐ１、Ｐ２ならびに制御点ＣおよびＦ１および／またはＦ２を別個に操作することが、ワークステーション１０のＧＵＩ１６に接続されたマウス２０を用いて点を選択およびドラッグすることによって可能である。
【００１３】
図３Ａ〜Ｂの実施形態においては、パラメータにおいて用いられる特定された制御点に基づいて焦点Ｆ１またはＦ２の少なくとも１つを用いて、楕円弧１２０を描画するＳＶＧをサポートしており、または楕円弧を規定するための他の標準を決定することができる。特定の実施形態においては、ＳＶＧに対する標準化されたパラメータが、端点パラメータ化コンポーネント１０４（図２に見られる）によって与えられ、中心パラメータ化コンポーネント１０６と焦点パラメータ化コンポーネント１０８とを用いて制御点に基づいて決定される。
【００１４】
図４に、端点パラメータ化コンポーネント１０４によって特定される例示的な楕円１２２および楕円弧１２１を例示する。たとえば、端点パラメータ化を用いた場合、パラメータＰ１およびＰ２は円弧１２１の出発点および終点を表わす。パラメータＲｘおよびＲｙは、ｘ方向およびｙ方向の楕円１２２の半径をそれぞれ表わす。パラメータφは、座標系のｘ軸から楕円１２２のｘ軸までの角度を表わす（たとえば回転）。パラメータｆＡは、楕円１２２の大きい方の円弧を用いるか小さい方の円弧を用いるかを特定する（たとえば大円弧フラグ）。パラメータｆＳは、円弧１２１を時計方向に描くのかまたは反時計方向に描くのかを特定する（たとえば掃引フラグ）。前述したように、端点Ｐ１およびＰ２はユーザによって入力され、表示すべき円弧の残りのパラメータは、中心および焦点パラメータ化コンポーネント１０６および１０８によって、制御点から間接的に決定される。
【００１５】
図５に、中心パラメータ化コンポーネント１０６によって特定される楕円弧１２１を例示する。たとえば、中心パラメータ化を用いた場合、パラメータＣは円弧１２１の中心点を表わす。パラメータφ、Ｒｘ、およびＲｙは前述した通りである。パラメータθは、円弧１２１の出発角度（座標系のｘ軸から）を表わす。パラメータΔθは、円弧１２１の掃引角度（たとえば時計方向の円弧に対して負）を表わす。
【００１６】
図６に、焦点パラメータ化コンポーネント１０８によって特定される楕円１２２を例示する。たとえば、焦点パラメータ化を用いた場合、パラメータＦ１は楕円１２２の第１焦点を表わし、パラメータＦ２は楕円１２２の第２焦点を表わす。パラメータＦＲは、当該楕円の焦点半径（各焦点から楕円上の任意の点までの距離の合計）を表わす。
【００１７】
動作の一態様においては、楕円弧制御システム１０２によって、ユーザは、図３に示す端点および制御点（たとえばＣ、Ｐ１、Ｐ２、Ｆ１、またはＦ２）の１つまたは複数を、対話型の直感的な方法で移動させることができる。またこれらの点に基づいて、楕円弧制御システム１０２は、図４、５、および６に示す残りの端点、中心および焦点パラメータのすべてを、当該楕円パラメータ間に存在する数学的な関係に基づいて特定する。制御点の変更は、ユーザがこれらの点をモニタ１２上で直接（たとえばＧＵＩ１６を介して）、「ドラッギング」することによって（たとえばカーソルをマウス２０で制御することで）、行なうことができる。
【００１８】
たとえば図３を参照して、焦点Ｆ１およびＦ２は、楕円弧１２０の半長軸上にある。したがって回転角φ（図４および５）を、焦点Ｆ１およびＦ２から計算することができる。またｘ方向の楕円の半径（半長軸）Ｒｘ（図４および５）を、関係Ｒｘ＝ＦＲ／２（ここで図６のＦＲは、当該楕円１２２の焦点半径）によって決定することもできる。パラメータＦｃが、何れかの焦点Ｆ１またはＦ２から当該楕円１２２の中心までの距離を表わすとした場合（図６）、ｙ方向の楕円の半径（半短軸）の２乗Ｒｙ２は、ｘ方向の楕円の半径（半長軸）の２乗Ｒｘ２からパラメータＦｃの２乗を引いたものに等しい（たとえばＲｙ２＝Ｒｘ２−Ｆｃ２）。中心点Ｃ（図３）は、考えられる２つの楕円のどちらを使用できるのかを決定することができ、また掃引フラグＦＳと大円弧フラグＦＡとの間の関係を確立することもできる（たとえばＦＡ＝ＦＳまたはＦＡ≠ＦＳの何れか）。また焦点Ｆ１およびＦ２（図３）は、交換可能である（すなわちＦ１およびＦ２の値を交換しても同じ楕円となることができる）。その結果、焦点Ｆ１およびＦ２の相対位置を用いて、一般性を犠牲にすることなく掃引フラグＦＳの値を決定することができる。したがって楕円を１８０度回転させることによって、掃引フラグＦＳの値を反転させることができる（真から偽へまたはその逆）。
【００１９】
図７に、本開示により円弧を描くために使用できる一例の方法２００を例示する。このように、前述の幾何学的関係を用いて、楕円弧に対するすべての端点パラメータを決定することが、たとえばＧＵＩ１６および楕円弧制御１０２（図２）を用いて３つの制御点Ｃ、Ｆ１、またはＦ２のうちの１つまたは複数（たとえば図３に示すように）をユーザが操作することによって、可能である。ステップ２０２において、ユーザが中心制御点Ｃを移動させた場合には、ステップ２０３において、焦点制御点Ｆ１およびＦ２に対する新しい値を、何れかの焦点制御点から楕円の中心までの距離ＦＣの値を固定したままで計算することができる。ステップ２０４において、焦点半径ＦＲの値を、点Ｐ１およびＰ２に基づいて２回計算することができる。ステップ２０５において、Ｐ１またはＰ２に基づくＦＲの小さい方の値を用いて、ｘ方向の楕円の半径（半長軸）Ｒｘを再計算することができる。ステップ２０６において、ｙ方向の楕円の半径（半短軸）の値Ｒｙを、Ｒｙ／Ｒｘの比から計算することができる。ステップ２０８において、端点Ｐ１およびＰ２を結ぶ直線を越えて中心制御点Ｃを移動させた場合には、ステップ２０９において、ＦＳの値を交換することができる（たとえばＦＡの値は維持されるが、ＦＡとＦＳとの間の関係が変わっている）。そうでない場合には、ステップ２１０において、中心および焦点制御パラメータＣ、Ｆ１、およびＦ２を、新しい端点パラメータに基づいて再計算することができ、結果として得られる曲線および制御点を再び描くことができる。
【００２０】
ステップ２１２において、ユーザが楕円の第１の焦点Ｆ１を移動させるかまたは「ドラッグ」した場合には、ステップ２１３において、新しいＦＣ（何れかの焦点から楕円の中心までの距離）と楕円の第２の焦点Ｆ２とを、Ｃと焦点半径ＦＲとを固定したままで計算することができる。ステップ２１４において、回転角φを、焦点制御点Ｆ１およびＦ２の新しい値に基づいて再計算することができる。ステップ２１５において、新しいＦＣを用いて、ｘ方向の楕円の半径Ｒｘとｙ方向の楕円の半径Ｒｙとを、再計算することができる。ステップ２１６において、ユーザが第１の焦点制御点Ｆ１をｘ軸を越えて移動させた場合には、ステップ２１７において、掃引フラグｆＳおよび大円弧フラグｆＡのそれぞれの値を交換することができる。そうでない場合には、ステップ２１８において、中心および焦点制御パラメータＣ、Ｆ１、およびＦ２を、新しい端点パラメータに基づいて再計算することができ、結果として得られる曲線および制御点を再び描くことができる。楕円の第２の焦点Ｆ２は、第１の焦点Ｆ１に対して行なったのと同じステップ２１２〜２１８を行なうことによって、操作しても良い。実際には、楕円パラメータを対話形式で特定する前述の機能は、示した制御点のうちの２つのみ（たとえば中心制御点と焦点制御点の一方と）を用いて、得ることができる。しかし対称的でより直感的なインターフェースを用いるために、第２の焦点制御点（たとえばＦ１またはＦ２）を含めることができる。
【００２１】
中心および焦点制御点Ｃ、Ｆ１、およびＦ２の移動に対する端点パラメータのマッピングを、他の多くの方法で行なうことができる。たとえば、ユーザが中心制御点Ｃを移動させる場合には、Ｒｙ／Ｒｘの比を一定に保つようにｙ方向の楕円の半径Ｒｙを計算する代わりに、Ｆｃを一定に保つようにＲｙの値を計算することができる。またユーザが焦点制御点（たとえばＦ１）を移動させる場合には、中心制御点Ｃの位置を一定に保つ代わりに、残りの焦点制御点（たとえばＦ２）を一定に保つことができ、逆もまた同様である。
【００２２】
本開示の方法および装置の好ましい実施形態を、添付の図面において例示し、前述の詳細な説明の中で説明してきたが、開示内容は開示した実施形態に限定されないこと、しかし添付の特許請求の範囲によって記載および規定される開示の趣旨から逸脱することなく多くの再配置、変更、および置換が可能であることが理解される。
【図面の簡単な説明】
【００２３】
【図１】本開示の１つまたは複数の実施形態を実施するために使用できる一例のワークステーションを例示する例示的な図である。
【図２】本開示による楕円弧制御システムの製図ツールを示す例示的なブロック・ダイアグラムである。
【図３Ａ】図示した制御点の１つまたは複数を対話形式で操作することによってユーザが特定することができる楕円弧の例示的な表示を示す図である。
【図３Ｂ】図示した制御点の１つまたは複数を対話形式で操作することによってユーザが特定することができる楕円弧の例示的な表示を示す図である。
【図４】ＳＶＧシステムにおいて端点のパラメータ化を行なうために使用される楕円弧パラメータを例示する図である。
【図５】中心点のパラメータ化を行なうために使用される楕円弧パラメータを例示する図である。
【図６】焦点のパラメータ化を行なうために使用される楕円弧パラメータを例示する図である。
【図７】本開示の一実施形態を実施するための例示的なフロー・ダイアグラムである。
【図１】
2005526310.tif 000003
【図３Ａ】
2005526310.tif 000004
【図３Ｂ】
2005526310.tif 000005
【図５】
2005526310.tif 000006
【図６】
2005526310.tif 000007
【図２】
2005526310.tif 000008
【図４】
2005526310.tif 000009
【図７】
2005526310.tif 000010
【手続補正書】
【提出日】平成17年4月18日(2005.4.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザ入力に応答して楕円弧を描画する方法であって、
グラフィカル・ユーザ・インターフェース（ＧＵＩ）のポインティング・デバイスを介して、楕円弧に対する第１の端点と第２の端点とを受け取るステップと、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する中心点を受け取るステップと、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する焦点を受け取るステップと、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画するステップと、を含む方法。
【請求項２】
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する第２の焦点を受け取るステップと、
中心点と第２の焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画するステップと、をさらに含む請求項１に記載の方法。
【請求項３】
半長軸に沿っての楕円の半径と、半短軸に沿っての楕円の半径とを、受け取ったユーザ入力に基づいて決定するステップをさらに含む請求項１に記載の方法。
【請求項４】
ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度を、受け取ったユーザ入力に基づいて決定するステップをさらに含む請求項１に記載の方法。
【請求項５】
楕円の円弧と円弧の方向とを、受け取ったユーザ入力に基づいてさらに含む請求項１に記載の方法。
【請求項６】
ユーザ入力に応答して楕円弧を生成するための方法であって、
楕円弧に付随する中心制御点、第１の焦点制御点、および第２の焦点制御点の少なくとも１つの移動を受け取るステップと、
少なくとも１つの中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定するステップと、
焦点制御点の少なくとも一方に対する値に基づいて、楕円弧に付随する焦点半径に対する値を決定するステップと、
焦点半径に対する値に基づいて、楕円弧の第１の半径に対する値を決定するステップであって、第１の半径は、楕円弧に付随する第１の幾何学的軸に対して規定されるステップと、
楕円弧の第２の半径に対する値を決定するステップであって、第２の半径は、楕円弧に付随する第２の幾何学的軸に対して規定されるステップと、
第１の半径および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定するステップと、
少なくとも１つの中心制御点と第１の焦点制御点及び第２の焦点制御点の少なくとも一方とに対する新しい値に基づいて楕円弧を生成するステップと、を含む方法。
【請求項７】
第１の焦点制御点または第２の焦点制御点が移動したときに、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定するステップと、
少なくとも１つの焦点制御点に基づいて、楕円弧に付随する回転角に対する値を決定するステップと、
楕円弧の第１の半径に対する値を決定するステップと、
楕円弧の第２の半径に対する値を決定するステップと、
回転角、第１の半径、および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定するステップと、をさらに含む請求項６に記載の方法。
【請求項８】
中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定するステップが、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を固定するステップをさらに含む請求項７に記載の方法。
【請求項９】
楕円弧に付随する焦点半径に対する値を決定するステップを、楕円弧の第１の端点および楕円弧の第２の端点に対して行ない、
楕円弧の第１の半径に対する値を決定するステップが、焦点半径に対して計算される２つの値の小さい方に基づく請求項７に記載の方法。
【請求項１０】
第１の幾何学的軸がｘ軸を含み、第２の幾何学的軸がｙ軸を含む請求項６に記載の方法。
【請求項１１】
中心制御点が、楕円弧の第１の端点と楕円弧の第２の端点とを結ぶ線を越えて移動したときに、楕円弧に付随する掃引フラグに対する値を交換するステップをさらに含む請求項６に記載の方法。
【請求項１２】
楕円弧の第２の半径に対する値を決定するステップが、楕円弧の第１の半径に対する値と楕円弧の第２の半径に対する値との間の比を維持するステップを含む請求項７に記載の方法。
【請求項１３】
第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定するステップが、楕円弧に付随する中心制御点と焦点半径とに対する値を維持するステップをさらに含む請求項７に記載の方法。
【請求項１４】
楕円弧に付随する回転角に対する値を決定するステップが、第１の焦点制御点または第２の制御点の値に基づいて回転角に対する値を決定するステップをさらに含む請求項７に記載の方法。
【請求項１５】
焦点制御点が、第１の幾何学的軸を表わす線を越えて移動したときに、楕円弧に付随する掃引フラグに対する値と、楕円弧に付随する大円弧フラグに対する値とを交換する請求項６に記載の方法。
【請求項１６】
ユーザ入力に応答して楕円弧を描画するためのシステムであって、
グラフィカル・ユーザ・インターフェースと、
グラフィカル・ユーザ・インターフェースに結合されたポインティング・デバイスと、を備え、
グラフィカル・ユーザ・インターフェースは、
ポインティング・デバイスを介して、楕円弧に対する第１の端点および第２の端点を受け取り、
ポインティング・デバイスを介して、楕円弧に対する中心点を受け取り、
ポインティング・デバイスを介して、楕円弧に対する焦点を受け取り、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画する、システム。
【請求項１７】
グラフィック・ユーザ・インターフェースがさらに、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する第２の焦点を受け取り、
中心点と第２の焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画する、請求項１６に記載のシステム。
【請求項１８】
グラフィック・ユーザ・インターフェースがさらに、半長軸に沿っての楕円の半径と半短軸に沿っての楕円の半径とを、受け取ったユーザ入力に基づいて決定することが実行可能である請求項１６に記載のシステム。
【請求項１９】
グラフィック・ユーザ・インターフェースがさらに、ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度を、受け取ったユーザ入力に基づいて決定することが実行可能である請求項１６に記載のシステム。
【請求項２０】
グラフィック・ユーザ・インターフェースがさらに、楕円の円弧と円弧の方向とを、受け取ったユーザ入力に基づいて決定することが実行可能である請求項１６に記載のシステム。
【請求項２１】
楕円弧を生成するためのシステムであって、
プロセッサ装置と、
プロセッサ装置に結合されたディスプレイ装置と、
プロセッサ装置に結合された入力装置と、を備え、
プロセッサ装置は、入力装置に応答して、
楕円弧に付随する中心制御点、第１の焦点制御点、および第２の焦点制御点の少なくとも１つをディスプレイ上で移動させることと、
少なくとも１つの中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定することと、
焦点制御点の少なくとも一方に対する値に基づいて、楕円弧に付随する焦点半径に対する値を決定することと、
焦点半径に対する値に基づいて、楕円弧の第１の半径に対する値を決定することであって、第１の半径は、楕円弧に付随する第１の幾何学的軸に対して規定される、決定することと、
楕円弧の第２の半径に対する値の決定であって、該第２の半径が楕円弧に付随する第２の幾何学的軸に対して規定される決定をすることと、
第１の半径および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定することと、
少なくとも１つの中心制御点と第１の焦点制御点及び第２の焦点制御点の少なくとも一方とに対する新しい値に基づいて楕円弧を生成することと、が実行可能であるシステム。
【請求項２２】
プロセッサ装置がさらに、
第１の焦点制御点または第２の焦点制御点が移動したときに、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定することと、
少なくとも１つの焦点制御点に基づいて、楕円弧に付随する回転角に対する値を決定することと、
楕円弧の第１の半径に対する値を決定することと、
楕円弧の第２の半径に対する値を決定することと、
回転角、第１の半径、および第２の半径に対する値に基づいて、楕円弧に付随する少なくとも１つの中心制御点と第１の焦点制御点および第２の焦点制御点の少なくとも一方とに対する新しい値を決定することと、が実行可能である請求項２１に記載のシステム。
【請求項２３】
プロセッサ装置が、中心制御点が移動したときに、楕円弧に付随する第１の焦点制御点および第２の焦点制御点の少なくとも一方に対する値を決定することが実行可能であり、さらに、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を固定することが実行可能である請求項２１に記載のシステム。
【請求項２４】
プロセッサ装置が、楕円弧に付随する焦点半径に対する値の決定を、楕円弧の第１の端点および楕円弧の第２の端点に対して実行することによって行なうことと、楕円弧の第１の半径に対する値の計算を、焦点半径に対して計算される２つの値の小さい方に基づいて行なうことと、が実行可能である請求項２２に記載のシステム。
【請求項２５】
第１の幾何学的軸がｘ軸を含み、第２の幾何学的軸がｙ軸を含む請求項２１に記載のシステム。
【請求項２６】
プロセッサ装置がさらに、中心制御点が、楕円弧の第１の端点と楕円弧の第２の端点とを結ぶ線を越えて移動したときに、楕円弧に付随する掃引フラグに対する値を交換することが実行可能である請求項２１に記載のシステム。
【請求項２７】
プロセッサ装置が、楕円弧の第２の半径に対する値を決定することが実行可能であり、さらに、楕円弧の第１の半径に対する値と楕円弧の第２の半径に対する値との間の比を維持することが実行可能である請求項２２に記載のシステム。
【請求項２８】
プロセッサ装置が、第１の焦点制御点または第２の焦点制御点の少なくとも一方から楕円弧の中心までの距離に対する値を決定することが実行可能であり、さらに、楕円弧に付随する中心制御点と焦点半径とに対する値を維持することが実行可能である請求項２１に記載のシステム。
【請求項２９】
プロセッサ装置が、楕円弧に付随する回転角に対する値を決定することが実行可能であり、さらに、第１の焦点制御点または第２の制御点の値に基づいて回転角に対する値を決定することが実行可能である請求項２２に記載のシステム。
【請求項３０】
焦点制御点が、第１の幾何学的軸を表わす線を越えて移動したときに、プロセッサ装置がさらに、楕円弧に付随する掃引フラグに対する値と、楕円弧に付随する大円弧フラグに対する値とを交換することが実行可能である請求項２１に記載のシステム。
【請求項３１】
ユーザ入力に応答して楕円弧を描画するための、媒体中にエンコーディングされるロジックにおいて具現化されるソフトウェアであって、コンピュータシステムによって実行されたときに、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する第１の端点および第２の端点を受け取る手段と、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する中心点を受け取る手段と、
ＧＵＩのポインティング・デバイスを介して、楕円弧に対する焦点を受け取る手段と、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画する手段と、
半長軸に沿っての楕円の半径と、半短軸に沿っての楕円の半径と、ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度とを、受け取ったユーザ入力に基づいて決定する手段と、を構成するソフトウェア。
【請求項３２】
ユーザ入力に応答して楕円弧を描画するためのシステムであって、
ユーザから、楕円弧に対する第１の端点および第２の端点を受け取るための手段と、
ユーザから、楕円弧に対する中心点を受け取るための手段と、
楕円弧に対する焦点を受け取るための手段と、
第１および第２の端点を通る楕円弧であって、中心点に中心を有し、中心点と焦点とを結ぶ線に沿って半長軸を有する楕円弧を描画するための手段と、
半長軸に沿っての楕円の半径と、半短軸に沿っての楕円の半径と、ＧＵＩの座標系のｘ軸から楕円のｘ軸までの角度とを、受け取ったユーザ入力に基づいて決定するための手段と、を備えるシステム。
【請求項３３】
ユーザ入力操作に応じて楕円弧を生成するコンピュータシステムを、
楕円弧に関する中心制御点、第１の焦点制御点及び第２の焦点制御点のうち少なくともいずれか１つの動きを受け取る手段、
少なくとも１つの中心制御点が動かされるとき、楕円弧に関する第１の焦点制御点及び第２の焦点制御点のうちの少なくとも１つの値を決定する手段、
焦点制御点のうちの少なくともいずれかの１つの値に基づく楕円弧に関する焦点半径を決定する手段、
焦点半径の値に基づく楕円弧の第１の半径の値を決定する手段であって、該第１の半径が楕円弧に関する第１の幾何学的な軸に対して規定されるものをする手段、
楕円弧の第２の半径の値を決定する手段であって、該第２の半径が楕円弧に関する第２の幾何学的軸に対して規定されるものをする手段、
第１の半径及び第２の半径の値に基づいて、少なくとも１つの中心制御点と楕円弧に関する第１の焦点制御点及び第２の焦点制御点のうち少なくともいずれかとについて新しい値を決定する手段、
少なくとも１つの中心制御点と第１の焦点制御点及び第２の焦点制御点の少なくとも一方とに対する新しい値に基づいて楕円弧を生成する手段、として機能させるソフトウェア。
【国際調査報告】
2005526310.tif 000011
2005526310.tif 000012
2005526310.tif 000013
2005526310.tif 000014
2005526310.tif 000015
2005526310.tif 000016