JPH10293859A - コンピュータディスプレイ上での曲線の形成及び修正 - Google Patents

コンピュータディスプレイ上での曲線の形成及び修正

Info

Publication number
JPH10293859A
JPH10293859A JP9335379A JP33537997A JPH10293859A JP H10293859 A JPH10293859 A JP H10293859A JP 9335379 A JP9335379 A JP 9335379A JP 33537997 A JP33537997 A JP 33537997A JP H10293859 A JPH10293859 A JP H10293859A
Authority
JP
Japan
Prior art keywords
point
curve
segment
points
displacement
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.)
Granted
Application number
JP9335379A
Other languages
English (en)
Other versions
JP4153065B2 (ja
Inventor
Martin E Newell
イー. ニューウエル マーチン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of JPH10293859A publication Critical patent/JPH10293859A/ja
Application granted granted Critical
Publication of JP4153065B2 publication Critical patent/JP4153065B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Numerical Control (AREA)

Abstract

(57)【要約】 【課題】 コンピュータディスプレイ上で曲線を形成し
且つ修正する技術を提供する。 【解決手段】 本発明によれば、コンピュータシステム
におけるグラフィカルユーザインターフェースを介して
ユーザの行為に応答して制御点によって画定される曲線
を修正することが可能である。各制御点はユーザの入力
に応答して固定制御点、選択制御点、又は自由制御点と
して識別される。選択された点の変位が受取られ、且つ
該曲線の自由勾配制御点をラインt上の点Tpに対して
マッピングさせる。補間曲線IC(t)をラインt上に
画定し、且つ点Tpをt=Tpにおいて補間曲線IC
(t)の値に対して投影しスケールファクタを見付け出
す。このスケールファクタを選択された点の変位と乗算
させて自由制御点の変位を決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータディ
スプレイ上に曲線を形成し且つ修正する技術に関するも
のである。
【0002】
【従来の技術】例えばカリフォルニア州サンノゼにある
アドビシステムズインコーポレイテッドから市販されて
いるイラストレーター(Illustrator)プロ
グラムのようなグラフィックスプログラムにおける曲線
は、ユーザがマウスのフリーハンド運動を使用すること
によってコンピュータディスプレイ上に形成させること
が可能である。一般的に、このような曲線はコントロー
ルポイント(control point)即ち制御点
の構造物として表現される。例えば、三次ベジェ曲線セ
グメント(図12に示してあるようなもの)の場合に
は、4つの制御点を使用し、そのうちの、2つの制御点
P0及びP3はセグメント端点(それを介して曲線セグ
メントが通過する)であり、且つ他の2つの制御点P1
及びP2は、セグメント端点P0及びP3における曲線
セグメントの勾配を画定するスロープポイント(slo
pe point)即ち勾配点である。
【0003】複合曲線は、複数個のベジェ曲線セグメン
トを連結させることによって形成することが可能であ
る。例えばアドビイラストレーターシステムにおけるよ
うな幾つかの従来のシステムにおいては、ユーザは制御
点を選択し且つドラッグすることによって複合曲線を修
正することが可能である。次いで、捕まえた点はカーソ
ルによって特定された距離だけ移動する。例えば米国特
許第5,412,770号に記載されているようなその
他のシステムにおいては、曲線上の点は固定させること
が可能であり且つ該曲線の1つのセグメントをコンピュ
ータディスプレイ上のカーソルを移動させることによっ
て作り直すことが可能である。別の従来のシステムにお
いては、固定した点(即ち、固定点)を複合曲線上にお
いて特定した後に、制御点をドラッグすることによって
複合曲線を修正することが可能である。
【0004】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、コンピュータディスプレイ
上で曲線を形成したり修正したりする改良した技術を提
供することを目的とする。
【0005】
【課題を解決するための手段】一般的に、1側面におい
ては、本発明は、コンピュータシステムにおけるグラフ
ィカルユーザインターフェース(GUI)を介してユー
ザのアクション即ち行為に応答して曲線を修正するコン
ピュータによって実行される方法を提供している。該曲
線は、複数個の制御点によって画定されている。制御点
の各々は、ユーザの入力に応答して、固定されている制
御点(即ち、固定制御点)、選択された制御点(即ち、
選択制御点)、又は自由制御点として識別される。複数
個の選択された点のディスプレイスメント(displ
acement)即ち変位が受取られる。該曲線の自由
制御点をラインt上のポイント即ち点Tpに対してマッ
ピングさせる。補間曲線IC(t)をラインt上に画定
する。点Tpをt=Tpにおいて補間曲線IC(t)の
値に対して投影させて、スケールファクタ(scale
factor)即ち拡縮率を見つけ出す。該拡縮率を
該選択点の変位と乗算させて、自由制御点の変位を決定
する。
【0006】一般的に、別の側面においては、本発明
は、コンピュータシステムにおけるグラフィカルユーザ
インターフェースを介して、ユーザの行為に応答して、
各々が複数個の制御点によって画定されている複数個の
曲線を修正するコンピュータによって実行される方法を
提供している。該制御点の各々は、ユーザの入力に応答
して、固定制御点、選択制御点、又は自由制御点として
識別される。各曲線の選択した点の変位を受取る。各曲
線の自由制御点を複数個のラインのうちの対応する1つ
の1つの点に対してマッピングさせる。各ライン上にお
いて補間曲線を画定する。各ライン上の該点を、対応す
る補間曲線に対して投影させて各自由制御点に対するス
ケールファクタ即ち拡縮率を見つけ出す。該拡縮率を選
択制御点の変位と乗算させて自由制御点の変位を決定す
る。
【0007】一般的に、別の側面においては、本発明
は、コンピュータシステムにおいてディスプレイ上にベ
ジェ曲線セグメントを形成するコンピュータによって実
行されるグラフィカルユーザインターフェース方法を提
供している。第一セグメント端点の選択がコンピュータ
システムにおけるグラフィカルユーザインターフェース
を介して受取られる。コンピュータディスプレイ上のカ
ーソルの位置が第二セグメント端点として受取られる。
第一及び第二セグメント端点及び第一及び第二勾配点に
よって画定されるベジェ曲線が円弧を近似するように第
一及び第二勾配点を演算する。演算されたベジェ曲線セ
グメントをコンピュータディスプレイ上に表示する。
【0008】一般的に、別の側面においては、本発明
は、コンピュータシステムにおけるグラフィカルユーザ
インターフェースを介してユーザの行為に応答して曲線
を修正するコンピュータによって読取可能な媒体上に存
在しているコンピュータプログラムを提供している。該
曲線は複数個の制御点によって画定される。該コンピュ
ータプログラムは、コンピュータシステムをして、ユー
ザの入力に応答して、制御点の各々を固定制御点、選択
制御点、又は自由制御点として識別させる命令を包含し
ている。該命令は、更に、コンピュータシステムをし
て、複数個の選択した点の変位を受取らせ、該曲線の自
由制御点をラインt上の点Tpに対してマッピングさ
せ、且つラインt上に補間曲線IC(t)を画定させ
る。該命令は、更に、コンピュータシステムをして、点
Tpをt=Tpにおいて補間曲線IC(t)の値に対し
て投影させて拡縮率を見つけ出し、且つ該拡縮率を選択
した点の変位と乗算させて自由制御点の変位を決定させ
る。
【0009】一般的に、別の側面においては、本発明
は、コンピュータシステムにおけるグラフィカルユーザ
インターフェースを介してユーザの行為に応答して複数
個の曲線を修正するためのコンピュータによって読取可
能な媒体上に存在するコンピュータプログラムを提供し
ている。各曲線は複数個の制御点によって画定される。
該コンピュータシステムは、コンピュータシステムをし
て、ユーザの入力に応答して、前記制御点の各々を、固
定制御点、選択制御点、又は自由制御点として識別させ
る命令を包含している。該命令は、更に、コンピュータ
システムをして、各曲線の選択した点の変位を受取ら
せ、各曲線の自由制御点を複数個のラインのうちの対応
する1つの1つの点に対してマッピングさせ、且つ各ラ
イン上に補間曲線を画定させる。該命令は、更に、コン
ピュータシステムをして、各ライン上の該点を対応する
補間曲線に対して投影させて各自由制御点に対する拡縮
率を見つけ出し、且つ該拡縮率を選択制御点の変位と乗
算させて自由制御点の変位を決定させる。
【0010】一般的に、別の側面においては、本発明
は、ベジェ曲線セグメントを形成するためのコンピュー
タによって読取可能な媒体上に存在するコンピュータプ
ログラムを提供している。該コンピュータプログラム
は、コンピュータシステムをして、コンピュータシステ
ムにおけるグラフィカルユーザインターフェースを介し
て第一セグメント点の選択を受取らせ、且つ第二セグメ
ント端点としてコンピュータディスプレイ上のカーソル
の位置を受取らせる。該命令は、更に、コンピュータシ
ステムをして、第一及び第二端点及び第一及び第二勾配
点によって画定されるベジェセグメントが円弧を近似す
るように第一及び第二勾配点を演算させ、且つ演算され
たベジェ曲線セグメントをコンピュータディスプレイ上
に表示させる。
【0011】一般的に、別の側面においては、本発明
は、コンピュータシステムにおけるグラフィカルユーザ
インターフェースを介して、ユーザの行為に応答して、
複数個の制御点によって画定されており且つ2つの曲線
端点を有している曲線を修正するコンピュータによって
実行される方法を提供している。勾配調節点を画定し、
且つ勾配調節点のグラフィカルユーザインターフェース
を介して変位が受取られる。該曲線の制御点をラインt
上の点Tpに対してマッピングさせ、補間曲線IC
(t)をラインt上に画定させる。点Tpをt=Tpに
おいて補間曲線IC(t)の値に対して投影させてスケ
ールファクタ即ち拡縮率を見い出し、且つ該拡縮率を選
択した点の変位と乗算させて、自由制御点の変位を決定
する。
【0012】一般的に、別の側面においては、本発明
は、コンピュータシステムにおけるグラフィカルユーザ
インターフェースを介してユーザの行為に応答して複数
個の制御点によって画定されている曲線を修正するため
のコンピュータによって読取可能な媒体上に存在するコ
ンピュータプログラムを提供している。該コンピュータ
プログラムは、コンピュータシステムをして、勾配調節
点を画定させ且つ勾配調節点のグラフィカルユーザイン
ターフェースを介して変位を受取らさせる命令を包含し
ている。該命令は、更に、コンピュータシステムをし
て、該曲線の制御点をラインt上の点Tpに対してマッ
ピングさせ、ラインt上に補間曲線IC(t)を画定さ
せ、点Tpをt=Tpにおいて補間曲線IC(t)の値
に対して投影させて拡縮率を見つけ出し、且つ該拡縮率
を選択した点の変位と乗算させて自由制御点の変位を決
定させる。
【0013】本発明の利点としては以下に示すような1
つ又はそれ以上のものがある。複数個の固定した点を特
定することが可能であり且つ複数個の選択した点を1つ
のグループとして選択し且つ硬直的に移動させることが
可能である。複数個の曲線上の点を選択し且つ移動させ
ることが可能である。曲線上の点は元の曲線の一般的な
形状及び詳細を維持し且つ曲線のセグメント間の遷移の
滑らかさを維持するように移動される。ユーザは曲線の
任意の部分を修正するために選択することが可能であり
且つその曲線の残部の滑らかさが維持される。端点にお
ける複合曲線の勾配を調節することが可能である。
【0014】
【発明の実施の形態】本発明を実施したグラフィックス
プログラムにおいては、複合曲線の一部がユーザによっ
て特定された態様で修正又は変形されるべき場合には、
該曲線のその他の部分は、該曲線の一般的な形状及び詳
細を維持し且つ曲線全体のセグメント間の滑らかな遷移
を維持すべく修正される。例えば、複合曲線が該曲線内
に多数の詳細部を画定する何百もの曲線セグメントを包
含している場合には、該プログラムは修正操作の後に元
の複合曲線の該詳細を維持する。このプログラムの場合
には、ユーザは曲線の詳細及び滑らかさを維持するため
に複合曲線のセグメントを手作業によって調節すること
は必要ではない。
【0015】更に、本プログラムは、更に、ユーザが複
合曲線の勾配をその曲線端点において調節することを可
能としている。勾配調整点が設けられており、それは勾
配を任意の所望の量だけ修正するためにユーザによって
選択することが可能である。図1を参照すると、複合曲
線は端部同志が接続された多数のセグメントから構成さ
れている。曲線の部分を同定即ち識別する場合に使用さ
れる用語を説明するために、複合ベジェ曲線30は3つ
のベジェセグメント22,23,24を有している。セ
グメントの端点は文字Eとそれに続く数字によって識別
され、この例においては、セグメント端点はE1乃至E
4である。曲線端点はE1及びE4である。曲線端点で
はないセグメント端点は2つのセグメントによって共用
されており、この例においては、これらはE2及びE3
である。端点に加えて、ベジェセグメントは別の種類の
制御点である勾配点を有している。1つのセグメントに
おける各端点は1つの勾配点と関連している。図12に
示したベジェセグメントにおいては、端点P0及びP3
は、夫々、勾配点P1及びP2と関連している。図1の
曲線30において、端点Enと関連する勾配点はEn+
及びEn−として識別される。例えば、E2と関連する
セグメント22の勾配点はE2−であり、一方E2と関
連するセグメント23の勾配点はE2+である。1つの
曲線又は1つの曲線の一部が移動されると、制御点が移
動される。それらの新たな移動後の位置における制御点
はダッシュによって識別される。2つの移動が示される
場合には、2番目の位置は2つのダッシュで識別され、
以下同様である。図1においては、新たな制御点E
3′,E3+′,E4′が示されている。セグメント端
点は、又、一般的にPとして識別することが可能であ
り、それと関連する勾配制御点はP+及びP−として識
別することが可能である。更に、その曲線端点において
の複合曲線の勾配も、図2D,2E,8に関連して以下
に説明する「擬似」勾配点と呼ばれるものを選択するこ
とによってユーザによって調節することが可能である。
【0016】ユーザが曲線を移動させる場合には、ユー
ザは各制御点を、3つのタイプ、即ち選択、自由及び固
定のうちの1つのものとしてマーク付けを行なう。通
常、全ての制御点はデフォルトでは自由であり、且つユ
ーザの行為が特定の制御点を選択又は固定として明示的
にマーク付けを行なう(プログラムのグラフィカルユー
ザインターフェースを介して)。曲線セグメントの勾配
点はプログラムのグラフィカルユーザインターフェース
上ではユーザにとって見ることができないものであり、
従って選択又は固定としてマーク付けを行なうことは不
可能である。一方、セグメント端点は固定点としてデフ
ォルト設定することが可能であり(一方、勾配点は自由
点へデフォルト設定される)、ユーザはどのセグメント
端点が自由であるか又は選択であるかのマーク付けを行
なわねばならない。
【0017】選択点はユーザによって特定されたディス
プレイスメント(displacement)即ち変位
だけ硬直的なグループとして移動する点である。固定点
は、移動しない点である。自由点は以下に説明するよう
に変位が計算即ち演算されるその他の全ての点である。
然しながら、固定点によってのみ取囲まれる自由点(勾
配点E1+及びE2−を含む)はその場所に留まる。更
に、選択点によってのみ取囲まれる自由点は、通常、曲
線の修正の性質に依存して、選択点と共に移動する。自
由セグメント端点は、曲線の一般的な形状を維持するよ
うに移動される。自由勾配点は、曲線セグメント間の滑
らかな遷移を維持するように移動される。
【0018】図2A−2Cを参照すると、プログラムが
2ステップマッピング機能(関数)を実行するアルゴリ
ズムを使用して関連する勾配点P−及びP+に沿っての
各自由端点Pの変位を決定する。図2Bを参照すると、
該プログラムは、ステップ400において、選択した端
点又は複合曲線上の選択した端点の変位Vを受取る。次
いで、該プログラムは、ステップ401において、2つ
又はそれ以上のディスジョイント(disjoint)
即ち解体したグループの点が存在するか否かを決定す
る。移動されるべき複数個のディスジョイント(解体)
グループの点が関与する移動操作においては、複数個の
別個のマッピングが実行される。2つのグループの選択
点は、それらが固定点によって分離されている場合に
は、ディスジョイント即ち解体状態にあると考えられ
る。更に、複数個の複合曲線が同時に移動される場合に
は、ディスジョイントグループの制御点が発生する場合
もある。複数個の曲線の場合には、各複合曲線は、少な
くとも1つのディスジョイントグループの制御点を有し
ているものと考えられる。
【0019】複数個のディスジョイントグループの制御
点が存在しない場合には、複合曲線上の制御点は、ステ
ップ402において、図2Aに示したように、距離マッ
ピング方法(図2C)又は投影マッピング方法(図3A
及び3B)のいずれかを使用して、1つの単位ラインセ
グメントt[0,1]上の点に対してマッピングされ
る。該複合曲線上の各セグメント端点Ep(又は、単に
P)をt上のTpと呼ばれる点に対してマッピングさ
せ、各勾配点Ep+又はEp−(又は、単に、P+又は
P−)をパラメータTp+又はTp−に対してマッピン
グさせる。
【0020】次いで、ステップ403において、t上に
1つの補間曲線ICを画定する。点Tpを、ステップ4
04において、tから補間曲線IC上に垂直方向に投影
させてパラメータCpの値を得る。各値Cpは、t=T
pにおいて評価した補間曲線ICの縦座標である。
【0021】勾配点P−及びP+と関連する点Tp−及
びTp+(制御点に対するプレフィックスEは簡単化の
ために省略してある)を、ステップ404において、t
から垂直方向に投影させて、t=TpにおけるICに対
して接線方向に交差させてパラメータCp−及びCp+
を得る。Cp−及びCp+は、該接線のt=Tp−及び
Tp+の夫々における縦座標である。
【0022】補間曲線IC(t)の形状は、パラメータ
Cp,Cp−,Cp+の値を決定し、従って、自由点の
各々の変位の量を決定する。一般的には、三次補間曲線
IC(t)が三次ベジェセグメントが関与する殆どの適
用場面に対して最適なものである。例えば五次多項式又
は正弦波のような異なる形状の補間曲線は自由点を異な
る態様で移動させる。補間曲線IC(t)の形状の選択
は応用特定的であり且つ、通常、特定の応用例に対して
自由点の最適な挙動を発生させるべくグラフィクスプロ
グラムの製造業者によって行なわれる。補間曲線IC
(t)が設定されると、ラインセグメントt上で画定さ
れる同一の補間曲線は全ての曲線変形操作に対して使用
される。
【0023】図2Aは複合曲線の1つの部分300と関
連している補間曲線ICを示しており、その場合に、点
Eeは選択された点であり且つ点Eaは固定されている
点である。選択点Eeから別の固定点へ延在する付加的
な自由点に対して、補間曲線ICがCeから点Eeの反
対側においてラインtに対して引き伸ばされており、一
般的に、ベル形状の曲線を形成している。
【0024】複数個(N)のディスジョイントグループ
が存在する場合には、各グループの制御点をステップ4
05において単位ラインセグメントt1−tNのうちの
対応する1つの上の点Tp,Tp−,Tp+に対してマ
ッピングさせる。次いで、ステップ406において、ラ
インt1−tNの上に、夫々、補間曲線IC(t1)−
IC(tN)を画定し、且つ次いで、ラインセグメント
t1−tN上の点を、ステップ407において、補間曲
線IC(t1)−IC(tN)上のパラメータCp,C
p−,Cp+に対してマッピングさせる。この場合に
も、同一の補間曲線ICがラインセグメントt[0,
1]上で画定されるように、各場合において使用され
る。
【0025】ステップ404又は407から、本プログ
ラムはパラメータCp,Cp−,Cp+を使用して、各
自由制御点P,P−,P+に対する変位を計算する。次
いで、本プログラムは、ステップ412において、計算
した変位だけ自由点を移動させる。
【0026】ステップ410において、該変位はベクト
ル変位Vをスケーリングするために、スケールファクタ
即ち拡縮率として、パラメータCp−,Cp,Cp+を
使用して新たな位置P−′,P′,P+′で表現され
る。各スケーリングされた変位は対応する元の点へ付加
されて、図1−3に示したように、新たな点P−′,
P′,P+′を派生させる。
【0027】 P−′ = P− + V × Cp− (1) P′ = P + V × Cp (2) P+′ = P+ + V × Cp+ (3) 複合曲線を画定する制御点のシーケンスをラインセグメ
ントtに対してマッピングする場合の1つの拘束条件
は、該マッピングは単調的なもので且つ軸独立性のもの
でなければならないということである。従って、任意の
与えられたセグメント端点Pに対して、次式(4)が満
足されねばならない。
【0028】 (Tp+ − Tp)/(Tp − Tp−)=|(P+ − P)|/|(P − P−)| (4) 式4は、ベクトル(P+ − P)及び(P − P
−)が元の複合曲線において同一直線上にある場合には
(滑らかなベジェ曲線に対して必要とされるように)、
該ベクトルは変形された曲線において同一直線状態を維
持することを確保する。
【0029】図2Aを参照すると、図2Bのプロセスは
以下のように複合曲線の「屈曲可能な」セクション30
0、即ち固定点Eaと選択点Eeとの間のセクションに
対して適用される。その他のセグメント端点Eb,E
c,Ed及び勾配点Ea+,Eb−,Eb+,Ec−,
Ec+,Ed−,Ed+,Ee−は、それらの変位が計
算される自由点である。最初のマッピングステップにお
いて(ステップ402)、固定セグメント端点Ea及び
選択セグメント端点EeをパラメータTa及びTeに対
してマッピングさせ、且つ自由点Ea+,Eb−,E
b,Eb+,Ec−,Ec,Ec+,Ed−,Ed,E
d+,Ee−をラインtに沿って、それぞれ、パラメー
タTa+,Tb−,Tb,Tb+,Tc−,Tc,Tc
+,Td−,Td,Td+,Te−に対してマッピング
させる。
【0030】図2Aにおいて、距離マッピングを使用し
て、曲線300の制御点をラインtに対してマッピング
させる。更に図2Cを参照すると、ステップ420にお
いて、最初に、制御点Ea,Ea+,Eb−,Eb,E
b+,Ec−,Ec,Ec+,Ed−,Ed,Ed+,
Ee−,Eeを介して通過するラインセグメントを包含
するポリライン(polyline)302を画定す
る。
【0031】次に、ポリライン302の全長Lをステッ
プ422において計算する。次いで、各点P,P−又は
P+に対して、ステップ424において、長さDp,D
p−又はDp+(点Eaから点Ep,Ep−又はEp+
へのポリライン302の長さ)を計算する。パラメータ
Tx(x=a,a+,b−,b,b+,c−,c,c
+,d−,d,d+,e−,e)を、ステップ426に
おいて、距離Dx(点Eaから点Exへのポリライン3
02の長さ)をポリライン302の全長Lで割算するこ
とによって計算する。従って、例えば、パラメータTa
は値0を有している。なぜならば、点Eaからそれ自身
への距離はゼロだからである。パラメータTa+は点E
aから点Ea+へのポリライン302の長さDa+をポ
リライン302の全長Lで割算したものである。パラメ
ータTd−は、点Eaから点Ea+及びEa+からEb
−へのポリライン302の長さDb−をポリライン30
2の全長Lで割算したものである。他のパラメータTb
乃至Teは同様の態様で計算される。ラインセグメント
tは0と1との間で画定されるので、パラメータTeの
値は1である。
【0032】実効的に、距離マッピングは、各点間のユ
ークリッド距離に従って、点Ea乃至Eeを直線t上に
マッピングさせる。
【0033】図2Aは値0と1との間でのラインセグメ
ントtへのマッピングを示している。一方、該マッピン
グは、ポリライン上の制御点間の距離関係が維持される
限り、任意の二つの値の間でのラインセグメントtに対
するものとすることが可能である。
【0034】距離マッピングの一つの利点は簡単である
ことであるが、それは制限も有している。距離マッピン
グの一つの制限は、複合曲線の変形が可逆的ではないと
いう点である。従って、例えば、選択制御点が曲線を変
形させるためにベクトルVを介して移動され、且つ該点
が反対のベクトル−Vを介して移動されると、曲線制御
点は、距離マッピングが使用される場合には、常にそれ
らの元の位置へ復帰するとは限らない。
【0035】点をラインt上にマッピングさせる別のマ
ッピング技術である投影マッピングは、ある場合におい
てこの制限を回避している。図3及び4を参照すると、
該プログラムは、最初に、ステップ450において、選
択した一つ又は複数個の点の運動方向を画定するベクト
ルUを受取る。従って、セグメント端点Ef,Eg,E
h,Ei,Ej(及び関連する勾配点Ef+,Eg−,
Eg+,Eh−,Eh+,Ei−,Ei+,Ej−)に
よって画定される複合曲線304の場合に、セグメント
端点Ehは選択された点であり且つ点Ef及びEjは最
初の隣の固定した点であり、ベクトルUはセグメント端
点Ehの移動方向に指向している。
【0036】パラメータTf,Tg,Th,Ti,Tj
を決定するために投影マッピングを使用すると、ライン
tはステップ452においてベクトルUに対して垂直に
画定される。次いで、制御点Ef,Ef+,Eg−,E
g,Eg+,Eh−,Eh,Eh+,Ei−,Ei,E
i+,Ej−,Ejの各々は、ステップ454におい
て、ベクトルUに対して平行な経路に沿ってラインt上
に投影され、対応するパラメータTf,Tf+,Tg
−,Tg,Tg+,Th−,Th,Th+,Ti−,T
i,Ti+,Tj−,Tjを得る。
【0037】従って、距離マッピングは複合曲線上の制
御点の相対的な距離に従ってパラメータTp,Tp−,
Tp+を画定せんとするものであるが、投影マッピング
は対応する平行なベクトルに沿っての制御点を直交する
ラインtに対してマッピングさせる。
【0038】ラインt上にマッピングさせるために別の
マッピング技術を使用することが可能である。この3番
目の技術においては、N+1個の制御点があるものと仮
定すると、これらの制御点は、各制御点間の距離が等し
い点即ち、各制御点間の距離が1/Nであるように直線
上にマッピングされる。この3番目のマッピング技術
は、それが完全に可逆的であるという利点を有してい
る。しかしながら、変形操作から得られる複合曲線の形
状は高度に制御点の位置に依存するものである。制御点
が複合曲線全体に亘ってほぼ等しく分散されている場合
には、該曲線の変形はその全長に亘って滑らかである。
しかしながら、幾つかの制御点がクラスタ上に固まって
おり、一方その他の制御点がかなり離れている場合に
は、変形操作を行った後の曲線の形状にはより急激的な
変化が存在する場合がある。
【0039】複合曲線304の制御点に対するパラメー
タTy(y=f,f+,g−,g,g+,h−,h,h
+,i−,i,i+,j−,j)が派生されると、該プ
ログラムは、ステップ456において、ラインtに沿っ
てのパラメータが単調的であるか否か、即ち、TfがT
f+より小さく、Tf+がTg−より小さく、Tg−が
Tgより小さく、以下同様であるか否かを決定する。パ
ラメータTyが単調的である場合には、それ以上何も行
われない。そうでない場合には、非単調的な点Tp,T
p−又はTp+が、ステップ458において、投影マッ
ピングが非単調的なものとなった点Tpに関してフリッ
プ即ち引繰り返される。従って、図3Aにおいて、パラ
メータTf及びTf+は点Egに対するパラメータTg
よりもより大きな値である。マッピングを単調的なもの
とさせるために、パラメータTf及びTf+は、マッピ
ングが方向を逆転する点(この場合は、パラメータTg
−)に関して新たなパラメータTf′及びTf+′へそ
れぞれ「アンフォルド(unfold)」即ち展開され
る。展開されると、Tg−とTf′との間の距離は、T
g−とTfとの間の距離と同一であり、且つTg−とT
f+′との間の距離はTg−とTf+との間の距離と同
一である。
【0040】投影マッピングは可逆的である。なぜなら
ば、反対方向における変位の場合、点が投影されるライ
ンtは同一であり(即ち、選択された点がドラッグされ
るベクトルに対して垂直)、且つ従って、tの値は同一
であるからである。従って、該曲線の変形は、曲線を最
初にベクトルUを介してドラッグし、次いで中間に何ら
の操作を行うことなしにベクトル−Uを介してドラッグ
した場合には、完全に逆転される。
【0041】投影マッピングは距離マッピングよりも一
層計算(演算)集約的である。典型的なユーザのインタ
ラクション即ち相互作用において、選択された点をドラ
ッグして複合曲線を変形させるための経路は直線に従う
可能性はなく、むしろ、単一のドラッグ操作におけるカ
ーソルの経路は共通点からの相次ぐ複数個のベクトル変
位V1,V2,...,Vnとして近似される。複合曲
線の中間位置が曲線変形操作期間中に表示されるべき場
合には、パラメータCp−,Cp+,Cpは各ベクトル
変位V1,V2,...,Vnに対して再度適用されね
ばならない。投影マッピングの場合には、パラメータT
p及びCpは各ベクトル変位V1,V2,...,Vn
に対して再度計算されねばならない。なぜならば、直交
ラインセグメントtが各新たなベクトルに対して変化す
るからである。これと対照的に、距離マッピングが使用
される場合には、ファクタCp−,Cp,Cp+はドラ
ッグの開始時(即ち、ユーザがマウスボタンを押圧する
時)において一度計算することが必要であるに過ぎず、
マウスボタンを押下げたまま、移動操作の経路が方向を
変化させる場合に、ベクトル変位V1,V2,...,
Vnの各新たな値に対して適用される。その結果、各単
一の移動操作に対する計算の量は距離マッピングの場合
に最小とされる。
【0042】再度図2Aの例を参照すると、複合曲線の
制御点を直線tに対してマッピングさせた後に、該マッ
ピング技術の第二ステップ(図2Bのステップ404)
はパラメータTp,Tp−,Tp+をEaとEeとの間
の制御点に対する補間曲線ICから派生したスケールフ
ァクタ即ち拡縮率Cp,Cp−,Cp+に対してマッピ
ングさせる。各自由セグメント端点と関連しているパラ
メータTb,Tc,Tdは補間曲線IC上の点に対して
マッピングされる。パラメータCeの値は1である。な
ぜならば、点Eeはカーソルで変位Vを介してドラッグ
された選択点であるからである。又、パラメータCaの
値は0である。なぜならば、それは固定点Eaと関連し
ているからである。
【0043】勾配点と関連しているパラメータTa+,
Tb−,Tb+,Tc−,Tc+,Td−,Td+,T
e−の場合には、これらの値はt=Ta,Tb,Tc,
Td,Teのそれぞれにおいて補間曲線ICに対して接
線方向のラインYa,Yb,Yc,Yd,Yeにおいて
評価される。その結果、値Ca+,Cb−,Cb+,C
c−,Cc+,Cd−,Cd+,Ce−は補間曲線IC
上にはない。
【0044】図2Aの補間曲線ICは以下の拘束条件を
満足する。
【0045】IC(0)=0 IC(1)=1 dIC(0)/dt=0 dIC(1)/dt=0 最初の二つの拘束条件は、点Eaが固定されており(従
って、移動しない)且つ点Eeが選択されたもの(従っ
て、ユーザによって特定された量だけ移動する)である
という事実から得られる。最後の二つの拘束条件は、t
=0及びt=1における補間曲線の勾配が0であること
を特定し、そのことは、実効的に、その曲線端点におけ
る複合曲線の勾配が変化しないことを特定する。補間曲
線ICの三次多項式解を図5に与えてある。点Cp+及
びCp−を接線Ypに沿って配置させることにより、ラ
イン(P− − P)及び(P − P+)の共直線性
が維持される。
【0046】 IC(t)=t×t×(3.0−2.0×t) (5) パラメータCa+乃至Ce−の値は、各々、Ca及びC
eの値の間、即ち0と1との間である。注意すべきこと
であるが、勾配点Ea+及びEe−は技術的には自由点
であるが、Ca+及びCe−の値は、t=0,1におけ
る補間曲線IC(t)の勾配がゼロであるという条件に
よって拘束される。従って、Ca+の値は0であり且つ
Ce−の値は1である。
【0047】一つの選択したセグメント端点又は複数個
の端点をドラッグすることによって曲線を移動させるこ
との能力に加えて、その曲線端点における複合曲線の勾
配を調節することも可能である。図2D及び2Eを参照
すると、複合曲線310が単一のベジェ曲線を近似する
セグメント312と関連しており、それは複合曲線31
0からサンプルした点に対する最小二乗当て嵌めを使用
して複合曲線310を近似する。近似用ベジェセグメン
ト312は、セグメント端点P0及びP3及び勾配点P
1及びP2(以後、複合曲線310の「擬似」勾配点P
1及びP2と呼称する)によって画定される。近似用セ
グメント312は、厳格には、複合曲線310の曲線端
点Eaか又は曲線端点Eeの何れかにおける勾配をユー
ザが調節することを可能とするユーザインターフェース
機能である。曲線端点における勾配を変更するためにそ
の他の方法を使用することも可能である。例えば、より
簡単なユーザインターフェース方法は、端点P0とP3
との間に画定されるラインに沿って擬似勾配点P1及び
P2を画定することであり、点P1は該ラインに沿って
の1/3の位置であり且つ点P2は2/3の位置であ
る。別の例としては、該プログラムは、勾配調節モード
へ入るためにユーザによって選択可能なユーザインター
フェースにおけるボタンを提供することである。従っ
て、ユーザはどの曲線端点が修正されるべきかをマーク
付けすることが可能であり且つ任意の勾配調節点をドラ
ッグして、その曲線端点のうちの一つにおいて複合曲線
の勾配を調節するために勾配調節点の変位ベクトルを与
えることが可能である。
【0048】複合曲線端点(Ea又はEe)における勾
配を修正するために、ユーザはベジェセグメント312
の擬似勾配点P1又はP2を選択し且つドラッグする。
P1の選択は、Eaにおける勾配を修正し且つP2の選
択はEeにおける勾配を修正する。対照的に、前述した
ように、特定のセグメント端点又は複合曲線310の端
点が移動されるべき場合には、ユーザはセグメント端点
Ea,Eb,Ec,Ed又はEeを選択し且つそれらを
所望の変位だけドラッグする。擬似勾配点P1又はP2
は変位ベクトルによってドラッグされ(図8において例
示した如く)、端点Ea又はEeにおいて該曲線の勾配
を修正する。擬似勾配点P1又はP2の変位に応答し
て、該プログラムは、セグメント端点の移動について上
述したのと同様の2ステップマッピング技術を使用し
て、該複合曲線の制御点に対する変位を計算する。その
違いは勾配修正マッピングステップにおいて使用される
補間曲線に存在している。補間曲線は点P1近くの制御
点の変位は他の制御点のものより大きいように画定され
ねばならない。一つの曲線端点における勾配のみが調節
され、反対側の曲線端点における勾配は不変のままであ
る。
【0049】図2Eにおいて、擬似勾配点P1の変位ベ
クトルBがステップ440において受取られる。次い
で、該プログラムは制御点Ea,Ea+,Eb−,E
b,Eb+,Ec−,Ec,Ec+,Ed−,Ed,E
d+,Ee−,Eeを、距離マッピングか又は投影マッ
ピング(距離マッピングを図2Dに示してある)を使用
して、ラインセグメントt上へマッピングさせる。次い
で、ステップ444において、ラインセグメントt上に
補間曲線IC(t)(それはセグメント端点を移動させ
るための補間曲線とは異なる)が画定され、該補間曲線
IC(t)は以下の条件を満足せねばならない。
【0050】IC(0)=0 IC(1)=0 dIC(0)/dt>0 dIC(1)/dt=0 該条件は、t=0,1における補間曲線IC(t)の値
は0であり、t=1におけるIC(t)の勾配は0であ
り、且つt=0におけるIC(t)の勾配は0より大き
いことを特定する。
【0051】特定された条件を満足する一つのタイプの
多項式はバーンスタイン(Bernstein)多項式
であり、それは次式(6)のように表わされる。
【0052】 IC(t)=3×t×(1.0−t)2 (6) 次いで、ステップ446において、点Ta+,Tb−,
Tb,Tb+,Tc−,Tc,Tc+,Td−,Td,
Td+,Te−が補間曲線IC(t)上にマッピングさ
れる。該マッピングは図2Aのマッピング技術に関連し
て説明したものと同一であり、その場合には、セグメン
ト端点と関連するパラメータTpが補間曲線IC(t)
上にマッピングされ、且つ勾配点に関連するパラメータ
Tp−及びTp+がt=Tpにおいて接線Ypに対して
マッピングされる。次いで、該プログラムは、ステップ
448において、スケールファクタ即ち拡縮率Cp,C
p−,Cp+の値を計算して、制御点Ea乃至Eeの変
位を決定する。次いで、ステップ449において、該制
御点は、計算された変位だけ該プログラムによって移動
される。
【0053】式6のバーンシタイン多項式を使用して、
最大移動はラインセグメントtに沿って1/3の点にお
いてであり、即ちt=1/3においてである。この様な
点は必ずしも複合曲線制御点と関連する点Tp,Tp+
又はTp−に対応するものではない。
【0054】図2Dの例は、複合曲線310の曲線端点
Eaにおける勾配の修正を示している。曲線端点Eeに
おける勾配が修正されるべき場合には、擬似勾配点P2
が選択され且つ移動される。その場合には、補間曲線に
対する条件は異なり、t=0におけるIC(t)の勾配
は0に等しく且つt=1におけるIC(t)の勾配は0
より小さい。その結果、式6の補間曲線はラインセグメ
ントt上に鏡像関係に構成される。
【0055】別の実施例においては、複合曲線における
任意のセグメント端点の勾配を修正することが可能であ
る。このことを可能とするために、該プログラムは、ユ
ーザが選択を希望する複合曲線の部分の他方の端部にお
けるセグメント端点とそのセグメント端点との間の近似
する曲線を表示する。例えば、図2Dにおいて、影響さ
れるべき複合曲線の部分が点EbとEdとの間であり、
且つEbにおける勾配が修正されるべき場合には、近似
用曲線は点EbとEdとの間に画定される。
【0056】次いで、この短縮された近似用曲線の擬似
勾配点P1をドラッグしてセグメント端点Ebにおける
勾配を修正する。注意すべきことであるが、セグメント
端点Ebにおける勾配の修正は(それが曲線端点ではな
いので)影響を受ける曲線セグメント(EbとEcとの
間)とその隣接する曲線セグメント(EaとEbとの
間)の間における滑らかな遷移を破壊する。
【0057】例示的な曲線の変形を図5乃至8に示して
あり、その場合に、元の曲線は太線で表わしてあり且つ
修正された即ち変形された曲線は点線で表わしてあり、
それらは元の曲線とは異なっている。
【0058】図5を参照すると、マルチセグメント複合
曲線200を、複合曲線200′を発生させるための本
発明の技術によって修正することが可能である。固定点
はセグメント端点E206であり、選択点はセグメント
端点E200,E201,E202,E203,E20
4,E205であり、それらはグループとして新たなセ
グメント端点E200′−E205′へそれぞれドラッ
グされる。固定セグメント端点E206と選択セグメン
ト端点E205との間の自由点の変位は、元の曲線20
0の一般的な形状と詳細及び曲線セグメント間の遷移の
滑らかさを維持するために該プログラムによって決定さ
れる。
【0059】図6を参照すると、該経路修正技術は、更
に、セグメント端点E120,E121,E122,E
123及びE124間における四つのベジェセグメント
122,123,124,125によって画定される長
円形120のような循環的な又は閉じた曲線に対しても
適用することが可能である。唯一の新たな考慮事項は、
点を繰返し取扱うことが必要となり、即ち最初の点と最
後の点が隣接しているものと考える。長円形120は元
の経路120から新たな経路120′へ修正されてお
り、セグメント端点E120は固定点であり且つセグメ
ント端点E123は選択点である。残りの点は自由点で
あって、それらの変位は複合曲線120′の円形形状を
維持すべく該プログラムによって計算される。
【0060】図7A及び7Bは該プログラムによって移
動される制御点のディスジョイント(解体)グループを
例示している。図7Aにおいて、6個のセグメントから
なる複合曲線320が曲線320′へ変形されており、
セグメント端点E320,E323,E326は固定点
であり且つセグメント端点E321及びE324は選択
点である。固定点E320とE323との間の制御点は
第一グループの制御点を形成しており、且つ固定点E3
23とE326との間の制御点は第二グループの制御点
を形成している。これら二つのグループに対して別個の
マッピングを実行して、自由制御点の変位を決定する。
【0061】図7Bは四つのディスジョイントグループ
の制御点を例示しており、即ち複合曲線220における
二つのグループと複合曲線230における二つのグルー
プとを示している。固定点はセグメント端点E220,
E223,E225,E231,E235であり、且つ
選択点はセグメント端点E221,E224,E23
0,E234である。単一移動操作において、これら四
つのディスジョイントグループにおける自由点の変位
は、四つの別々のマッピングを使用して計算される(こ
の場合に画定されるマッピングは二つの固定点の間の制
御点に対して必要とされるマッピングである)。この場
合も、勾配点は二つの複合曲線220′及び230′に
おける曲線セグメントの滑らかな遷移を維持するために
調節される。図8は曲線端点P0における複合曲線32
0の勾配の修正を例示している。複合曲線320は複数
個のベジェ曲線セグメント(簡単化のために示していな
い)を包含している。共通の端点P0及びP3を共用し
ており且つ擬似勾配点P1及びP2を有する単一のベジ
ェセグメントである近似用曲線322も複合曲線320
と共に表示されている。擬似勾配点P1は、変位ベクト
ルVによって点P1′へ移動され、且つ複合曲線320
の勾配は複合曲線320′を形成するように調節され
る。近似用曲線322は曲線322′へ移動される。複
合曲線端点の何れかにおいての勾配のさらなる修正のた
めには、擬似勾配点P1′及びP2を更に移動させるこ
とが可能である。
【0062】図9A及び9Bを参照すると、曲線セグメ
ントは移動されるのみならず描画されることを必要とす
る。上述したように、ベジェセグメントは四つの制御点
P0,P1,P2,P3によって画定され、その場合
に、点P0及びP3はセグメント端点であり且つ点P1
及びP2は勾配点である。描画操作期間中にユーザに対
してフィードバックを与えるために、該プログラムは、
マウスボタンが押された時に、セグメント端点P0とカ
ーソルとの間に曲線を形成し且つ表示し、且つ現在のカ
ーソル位置をセグメント端点P3の瞬間的な位置として
且つ以下に説明するように勾配点P1及びP2に対する
計算した位置を使用して、「輪ゴム」ベジェセグメント
でカーソルを追跡する。
【0063】図9Aを参照すると、該プログラムは、ス
テップ500において、マウスボタンが押されたか否か
を決定する。押された場合には、該プログラムは、ステ
ップ501において、カーソルが既存のベジェ曲線セグ
メントの制御点の所定の半径内に位置されているか否か
をチェックする。位置されている場合には、該プログラ
ムは、ステップ502において、制御点をカーソルによ
って示されている位置へ移動させる。
【0064】マウスボタンが押された時にカーソルが制
御点の所定の範囲内にない場合には、該プログラムは、
曲線セグメントの形成が所望されていることを認識し、
次いで、該プログラムは、ステップ503において、修
正キー(例えば、Ctrlキー)が押されたか否か、又
はコンピュータスクリーン上にその他の曲線が表示され
ていないかどうかを決定する。
【0065】ユーザが修正キー(例えば、Ctrlキ
ー)又は何らかのその他の活性化手段を押した場合、一
方別の曲線セグメントが既に形成されている場合にはマ
ウスボタンを押しつつ、それは、既存のセグメントとは
別に曲線セグメントを形成することのユーザの希望を表
わしている。そうでない場合には、該プログラムは新た
なセグメントを既存のセグメントへ連結させて一連の曲
線セグメントを形成する。
【0066】別の曲線セグメントが所望される場合には
(即ち、修正キーが押されるか又はその他の曲線セグメ
ントが形成されていない場合)、第一セグメント端点P
0がステップ504において、ユーザがマウスボタンを
押した場合のカーソルの点として画定される。次いで、
該プログラムは、ステップ506において、何時マウス
ボタンが解放されるかを検知する。マウスボタンが解放
されると、解放時におけるカーソルの位置が、ステップ
508において、図10Aに示したように、中間勾配点
S1として画定される。この点S1は、点P0から点S
1へのベクトルSの方向を表わすためにユーザによって
選択される。勾配点P1は、ベクトルSの方向における
ラインに沿って位置される。更に、該曲線セグメントは
セグメント端点P0においてベクトルSに対して接線方
向である。
【0067】点S1をステップ508において画定した
後に、該プログラムは、ステップ510において、マウ
スボタンが再度押されたか否かを決定する。押された場
合には、カーソルの現在の位置が、ステップ512にお
いて、セグメント端点P3の位置として画定される。勾
配点P1及びP2は、又、ステップ512において、セ
グメント端点P3の現在の位置に対して計算され、且つ
該曲線セグメントは該曲線セグメントの形状のユーザの
フィードバックを与えるために表示される。
【0068】点P1及びP2の位置は、ステップ512
において、その曲線が、図9Bに示したように、P0と
カーソルとを通過する円の円弧の近似であるように該プ
ログラムによって計算される。カーソルがユーザによっ
てドラッグされると、セグメント端点P3の瞬間的な位
置は該カーソルに追従し(点P3,P3′,P3″によ
って示されているように)、且つ勾配点P1及びP2は
再計算されて(点P1,P2;P1′,P2′;P
1″,P2″によって示されているように)円弧の近似
を維持する。
【0069】次いで、該プログラムは、ステップ514
において、マウスボタンが解放されたか否かを決定す
る。解放された場合には、カーソルの現在の位置はセグ
メント端点P3の位置を継続して表わす。マウスボタン
が解放されると、セグメント端点P3の最終的な位置
が、ステップ516において、マウスボタンが解放され
た時のカーソルの位置として特定される。勾配点P1及
びP2の最終的な位置も計算され且つ該曲線セグメント
が表示される。
【0070】ステップ502において、修正キーが押し
下げられず且つ曲線セグメントが既に形成されている場
合には、該プログラムは、ユーザが複合曲線の次のセグ
メントを形成することを所望しているものと仮定する。
図10Bに示したように、第一曲線セグメント600の
点P2は点P3を介して反映されて、次の曲線セグメン
ト602に対する中間勾配点S1′の位置を画定する。
ライン(P2−P3)はライン(P3−S1′)と共直
線性であり、曲線セグメント600と602との間に滑
らかな遷移を形成する。マウスボタンが押されると、カ
ーソルの現在の位置が新たな曲線セグメント602のセ
グメント端点P3′の瞬間的な位置として使用され、且
つ曲線セグメント602の勾配点P1′及びP2′の位
置が、セグメント端点P3′が位置を変える毎に計算さ
れる。次いで、該プログラムは、ステップ514におい
て、マウスボタンが解放されたか否かを検知し、その時
に、セグメント端点P3′の最終的な位置が決定され
る。上述したプロセスは、該複合曲線に対して付加すべ
き付加的な曲線セグメントを形成するために適用するこ
とが可能である。
【0071】再度図10Aを参照すると、勾配点P1及
びP2の位置を計算するための数式を式7−13として
示してある。これらの式において、点P0,P1,P
2,P3,S1は任意の座標系におけるベクトルとして
表現されている。
【0072】 W=P3−P0 (7) S=S1−P0 (8) COSA=W・S/|W|×|S| (9) m=2×|W|/{3×(1+cosA)} (10) v=1−(2×m×cosA/|W|) (11) P1=P0+m×S/|S| (12) P2=P1+v×W (13) WはベクトルP3とP0との間の差として定義されるベ
クトルであり、且つSはベクトルS1とS0との間の差
として定義されるベクトルである。角度AはベクトルW
とベクトルSとの間の角度として定義される。式9及び
10はスカラ値m及びvを計算し、値mは式11におけ
るベクトルP1を派生するためのSベクトルの方向に指
向する単位ベクトルのスケールファクタ(拡縮率)とし
て使用され、且つ値vは式12におけるベクトルP2を
派生するためにベクトルWのスケールファクタ(拡縮
率)として使用される。
【0073】図11を参照すると、本明細書に基づいて
曲線を形成し且つ修正するためのプログラムをデジタル
電子回路において又はコンピュータファームウエア、ソ
フトウエア又は例えばコンピュータシステム500にお
けるようにそれらの組合わせにおいて実現することが可
能である。コンピュータシステム500は、内部システ
ムバス504へ接続している中央処理装置(CPU)5
02を包含している。コンピュータシステム500にお
ける格納媒体は、メインメモリ506(ダイナミックラ
ンダムアクセスメモリ装置で実現することが可能であ
る)、大量格納用のハードディスクドライブ508、電
気的に消去可能でプログラム可能なリードオンリーメモ
リ(EEPROM)510を包含している。メインメモ
リ506及びEEPROM510はバス504へ接続し
ており、且つハードディスクドライブ508はハードデ
ィスクドライブコントローラ512を介してバス504
へ結合している。
【0074】本発明の装置は、CPU502によって実
行するために機械読取り可能な格納装置(例えば、ハー
ドディスクドライブ508、メインメモリ506、又は
EEPROM510)において明確に具体化されたコン
ピュータプログラムプロダクトの形態で実現することが
可能である。適宜のプロセサは、例示として、汎用及び
特定目的マイクロプロセサの両者を包含している。一般
的に、プロセサは、命令及びデータをリードオンリーメ
モリ510及び/又はメインメモリ506から受取る。
コンピュータプログラム命令を明確に具現化するのに適
した格納装置は、例示として、例えばEPROM,EE
PROM及びフラッシュメモリ装置などの半導体メモリ
装置、例えば内部ハードディスクドライブ508などの
磁気ディスク及び着脱自在なディスク、磁気・光学ディ
スク、CD−ROMディスクを包含する全ての形態の非
揮発性メモリを包含している。前述したものの何れかが
特別に設計されたASIC(応用特定集積回路)によっ
て補充されるか又はその中に組込むことが可能である。
【0075】コンピュータシステム500は、更に、バ
ス504へ接続している入力/出力(I/O)コントロ
ーラ514を包含しており、それは、キーボードインタ
ーフェース516(外部キーボードへ接続するため)、
マウスインターフェース518(外部マウス又はその他
のポインタデバイスへ接続するため)、及びパラレルポ
ートインターフェース520(プリンタへ接続するた
め)を提供している。更に、バス504はビデオコント
ローラ522へ接続しており、それは外部コンピュータ
モニタ又はディスプレイ524へ結合している。コンピ
ュータモニタ524上で表示するための画像(例えば、
曲線)と関連するデータはアプリケーションプログラム
によってシステムバス504を介してビデオコントロー
ラ522へ供給される。
【0076】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。例えば、本発明のステップは当業者によって適宜変
更させることが可能であり尚且つ所望の結果を得ること
が可能である。種々の受取られるコマンドは、多数の異
なる態様でコンピュータへ供給することが可能であり、
例えば、マウスジェスチャ、キーボードストローク、及
びグラフィカルユーザインターフェースを使用してコマ
ンドをコンピュータシステムと通信することが可能であ
る。
【図面の簡単な説明】
【図1】 コンピュータディスプレイ上の複合曲線の移
動を示した概略図。
【図2A】 選択したセグメント端点の移動に応答して
複合曲線を定義する制御点の変位を計算するために使用
される2ステップマッピング技術を示した概略図。
【図2B】 2ステップマッピング技術を示したフロー
チャート。
【図2C】 2ステップマッピング技術において使用さ
れる距離マッピング方法を示したフローチャート。
【図2D】 曲線端点における複合曲線の勾配の修正の
2ステップマッピング技術を示した概略図。
【図2E】 曲線端点における複合曲線の勾配の修正の
2ステップマッピング技術を示したフローチャート。
【図3】 複合曲線上の点を直交するラインに対してマ
ッピングする投影マッピング方法を示した概略図。
【図4】 投影マッピング方法のフローチャート。
【図5】 複数個の制御点が選択され且つ一つのグルー
プとして硬直的に移動される場合の複合曲線の移動を示
した概略図。
【図6】 閉じた経路の曲線の移動を示した概略図。
【図7A】 ディスジョイントグループの移動される点
を有する複合曲線の移動を示した概略図。
【図7B】 二つの複合曲線の移動を示した概略図。
【図8】 曲線端点における複合曲線の勾配の修正を示
した概略図。
【図9A】 ベジェ曲線セグメントを形成する方法のフ
ローチャート。
【図9B】 ユーザによって形成中のベジェ曲線セグメ
ントを示した概略図。
【図10A】 関連する制御点及びベクトルと共にベジ
ェ曲線セグメントを示した概略図。
【図10B】 複数個のベジェ曲線セグメントを有する
複合曲線を示した概略図。
【図11】 コンピュータシステムを示した概略ブロッ
ク図。
【図12】 ベジェ曲線セグメントを示した概略図。
【符号の説明】
22,23,24 ベジェセグメント 30 複合ベジェ曲線 E1−E4 セグメント端点 P0,P3 端点 P1,P2 勾配点 t ラインセグメント Ep セグメント端点 Ep+,Ep− 勾配点 Tp+,Tp− パラメータ IC 補間曲線

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムにおけるグラフィ
    カルユーザインターフェースを介してユーザの行為に応
    答して複数個の制御点によって定義される曲線を修正す
    るコンピュータによって実行される方法において、 ユーザの入力に応答して、前記制御点の各々を固定制御
    点、選択制御点、又は自由制御点として識別し、 複数個の選択点の変位を受取り、 前記曲線の自由制御点をラインt上の点Tpへマッピン
    グさせ、 ラインt上の補間曲線IC(t)を画定し、 拡縮率を見つけ出すためにt=Tpにおける補間曲線I
    C(t)の値に対して点Tpを投影させ、 前記拡縮率を前記選択点の変位と乗算して前記自由制御
    点の変位を決定する、ことを特徴とする方法。
  2. 【請求項2】 請求項1において、更に、 前記曲線の複数個の自由制御点をラインt上の対応する
    点に対してマッピングし、 ラインt上の前記点を補間曲線IC(t)の対応する値
    へ投影させて対応する拡縮率を見つけ出し、 前記拡縮率を前記選択点の変位と乗算させて前記自由制
    御点の対応する変位を決定する、ことを特徴とする方
    法。
  3. 【請求項3】 請求項1において、前記制御点がセグメ
    ント端点と勾配点とを包含しており、且つ前記ラインt
    上の点Tpに対してマッピングされた自由制御点が自由
    セグメント端点であり、更に、 自由勾配点をラインt上の点Tp+に対してマッピング
    し、 t=Tpにおいて補間曲線IC(t)に対して接線方向
    のラインYpを画定し、 点Tp+をt=Tp+においてラインYpの値へ投影さ
    せて前記自由勾配点に対する拡縮率を見つけ出し、 前記自由セグメント端点及び自由勾配点の拡縮率を前記
    選択点の変位と乗算させて前記自由セグメント端点及び
    自由勾配点の変位を決定する、ことを特徴とする方法。
  4. 【請求項4】 請求項1において、前記拡縮率がt=T
    pにおける補間曲線IC(t)の値に等しいことを特徴
    とする方法。
  5. 【請求項5】 請求項4において、更に、 IC(t)の値を0から1の範囲内となるように画定
    し、その際に前記自由制御点を前記選択点の変位より小
    さな変位だけ移動させることを特徴とする方法。
  6. 【請求項6】 請求項1において、更に、 ユーザ入力に応答して、選択制御点と自由制御点とを有
    する第一グループ及び選択制御点と自由制御点とを有す
    る第二グループを識別し、前記第一グループの制御点は
    固定制御点だけ前記第二グループの制御点から離隔して
    おり、 前記第一グループの選択制御点及び前記第二グループの
    選択制御点の変位を受取り、 前記第一グループの自由制御点を第一ラインt1上の点
    Tp1に対してマッピングし、且つ前記第二グループの
    自由制御点を第二ラインt2上の点Tp2に対してマッ
    ピングし、 第一ラインt1上の第一補間曲線IC(t1)を画定し
    且つ第二ラインt2上の第二補間曲線IC(t2)を画
    定し、 t1=Tp1における第一補間曲線IC(t1)に対し
    て点Tp1を投影させて第一拡縮率を見つけ出し、且つ
    t2=Tp2における第二補間曲線IC(t2)に対し
    て点Tp2を投影させて第二拡縮率を見つけ出し、 前記第一拡縮率を前記第一及び第二グループの選択点の
    変位と乗算させて前記第一グループ自由制御点の変位を
    決定し、且つ前記第一及び第二グループの選択点の変位
    と前記第二拡縮率を乗算させて前記第二グループ自由制
    御点の変位を決定する、ことを特徴とする方法。
  7. 【請求項7】 請求項1において、前記曲線がベジェセ
    グメントを有する複合曲線であることを特徴とする方
    法。
  8. 【請求項8】 請求項1において、前記曲線が第一制御
    点を有しており、更に、 前記曲線の制御点を通過するポリラインを画定し、 前記ポリラインの全長を計算し、その場合に点Tpは第
    一点と点Tpに対応する点との間の長さを前記ポリライ
    ンの全長で割算したものに等しい、ことを特徴とする方
    法。
  9. 【請求項9】 請求項1において、更に、 ラインtを前記変位の方向に対して垂直であるように画
    定し、その場合に前記第一マッピングステップが前記曲
    線の制御点をラインt上に垂直に投影させる、ことを特
    徴とする方法。
  10. 【請求項10】 請求項1において、前記補間曲線が三
    次曲線として画定されることを特徴とする方法。
  11. 【請求項11】 コンピュータシステムにおけるグラフ
    ィカルユーザインターフェースを介してユーザの行為に
    応答して、各曲線が複数個の制御点によって画定される
    複数個の曲線を修正するコンピュータによって実行され
    る方法において、 ユーザ入力に応答して、前記制御点の各々を固定制御
    点、選択制御点、又は自由制御点として識別し、 各曲線の選択点の変位を受取り、 各曲線の自由制御点を複数個のラインの対応する1つの
    点に対してマッピングし、 各ライン上に補間曲線を画定し、各ライン上の点を対応
    する補間曲線に対して投影して各自由制御点に対する拡
    縮率を見つけ出し、 前記拡縮率を前記選択制御点の変位へ乗算して前記自由
    制御点の変位を決定する、ことを特徴とする方法。
  12. 【請求項12】 請求項11において、前記曲線が複数
    個のベジェセグメントを有する複合曲線であることを特
    徴とする方法。
  13. 【請求項13】 コンピュータシステムにおけるディス
    プレイ上にベジェ曲線セグメントを形成するコンピュー
    タによって実行されるグラフィカルユーザインターフェ
    ース方法において、 コンピュータシステムにおけるグラフィカルユーザイン
    ターフェースを介して第一セグメント端点の選択を受取
    り、 コンピュータディスプレイ上のカーソルの位置を第二セ
    グメント端点として受取り、 前記第一及び第二セグメント端点及び第一及び第二勾配
    点によって画定されるベジェセグメントが円弧を近似す
    るように第一及び第二勾配点を演算し、 前記演算されたベジェ曲線セグメントをコンピュータデ
    ィスプレイ上に表示する、ことを特徴とする方法。
  14. 【請求項14】 請求項13において、更に、 カーソルをコンピュータディスプレイ上で移動させて第
    二セグメント端点の新たな位置を再画定する、ことを特
    徴とする方法。
  15. 【請求項15】 請求項13において、更に、 中間勾配点の選択を受取り、 コンピュータディスプレイ上で位置決めされる第一勾配
    点に沿っての方向を特定するために前記セグメント端点
    と中間勾配点との間のベクトルを画定する、ことを特徴
    とする方法。
  16. 【請求項16】 請求項13において、更に、 第二ベジェ曲線セグメントを第一ベジェ曲線セグメント
    へ連結させるコマンドを受取り、 第二曲線セグメントの第一セグメント端点として第一曲
    線セグメントの第二セグメント端点を画定し、 第二曲線セグメントの第二セグメント端点としてコンピ
    ュータディスプレイ上のカーソルの位置を受取り、 第一及び第二セグメント端点及び第一及び第二勾配点に
    よって画定される第二ベジェ曲線セグメントが円弧を近
    似するように第二曲線セグメントの第一及び第二勾配点
    を演算し、 前記連結された第一及び第二ベジェ曲線セグメントをコ
    ンピュータディスプレイ上に表示する、ことを特徴とす
    る方法。
  17. 【請求項17】 請求項16において、更に、 第一曲線セグメントに対する中間勾配点の選択を受取
    り、 第一曲線セグメントの第一勾配点がコンピュータディス
    プレイ上に位置決めされる方向を特定するために第一曲
    線セグメントの第一セグメント端点と中間勾配点との間
    の第一ベクトルを画定し、 第二勾配点と第一曲線セグメントの第二セグメント端点
    とを通過するラインを画定し、 第一曲線セグメントの第二セグメント端点の反対側のラ
    イン上の点として第二曲線セグメントに対する中間勾配
    点を画定する、ことを特徴とする方法。
  18. 【請求項18】 請求項14において、コンピュータシ
    ステムにおけるグラフィカルユーザインターフェースを
    介してユーザの行為に応答して、複数個の制御点によっ
    て画定される曲線を修正するためのコンピュータによっ
    て読取可能な媒体上に存在するコンピュータプログラム
    において、コンピュータシステムをして、 ユーザの入力に応答して、前記制御点の各々を、固定制
    御点、選択制御点、又は自由制御点として識別させ、 複数個の選択点の変位を受取らせ、 前記曲線の自由制御点をラインt上の点Tpに対してマ
    ッピングさせ、 ラインt上に補間曲線IC(t)を画定させ、 拡縮率を見つけ出すためにt=Tpにおいて補間曲線I
    C(t)の値に対して点Tpを投影させ、 前記拡縮係数を前記選択点の変位と乗算させて前記自由
    制御点の変位を決定させる、上記各命令を有することを
    特徴とするコンピュータプログラム。
  19. 【請求項19】 請求項18において、更に、コンピュ
    ータシステムをして、 前記曲線の複数個の自由制御点をラインt上の対応する
    点へマッピングさせ、ラインt上の該点を補間曲線IC
    (t)の対応する値に対して投影させて対応する拡縮率
    を見つけ出させ、 前記拡縮率を前記選択点の変位と乗算させて前記自由制
    御点の対応する変位を決定させる、上記各命令を有する
    ことを特徴とするコンピュータプログラム。
  20. 【請求項20】 請求項18において、前記制御点がセ
    グメント端点及び勾配点を包含しており、ラインt上の
    点Tpに対してマッピングさせた自由制御点が自由セグ
    メント端点であり、更に、コンピュータシステムをし
    て、 ラインt上の点Tp+に対して自由勾配点をマッピング
    させ、 t=Tpにおいて補間曲線IC(t)に対して接線方向
    のラインYpを画定させ、 t=Tp+においてラインYpの値に対して点Tp+を
    投影させて自由制御点に対する拡縮率を見つけ出し、 前記自由セグメント端点及び自由勾配点の拡縮率を前記
    選択点の変位と乗算させて自由セグメント端点及び自由
    勾配点の変位を決定させる、上記各命令を有することを
    特徴とするコンピュータプログラム。
  21. 【請求項21】 請求項4において、更に、コンピュー
    タシステムをして、 IC(t)の値を0から1の範囲内あるように画定さ
    せ、その際に自由制御点を選択点の変位より少ない変位
    だけ移動させる、上記命令を有することを特徴とするコ
    ンピュータプログラム。
  22. 【請求項22】 請求項18において、更に、コンピュ
    ータシステムをして、 ユーザの入力に応答して、選択制御点と自由制御点とを
    有する第一グループ及び選択制御点と自由制御点とを有
    する第二グループを識別させ、尚前記第一グループの制
    御点は固定制御点だけ第二グループの制御点から離隔さ
    れており、 前記第一グループの選択制御点及び前記第二グループの
    選択制御点の変位を受取らせ、 前記第一グループの自由制御点を第一ラインt1上の点
    Tp1に対してマッピングさせ且つ前記第二グループの
    自由制御点を第二ラインt2上の点Tp2に対してマッ
    ピングさせ、 第一ラインt1上に第一補間曲線IC(t1)を画定さ
    せ且つ第二ラインt2上に第二補間曲線IC(t2)を
    画定させ、 t1=Tp1において第一補間曲線IC(t1)に対し
    て点Tp1を投影させて第一拡縮率を見つけ出し、且つ
    t2=Tp2において第二補間曲線IC(t2)に対し
    て点Tp2を投影させて第二拡縮率を見つけ出させ、 前記第一拡縮率を前記第一及び第二グループの選択点の
    変位と乗算させて第一グループ自由制御点の変位を決定
    させ、且つ前記第二拡縮率を前記第一及び第二グループ
    の選択点の変位と乗算させて第二グループ自由制御点の
    変位を決定させる、上記各命令を有することを特徴とす
    るコンピュータプログラム。
  23. 【請求項23】 請求項18において、前記曲線がベジ
    ェセグメントを有する複合曲線であることを特徴とする
    コンピュータプログラム。
  24. 【請求項24】 コンピュータシステムにおけるグラフ
    ィカルユーザインターフェースを介してユーザの行為に
    応答して、各曲線が複数個の制御点によって画定されて
    いる複数個の曲線を修正するコンピュータによって読取
    可能な媒体上に存在するコンピュータプログラムにおい
    て、コンピュータシステムをして、 ユーザの入力に応答して、前記制御点の各々を固定制御
    点、選択制御点、又は自由制御点として識別させ、 各曲線の選択点の変位を受取らせ、 各曲線の自由制御点を複数個のラインのうちの対応する
    1つの点に対してマッピングさせ、 各ライン上の補間曲線を画定させ、 各ライン上の該点を対応する補間曲線に対して投影させ
    て各自由制御点に対する拡縮率を見つけ出させ、 前記拡縮率を前記選択制御点の変位と乗算させて自由制
    御点の変位を決定させる、上記各命令を有することを特
    徴とするコンピュータプログラム。
  25. 【請求項25】 請求項24において、前記曲線が複数
    個のベジェセグメントを有する複合曲線であることを特
    徴とするコンピュータプログラム。
  26. 【請求項26】 ベジェ曲線セグメントを形成するため
    のコンピュータによって読取可能な媒体上に存在するコ
    ンピュータプログラムにおいて、コンピュータシステム
    をして、 コンピュータシステムにおけるグラフィカルユーザイン
    ターフェースを介して第一セグメント端点の選択を受取
    らせ、 コンピュータディスプレイ上のカーソルの位置を第二セ
    グメント端点として受取らせ、 第一及び第二セグメント端点及び第一及び第二勾配点に
    よって画定されるベジェセグメントが円弧を近似するよ
    うに第一及び第二勾配点を演算させ、 演算されたベジェ曲線セグメントをコンピュータディス
    プレイ上に表示させる、上記各命令を有することを特徴
    とするコンピュータプログラム。
  27. 【請求項27】 請求項26において、更に、コンピュ
    ータシステムをして、 第二ベジェ曲線セグメントを第一ベジェ曲線セグメント
    へ連結させるコマンドを受取らせ、 第一曲線セグメントの第二セグメント端点を第二曲線セ
    グメントの第一セグメント端点として画定させ、 コンピュータディスプレイ上のカーソルの位置を第二曲
    線セグメントの第二セグメント端点として受取らせ、 その第一及び第二セグメント端点及びその第一及び第二
    勾配点によって画定される第二ベジェ曲線セグメントが
    円弧を近似するように第二曲線セグメントの第一及び第
    二勾配点を演算させ、 連結させた第一及び第二ベジェ曲線セグメントをコンピ
    ュータディスプレイ上に表示させる、上記各命令を有す
    ることを特徴とするコンピュータプログラム。
  28. 【請求項28】 コンピュータシステムにおけるグラフ
    ィカルユーザインターフェースを介してユーザの行為に
    応答して、複数個の制御点によって画定されており且つ
    2つの曲線端点を有する曲線を修正するコンピュータに
    よって実行される方法において、 勾配調節点を画定し、 前記勾配調節点のグラフィカルユーザインターフェース
    を介して変位を受取り、 前記曲線の制御点をラインt上の点Tpに対してマッピ
    ングし、 ラインt上の補間曲線IC(t)を画定し、 点Tpをt=Tpにおいて補間曲線IC(t)の値に対
    して投影させて拡縮率を見つけ出し、 前記拡縮率と前記選択点の変位とを乗算させて自由制御
    点の変位を決定する、ことを特徴とする方法。
  29. 【請求項29】 請求項28において、前記補間曲線I
    C(t)がバーンスタイン(Bernstein)多項
    式であることを特徴とする方法。
  30. 【請求項30】 請求項28において、前記曲線がベジ
    ェ曲線セグメントを有する複合曲線であることを特徴と
    する方法。
  31. 【請求項31】 請求項28において、更に、 前記曲線端点と一致するセグメント端点を有するベジェ
    曲線セグメントを画定し、 前記勾配調節点として前記ベジェ曲線セグメントの勾配
    点のうちの1つを使用する、ことを特徴とする方法。
  32. 【請求項32】 コンピュータシステムにおけるグラフ
    ィカルユーザインターフェースを介してユーザの行為に
    応答して、複数個の制御点によって画定される曲線を修
    正するコンピュータによって読取可能な媒体上に存在す
    るコンピュータプログラムにおいて、コンピュータシス
    テムをして、 勾配調節点を画定させ、 前記勾配調節点のグラフィカルユーザインターフェース
    を介して変位を受取らせ、 ラインt上の点Tpに対して前記曲線の制御点をマッピ
    ングさせ、 ラインt上に補間曲線IC(t)を画定させ、 t=Tpにおいて点Tpを補間曲線IC(t)の値に対
    して投影させて拡縮率を見つけ出させ、 前記拡縮率を前記選択点の変位と乗算させて自由制御点
    の変位を決定させる、上記各命令を有することを特徴と
    するコンピュータプログラム。
  33. 【請求項33】 請求項32において、前記補間曲線I
    C(t)がバーンスタイン(Bernstein)多項
    式であることを特徴とするコンピュータプログラム。
  34. 【請求項34】 請求項32において、前記曲線がベジ
    ェ曲線セグメントを有する複合曲線であることを特徴と
    するコンピュータプログラム。
  35. 【請求項35】 請求項32において、更に、コンピュ
    ータシステムをして、 前記曲線端点と一致するセグメント端点を有するベジェ
    曲線セグメントを画定させ、 前記勾配調節点として前記ベジェ曲線セグメントの勾配
    点のうちの1つを使用させる、上記各命令を有すること
    を特徴とするコンピュータプログラム。
JP33537997A 1996-12-05 1997-12-05 コンピュータディスプレイ上での曲線の形成及び修正 Expired - Fee Related JP4153065B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/761186 1996-12-05
US08/761,186 US6111588A (en) 1996-12-05 1996-12-05 Creating and modifying curves on a computer display

Publications (2)

Publication Number Publication Date
JPH10293859A true JPH10293859A (ja) 1998-11-04
JP4153065B2 JP4153065B2 (ja) 2008-09-17

Family

ID=25061433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33537997A Expired - Fee Related JP4153065B2 (ja) 1996-12-05 1997-12-05 コンピュータディスプレイ上での曲線の形成及び修正

Country Status (5)

Country Link
US (1) US6111588A (ja)
EP (1) EP0847028B1 (ja)
JP (1) JP4153065B2 (ja)
CA (1) CA2220375A1 (ja)
DE (1) DE69727200T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308619A (ja) * 1999-04-28 2000-11-07 Toshiba Iyo System Engineering Kk 関心領域形状の修正方法および医用画像表示装置
JP2006061698A (ja) * 2004-08-27 2006-03-09 General Electric Co <Ge> 関心領域を指示するためのユーザ対話式の方法
JP2007185947A (ja) * 2005-11-09 2007-07-26 Boeing Co:The 複合テープコースを規定するコンピュータで実現される方法、複合テープコースを規定するためのコンピュータプログラムプロダクトおよびテープコース生成機
JP2008173764A (ja) * 2007-01-18 2008-07-31 Fritz Studer Ag 可動工具の制御方法、入力装置及び工作機械
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
AUPP557898A0 (en) * 1998-08-28 1998-09-24 Canon Kabushiki Kaisha Method and apparatus for orientating a character stroke
US6674435B1 (en) * 1998-09-16 2004-01-06 Texas Instruments Incorporated Fast, symmetric, integer bezier curve to polygon conversion
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US6462739B1 (en) * 1999-03-18 2002-10-08 Abode Systems Incorporated Curve smoothing without shrinking
US6469702B1 (en) 1999-04-16 2002-10-22 Avid Technology, Inc. Method and system for editing function curves in two dimensions
US6784886B1 (en) * 2000-08-28 2004-08-31 Adobe Systems Incorporated Method for apparatus for associating objects with a spline by value
US6765589B1 (en) * 2000-11-16 2004-07-20 Adobe Systems Incorporated Brush for warping and water reflection effects
US6963350B1 (en) 2001-07-03 2005-11-08 Adobe Systems Incorporated Painting interface to computer drawing system curve editing
US6757613B2 (en) * 2001-12-20 2004-06-29 Schlumberger Technology Corporation Graphical method for designing the trajectory of a well bore
US8576232B2 (en) * 2001-12-31 2013-11-05 Siemens Product Lifecycle Management Software Inc. Apparatus, method, and system for drafting multi-dimensional drawings
GB2406028A (en) * 2003-09-11 2005-03-16 Autodesk Canada Inc Tangent handle adjustment for Bezier curves
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
EP1562138B1 (en) * 2004-02-06 2009-08-19 Dassault Systèmes A process for drafting a curve in a computer-aided design system
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
WO2008028674A2 (en) 2006-09-08 2008-03-13 Exbiblio B.V. Optical scanners, such as hand-held optical scanners
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US8081849B2 (en) 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US20060098900A1 (en) 2004-09-27 2006-05-11 King Martin T Secure data gathering from rendered documents
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
DE102004022320A1 (de) * 2004-05-06 2005-11-24 Daimlerchrysler Ag Elektronische Konstruktionsvorrichtung
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
JP4255449B2 (ja) * 2005-03-01 2009-04-15 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、テクスチャ処理装置、およびテセレーション方法
US7405733B2 (en) * 2005-03-24 2008-07-29 Autodesk Canada Co. Spline drawing in a computer-implemented graphics program
JP4540123B2 (ja) * 2007-04-10 2010-09-08 富士フイルム株式会社 曲線修正方法および装置並びにプログラム
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
CN101354639A (zh) * 2007-07-25 2009-01-28 联想(北京)有限公司 在终端之间操作对象的方法及终端
US8643644B2 (en) * 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering
JP2009271909A (ja) * 2008-04-08 2009-11-19 Canon Inc 図形描画編集システム、図形描画編集装置及び図形描画編集方法
KR20100070733A (ko) * 2008-12-18 2010-06-28 삼성전자주식회사 아이템 표시방법 및 이를 적용한 디스플레이 장치
US8418055B2 (en) 2009-02-18 2013-04-09 Google Inc. Identifying a document by performing spectral analysis on the contents of the document
EP2406767A4 (en) 2009-03-12 2016-03-16 Google Inc AUTOMATIC CONTENT SUPPLY ASSOCIATED WITH CAPTURED INFORMATION, TYPE INFORMATION CAPTURED IN REAL TIME
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US8521484B2 (en) * 2010-06-02 2013-08-27 Livermore Software Technology Corp. Curve matching for parameter identification
TWI476640B (zh) 2012-09-28 2015-03-11 Ind Tech Res Inst 時間資料序列的平滑化方法與裝置
US20140098142A1 (en) * 2012-10-09 2014-04-10 School Yourself, Inc. System and method for generation and manipulation of a curve in a dynamic graph based on user input
RU2608885C2 (ru) 2014-06-30 2017-01-25 Общество С Ограниченной Ответственностью "Яндекс" Способ определения точки кривой, ближайшей к позиции на карте
US9322666B2 (en) * 2014-06-30 2016-04-26 Yandex Europe Ag Method for displaying a position on a map
CN107767429B (zh) * 2016-08-18 2021-11-16 阿里巴巴集团控股有限公司 曲线生成方法及设备
CN109521731B (zh) * 2017-09-19 2021-07-30 沈阳高精数控智能技术股份有限公司 一种基于公差带的G2连续Bézier刀具轨迹平滑算法
CN111443864B (zh) * 2020-04-14 2023-03-07 重庆赋比兴科技有限公司 基于iOS的曲线绘制方法
CN114491377A (zh) * 2020-11-13 2022-05-13 北京广利核系统工程有限公司 应用于核电站的斜率计算方法及装置
US11321884B1 (en) * 2021-03-19 2022-05-03 Adobe Inc. Generating candidate mirror snap points using determined axes of symmetry
US11769281B2 (en) * 2022-02-01 2023-09-26 Adobe Inc. Vector object transformation

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1274919A (en) * 1985-07-27 1990-10-02 Akio Ohba Method of forming curved surfaces and the apparatus
US4760548A (en) * 1986-06-13 1988-07-26 International Business Machines Corporation Method and apparatus for producing a curve image
GB2204216B (en) * 1987-04-30 1991-02-06 Ibm Curve generation in a display system
JP3000101B2 (ja) * 1987-08-19 2000-01-17 洋 牧野 軌跡制御補間方法
KR930002339B1 (ko) * 1989-04-20 1993-03-29 가부시기가이샤 도시바 짧은 직선 벡터의 곡선 세그멘트에 3차 베지어(Bzxier)곡선을 정합시키는 방법
FR2646256A1 (fr) * 1989-04-24 1990-10-26 Digital Equipment Int Procede pour realiser des dessins a l'aide d'un ordinateur
JPH03127186A (ja) * 1989-10-12 1991-05-30 Mitsubishi Electric Corp 描画方式
US5317682A (en) * 1989-10-24 1994-05-31 International Business Machines Corporation Parametric curve evaluation method and apparatus for a computer graphics display system
JP2734711B2 (ja) * 1990-01-12 1998-04-02 日本電気株式会社 曲線発生装置
JP3049096B2 (ja) * 1990-12-20 2000-06-05 株式会社リコー 曲面間のフィレット面生成方式
JP3137245B2 (ja) * 1991-10-30 2001-02-19 ソニー株式会社 自由曲線作成方法及び自由曲面作成方法
EP0551543A1 (en) * 1992-01-16 1993-07-21 Hewlett-Packard GmbH Method of modifying a geometric object and computer aided design system
US5588100A (en) * 1992-05-18 1996-12-24 Microsoft Corporation Method and system for creating a freeform drawing object
US5367617A (en) * 1992-07-02 1994-11-22 Microsoft Corporation System and method of hybrid forward differencing to render Bezier splines
JPH06110992A (ja) * 1992-09-25 1994-04-22 Agency Of Ind Science & Technol Cadシステムにおける形状変形入力操作方法
US5715473A (en) * 1992-12-29 1998-02-03 Apple Computer, Inc. Method and apparatus to vary control points of an outline font to provide a set of variations for the outline font
US5500927A (en) * 1993-03-18 1996-03-19 Macromedia, Inc. System and method for simplifying a computer-generated path
US5594852A (en) * 1994-08-17 1997-01-14 Laser Products, Inc. Method for operating a curve forming device
US5566288A (en) * 1994-09-02 1996-10-15 Caterpillar Inc. System and method for automatically fitting a B-spline curve to a set of data points
US5694535A (en) * 1995-03-24 1997-12-02 Novell, Inc. Direct interactive, constant-time curve apparatus and method

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000308619A (ja) * 1999-04-28 2000-11-07 Toshiba Iyo System Engineering Kk 関心領域形状の修正方法および医用画像表示装置
JP2006061698A (ja) * 2004-08-27 2006-03-09 General Electric Co <Ge> 関心領域を指示するためのユーザ対話式の方法
JP2007185947A (ja) * 2005-11-09 2007-07-26 Boeing Co:The 複合テープコースを規定するコンピュータで実現される方法、複合テープコースを規定するためのコンピュータプログラムプロダクトおよびテープコース生成機
JP2008173764A (ja) * 2007-01-18 2008-07-31 Fritz Studer Ag 可動工具の制御方法、入力装置及び工作機械
WO2015075930A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
WO2015075933A1 (en) * 2013-11-19 2015-05-28 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9430065B2 (en) 2013-11-19 2016-08-30 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9448648B2 (en) 2013-11-19 2016-09-20 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
JP2016532165A (ja) * 2013-11-19 2016-10-13 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム
JP6046298B1 (ja) * 2013-11-19 2016-12-14 株式会社ワコム デジタルインク出力方法、デジタルインクのレンダリング方法、及びデジタルインク出力装置
US9766804B2 (en) 2013-11-19 2017-09-19 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9875021B2 (en) 2013-11-19 2018-01-23 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9904465B2 (en) 2013-11-19 2018-02-27 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US9904466B2 (en) 2013-11-19 2018-02-27 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10078445B2 (en) 2013-11-19 2018-09-18 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10191653B2 (en) 2013-11-19 2019-01-29 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10331338B2 (en) 2013-11-19 2019-06-25 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10409484B2 (en) 2013-11-19 2019-09-10 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10534530B2 (en) 2013-11-19 2020-01-14 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US10768805B2 (en) 2013-11-19 2020-09-08 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11023127B2 (en) 2013-11-19 2021-06-01 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11042292B2 (en) 2013-11-19 2021-06-22 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11169696B2 (en) 2013-11-19 2021-11-09 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11188223B2 (en) 2013-11-19 2021-11-30 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US11747976B2 (en) 2013-11-19 2023-09-05 Wacom Co., Ltd. Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication

Also Published As

Publication number Publication date
CA2220375A1 (en) 1998-06-05
EP0847028A2 (en) 1998-06-10
EP0847028B1 (en) 2004-01-14
DE69727200D1 (de) 2004-02-19
EP0847028A3 (en) 1999-11-03
JP4153065B2 (ja) 2008-09-17
US6111588A (en) 2000-08-29
DE69727200T2 (de) 2004-10-14

Similar Documents

Publication Publication Date Title
JPH10293859A (ja) コンピュータディスプレイ上での曲線の形成及び修正
CN109945888B (zh) 导航引导线的生成方法、装置及计算机设备
JPH06110992A (ja) Cadシステムにおける形状変形入力操作方法
US9984480B2 (en) Enhancing curves using non-uniformly scaled cubic variation of curvature curves
JP4146549B2 (ja) 軌跡制御方法及び軌跡制御方法を記録した記録媒体
JP6893349B2 (ja) アニメーション制作システム、アニメーション制作方法、及びプログラム
JP2006059176A (ja) マッピング装置とマッピング方法及びそのプログラム
JP3904363B2 (ja) 3次元形状処理システムにおける頂点移動処理装置、及び記録媒体
JP3799511B2 (ja) 透視図3次元nurb曲線自動復元方法及び装置
JP6026949B2 (ja) 曲面描画装置および曲面描画用プログラム
JP2011197925A (ja) 設計支援システムおよび設計支援プログラム
JPH056439A (ja) ベクトルデータ/イメージデータ変換方式
JPH09106321A (ja) 座標入力方法及びその装置
JPH0424774A (ja) 曲線描画機能を備えた情報処理装置および処理方法
JP3158368B2 (ja) 物体の表面形状データ作成方法及び装置
JP2018129005A (ja) 手話cg生成装置及びプログラム
JPH0378888A (ja) 図形データ処理装置における図形表示方法
JP4012949B2 (ja) 波形編集方法
JP4851542B2 (ja) ルート曲線生成システム、方法、及びプログラム
JP2005174163A (ja) メッシュ生成システム、メッシュ生成方法およびコンピュータ・プログラム
JPH0488511A (ja) ロボットの円弧姿勢補間方法
JP2000030082A (ja) 自由曲面の生成方法
JP2001202529A (ja) 軌道に沿ったスキニング曲面の生成方法、生成装置及び記憶媒体
JPH03160579A (ja) 図形描画装置
JP2003186925A (ja) 3次元形状処理装置および曲面内挿プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070927

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080319

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080610

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080703

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110711

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120711

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130711

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees