JP2004295317A - 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム - Google Patents
情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム Download PDFInfo
- Publication number
- JP2004295317A JP2004295317A JP2003084731A JP2003084731A JP2004295317A JP 2004295317 A JP2004295317 A JP 2004295317A JP 2003084731 A JP2003084731 A JP 2003084731A JP 2003084731 A JP2003084731 A JP 2003084731A JP 2004295317 A JP2004295317 A JP 2004295317A
- Authority
- JP
- Japan
- Prior art keywords
- point
- points
- anchor
- control
- input
- 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
Links
Images
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】ベジェ曲線を描画する際に、ユーザが表現したい特徴を忠実にベジェ曲線に反映できるようにすること。
【解決手段】ユーザによって入力されたアンカーポイントa、b、cを通過するベジェ曲線を描画する際に、アンカーポイントbを支点に直線abを回転させた直線L1および、アンカーポイントBを支点に直線bcを回転させた直線L2を求める。その後、それぞれの直線上に、コントロールポイントCb1、コントロールポイントCb2を求める。
【選択図】 図1
【解決手段】ユーザによって入力されたアンカーポイントa、b、cを通過するベジェ曲線を描画する際に、アンカーポイントbを支点に直線abを回転させた直線L1および、アンカーポイントBを支点に直線bcを回転させた直線L2を求める。その後、それぞれの直線上に、コントロールポイントCb1、コントロールポイントCb2を求める。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、情報処理装置にかかり、詳細には、ベジェ曲線の描画機能を備えた情報処理装置および描画方法およびその方法をコンピュータに実行させるプログラムに関する。
【0002】
【従来の技術】
パーソナルコンピュータ等の情報処理装置を用いて業務を遂行する際に、ワードプロセッサ・アプリケーション、表計算アプリケーション、図形プロセッサ・アプリケーションといった複数のアプリケーションを用いて、文書やグラフ、図面といったデータファイルを作成することが一般的になってきている。
【0003】
このような情報処理装置において、道路地図や建築用図面等の各種図面を作成する場合、曲線を描画する必要があり、代表的な描画方法として、ベジェ関数によるベジェ曲線を使用する方法が知られている。
【0004】
ベジェ曲線の描画は、4つの制御点によって描画するもので、始点となるアンカーポイント、終点となるアンカーポイント、および2つのコントロールポイントを入力し、アンカーポイント2点を通過し、コントロールポイントの内側を通過する曲線が描画される。
【0005】
特開平7−85302では、ユーザにベジェ曲線が通過する点を指定するだけでベジェ曲線の描画を可能にしている。図7に示すように、アンカーポイントa、b、c入力した後、アンカーポイントbを通り、アンカーポイントaとアンカーポイントcを結んだ直線に平行な直線上に、コントロールポイントCb1、Cb2を設定する。次にアンカーポイントaとコントロールポイントCb1を結んだ直線上の中点位置にコントロールポイントCa2を設定する。このようなやり方でベジェ曲線を描画することが可能である。
【0006】
【発明が解決しようとする課題】
しかしながら、特開平7−85302でコントロールポイントを自動的に設定する方法において、コントロールポイントを算出する際の計算方法は1種類に決められている。そのため、ユーザが緩やかな曲線や尖った形の曲線を描こうとした場合にも、定められたの計算方法でコントロールポイントが算出されるために、アンカーポイントによって構成される角度によって表現される緩やかな曲線または尖った形の曲線の特徴が明確にならないという問題点があった。
【0007】
本発明は、上述した従来技術による問題点を解消するため、自動的にコントロールポイントを設定してベジェ曲線を描画する際に、コントロールポイントを決定する際に、所定のアンカーポイントを基準に回転させることによってコントロールポイントを求めることで、所望のベジェ曲線を描画することを可能にする情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラムを提供することを第1の目的とする。
【0008】
また、アンカーポイントによって構成される角の大きさによってコントロールポイントの算出方法を切り替えることで、ユーザが所望する曲線の特徴(なめらかな、もしくは尖った等)を反映したベジェ曲線を描画することを可能にする情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラムを提供することを第2の目的とする。
【0009】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項1に記載の発明にかかる情報処理装置は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度の分だけ、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定する、ことを特徴とする。
【0010】
この請求項1に記載の発明によれば、ユーザによって入力された角abcの角度を反映する形でベジェ曲線を描画することが可能になるため、ユーザが所望するベジェ曲線を描画することが可能になる。
【0011】
また、請求項2に記載の発明にかかる情報処理装置は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、角abcの角度により、コントロールポイントの算出処理を変更する、ことを特徴とする。
【0012】
この請求項2に記載の発明によれば、角abcの角度の大小によってコントロールポイントの算出処理を切り替えるために、ユーザが入力したアンカーポイントが成す角度を反映したベジェ曲線を描画することが可能になる。したがって、角abcが鋭角であれば、尖った形に、鈍角であればなめらかなベジェ曲線を描画することできる。
【0013】
また、請求項3に記載の発明にかかる描画方法は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定する、ことを特徴とする。
【0014】
この請求項3に記載の発明によれば、ユーザによって入力された角abcの角度を反映する形でベジェ曲線を描画することが可能になるため、ユーザが所望するベジェ曲線を描画することが可能になる。
【0015】
また、請求項4に記載の発明にかかる描画方法は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、角abcの角度によりコントロールポイントの計算処理を変更する、ことを特徴とする。
【0016】
この請求項4に記載の発明によれば、角abcの角度の大小によってコントロールポイントの算出処理を切り替えるために、ユーザが入力したアンカーポイントが成す角度をより反映したベジェ曲線を描画することが可能になる。したがって、角abcが鋭角であれば、尖った形に、鈍角であればなめらかなベジェ曲線を描画することできる。
【0017】
また、請求項5に記載の発明にかかるプログラムは、前記請求項3〜請求項4のいずれか1つに記載された方法をコンピュータに実行させることを特徴とする。
【0018】
【発明の実施の形態】
以下に添付図面を参照して、この発明による情報処理装置、情報処理方法およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。
【0019】
(発明の概要)
まず、本発明の概要を説明する。本発明は、道路地図や建築図面等の各種図面を作成する際に必要なベジェ曲線の描画する際に、アンカーポイントが入力された後に、自動的にコントロールポイントを算出し、入力されたアンカーポイントと、アンカーポイントから算出されたコントロールポイント2点、合計4点を用いて、ベジェ曲線を描画する。その際、アンカーポイントにより構成される角度によって、コントロールポイントの算出方法を切り替えることにより、アンカーポイントにより構成される角度を反映したベジェ曲線を描画する情報処理装置である。
【0020】
図1は、上記ベジェ曲線の描画方法の内容示す説明図である。図示するように、ユーザによって入力されたアンカーポイントa、b、cを通過するベジェ曲線を描画する際に、アンカーポイントbを支点に直線abを回転させた直線L1および、アンカーポイントbを支点に直線bcを回転させて直線L2、それぞれの直線上に、コントロールポイントCb1、コントロールポイントCb2を求める。
【0021】
次に、コントロールポイントCb1とアンカーポイントaを結ぶ直線aCb1上の中点を求め、この中点をコントロールポイントCa2とする。同様に、コントロールポイントCb2とアンカーポイントcを結ぶ直線Cb2c上の中点を求め、この中点をコントロールポイントCc1とする。
【0022】
このとき、アンカーポイントa、b、cからなる角abcの角度の大きさによって、直線abおよび直線bcを回転する角度を変更する。具体的には、角abcを2等分した角度をαとすると、角abcの角度が90度以上の場合は、90−α分の角度を点bを支点にして回転させることにより得られる直線上に、コントロールポイントCb1、Cb2を求める。一方、角abcの角度が90度未満の場合は、α分の角度のみ回転させることにより得られる直線上に、コントロールポイントCb1、Cb2を求める。
【0023】
(実施の形態1)
図2は、この発明の実施の形態1による情報処理装置1のハードウエア構成の一例を示す説明図である。図中、101は装置全体を制御するCPUを、102は基本入出力プログラムを記憶したROMを、103はCPU101のワークエリアとして使用されるRAMを、それぞれ示している。
【0024】
また、104はCPU101の制御にしたがってHD(ハードディスク)105に対するデータのリード/ライトを制御するHDD(ハードディスクドライブ)を、105はHDD104の制御にしたがって書き込まれたデータを記憶するHDを、それぞれ示している。
【0025】
また、106はCPU101の制御にしたがってFD(フレキシブルディスク)107に対するデータのリード/ライトを制御するFDD(フレキシブルディスクドライブ)を、107はFDD106の制御にしたがって書き込まれたデータを記憶する着脱自在のFDを、それぞれ示している。
【0026】
また、108はCPU101の制御にしたがってCD−RW109に対するデータのリード/ライトを制御するCD−RWドライブを、109はCD−RWドライブ108の制御にしたがって書き込まれたデータを記憶する着脱自在のCD−RWを、それぞれ示している。
【0027】
また、110はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、111は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、112は各種指示の選択や実行、処理対象の選択、マウスポインタの移動などを行うマウスを、それぞれ示している。
【0028】
また、113は通信ケーブル114を介してLAN(Local Area Network)やWAN(Wide Area Network)などのネットワークに接続され、当該ネットワークとCPU101とのインターフェースとして機能するネットワークI/Fを、100は上記各部を接続するためのバスを、それぞれ示している。
【0029】
次に、図3はこの発明の実施の形態1による情報処理装置1の構成を機能的に示す説明図である。
【0030】
まず300は、入力部であり、マウス112等のポインティングデバイスにより、アンカーポイントの入力を受け付ける。すなわち、ユーザが描画したいベジェ曲線が通過する点をマウス112にて指定する。指定されたアンカーポイントは、格納部302によって、RAM103やHD105に記憶される。
また、キーボード111やマウス112などにより、文字入力やコマンド入力を受け付ける。
【0031】
301は、コントロールポイント設定部であり、まず、入力部300を通じて入力させたアンカーポイントの情報を格納部302から取得する。次に、CPU101は、アンカーポイントの情報を用いてコントロールポイントを計算し、その結果として得られたコントロールポイントの情報を格納部302に格納する。
【0032】
302は、格納部であり、入力部300によってユーザより入力を受け付けたアンカーポイントの情報や、コントロールポイント設定部301によって設定されたコントロールポイントの情報を、RAM103やHD105に記憶する。
【0033】
303は、描画部であり、格納部302に格納されているアンカーポイントおよびコントロールポイントの情報から、ベジェ曲線を描画する。ベジェ曲線の描画については、図4に示すように、4つの制御点を構成するアンカーポイントP0、P3、コントロールポイントP1、P2のうち、始点P0、終点P2を通り、2つのコントロールポイントを1、P2の方向と距離によって決定されるベジェ曲線が描画されることとなる。このベジェ曲線L0は、次の3次ベジェ関数B(t)によって演算される。
B(t)=(1−t)3・P0
+3(1−t)2・t・P1
+3(1−t)・t2・P2
+t3・P3
ここで、0≦t≦1である。
【0034】
304は、表示部であり、描画部303により演算されたベジェ曲線をディスプレイ110に表示する。
【0035】
なお、上述した入力部300、コントロールポイント設定部301、格納部302、描画部303、表示部304は、具体的にはHD105からRAM103に読み出されたプログラムをCPU101が実行することにより実現される。このプログラムはHD105のほか、FD107、CD−RW109、MOなどの各種の記録媒体に格納して配布することができ、ネットワークI/F113によりネットワークを介して配布することも可能である。
【0036】
次に、図5はこの発明の実施の形態1による情報処理装置1における、コントロールポイントの設定処理の手順を示すフローチャートである。
【0037】
まず、情報処理装置1のメニューやツールボックスなどから「図形作成」コマンドの入力を受け付ける。さらに、メニューやツールボックスなどから「ベジェ曲線の描画」コマンドの入力を受け付け、ベジェ曲線の描画処理を開始する。
【0038】
マウス112等の操作により、アンカーポイントa、b、cの3点を入力を受け付ける(S500)。CPU101は、入力されたアンカーポイントa、b、cのうち、点bを基準とし、点bからX軸と水平方向に基準点b’を設定し(S501)、角b’baの角度Aを求める。同様に、角b’bcの角度Cを求める(S502)。このとき、時計回りの方向を正の角度、その逆を負の角度とする。
また、基準点b’は水平方向に設定したが、これに限定するものではなく、所望の位置に設定してもよい。
【0039】
次に、CPU101は、ベジェ曲線の特徴を明確にするための場合分けの基準となる角度αを計算する。角度Aが、角度Cに180度を加算した角度より大きいかどうかを確認し、大きい場合(S503:Yes)は、角度Aから360度を減算した角度を角度A2とする(S504a)。小さい場合(S503:No)は、角度Aの値を角度A2の値とする(S504b)。 同様に、角度Cが、角度Aに180度を加算した角度より大きいかどうかを確認し、大きい場合(S505:Yes)は、角度Cから360度を減算した角度を角度C2とする(S506a)。小さい場合(S505:No)は、角度Cの値を角度C2とする(S506b)。
角度A2から角度C2を減算した値を2で除算し、その値をαとする(S507)。
【0040】
次に、CPU101は、角度αから、制御点を得る際に点を回転させる角度βを求める。まず、「αが45度以上」の場合(S508:Yes)は、βは「90−α」とする(S509)。前記条件を満たさない場合(S508:No)は、次に、「αが−45度以下」であるかどうかを確認する。「αが−45度以下」の場合(S510:Yes)は、βは「−90−α」とする(S511)。それ以外の場合(S510:No)は、βの値は、αの値と同一とする(S512)。S507からS512の処理により、回転させる角度βが求められる。
【0041】
次に、CPU101は、仮のコントロールポイント点Pbaおよび点Pbcを求める。まず、直線baおよび直線bcを所定の値で除算して得られる長さL1、L2を計算する。その後、直線ba上で、点bから長さL1の位置にある点を点Pba、直線bc上で、点bから長さL2の位置にある点を点Pbcとする。ここでは、直線baおよび直線bcを3等分したうちの1つの長さを利用する(S513)。
【0042】
次に、点bを基準に点Pba、点Pbcを回転させる。このとき、正の方向へ角度β分回転させた点をコントロールポイントCb1とする。同様に、点Pbcも回転させるが、点bを基準に負の方向へ角度β分回転させた点をコントロールポイントCb2とする(S514)。
【0043】
次に、もう一方のコントロールポイントをそれぞれ求める。コントロールポイントCb1、Cb2とそれぞれ点a、点cを結んだ直線の中点を、コントロールポイントCa2、Cc1とする(S515)。ここで、直線の中点をもう一方のコントロールポイントの位置としたが、特にこれに限定するものではなく、所望の値を設定することで、直線上の任意の点を指定してもよい。
【0044】
アンカーポイントa、bおよびコントロールポイントCa2、Cb1の4点を用いてベジェ曲線abを描画し、アンカーポイントb、cおよびコントロールポイントCb2、Cc1を用いてベジェ曲線bc間を描画する(S516)。
【0045】
次に、図6はこの発明の実施の形態1による情報処理装置1における、アンカーポイントを用いたベジェ曲線の変更処理の設定処理の手順を示すフローチャートである。
【0046】
まず、マウス112やキーボード111により、既に描画されているベジェ曲線を選択する(S600)。この際、ベジェ曲線を選択する方法は特開平07−853301などの従来技術を用いる。
【0047】
次に、CPU101は、S600において選択されたベジェ曲線の情報を取得するために、ベジェ曲線の情報を格納する格納部302からアンカーポイントの座標およびコントロールポイントの座標等の情報および格納場所に関する情報を取得する(S601)。
【0048】
S601によって得られた情報により、アンカーポイントの位置を示す座標上に、アンカーポイントを示すマークを表示し(S602)、表示されたアンカーポイントのマークのうち、マウス112等で前記マークを指定することにより、ユーザが変更したい曲線の一部に関係するアンカーポイントの指定を受け付ける(S603)。図7aは、ベジェ曲線700上において、アンカーポイントのマーク701が指定された状態を示す図である。
【0049】
次に、CPU101は、アンカーポイントのマーク701の座標変更を受け付ける。ユーザは、マウス112を用いてマーク701をドラッグ&ドロップによりマーク701の座標を変更する(S604)。図7bは、マーク701を移動後の状態を示す図である。
【0050】
CPU101は、マーク701の移動された場合、該当するアンカーポイントの座標から関連するコントロールポイントの座標を再計算する(S605)。なお、再計算処理は、図5で示したフローチャート内で説明した手順にて行う。始点および終点となっているアンカーポイントが選択され、移動された場合は、直後および直前のアンカーポイントと、それぞれ2点のアンカーポイント(始点とその直後の点、終点とその直前の点)から計算されたコントロールポイントの座標が再計算される。始点および終点以外のアンカーポイントの座標が変更された場合には、対象となったアンカーポイントと、その直前および直後のアンカーポイントそれぞれとから計算されるコントロールポイントの座標が再計算される。
【0051】
移動されたアンカーポイントおよび、再計算処理にて算出されたコントロールポイントを用いて仮のベジェ曲線を描画する(S606)。
【0052】
なお、マーク701を移動している際に、仮のベジェ曲線を描画することで、移動後のベジェ曲線がどのような曲線として描画されるのかをわかりやすくしてもよい。その際には、移動前のベジェ曲線との比較を容易にするために、移動前のベジェ曲線は通常の線種で描画し、仮のベジェ曲線は、点線や波線など移動前のベジェ曲線とは異なる線種で描画してもよい。また、線種の他に色や太さを変更してもよい。
【0053】
この変更処理は、ユーザによって入力されたアンカーポイントを、マウス112等で移動するだけで、入力済みベジェ曲線の形状を変更することが可能になる。そのため、容易にユーザが所望するベジェ曲線を描画することが可能になる。
【0054】
以上説明した実施の形態1によれば、3点のアンカーポイントが構成する角度により、ベジェ曲線の描画方法を変更できるため、ユーザがよりなめらかな曲線を描画したい場合は、前記角度が所定の値よりも大きくなるようにアンカーポイントを設定することで描画することが可能である。また、ユーザが尖形に近い曲線を描画したい場合は、前記角度を所定の値よりも小さくなるようにアンカーポイントを設定することで描画することが可能である。
【0055】
したがって、ユーザは曲線を描画する際に、アンカーポイントの入力位置を意識するだけで、所望の曲線を描画することができるので、従来の描画方法と違い、アンカーポイントを設定した後に、コントロールポイントの位置を移動することで曲線の状態を設定する必要がなく、かつ情報処理装置に予め設定されている1種類の描画方法のみで描画された場合と異なり、なめらかな箇所および尖った箇所の特徴をより明確に表現できるため、ユーザが所望のベジェ曲線を容易に描画することが可能になる。
【0056】
また、実施の形態1では、コントロールポイントの設定処理において、条件分岐の際に、3つの条件を用いたが、この条件をさらに追加してもよい。これにより、さらにユーザが所望するベジェ曲線を描画することが可能になる。
【0057】
【発明の効果】
以上説明したように請求項1に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定するので、ユーザが入力したアンカーポイントが構成する角の大きさを反映したベジェ曲線を描画することができる。これにより、ユーザは、入力するアンカーポイントが構成する角度のみを考慮することで所望のベジェ曲線を描画することが可能な情報処理装置が得られるという効果を奏する。
【0058】
また、請求項2に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、角abcの角度により、コントロールポイントの算出処理を変更するので、ユーザが入力したアンカーポイントが構成する角の大きさによって、角度が大きい場合、もしくは小さい場合などでコントロールポイントの算出方法を変更することができるので、ユーザが表現したい曲線をより明確に表現することが可能なベジェ曲線を描画できる情報処理装置が得られるという効果を奏する。特に、角度を鋭角にするだけで、尖った形のベジェ曲線を描画することができる。
【0059】
また、請求項3に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定するので、ユーザが入力したアンカーポイントが構成する角の大きさを反映したベジェ曲線を描画することができる。これにより、ユーザは、入力するアンカーポイントが構成する角度のみを考慮することで所望のベジェ曲線を描画することが可能な描画方法が得られるという効果を奏する。
【0060】
また、請求項4に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、角abcの角度によりコントロールポイントの計算処理を変更するので、ユーザが表現したい曲線をより明確に表現することが可能なベジェ曲線を描画できる情報処理装置が得られるという効果を奏する。特に、角度を鋭角にするだけで、尖った形のベジェ曲線を描画することができる。
【0061】
また、請求項5に記載の発明によれば、前記請求項3または4に記載された方法をコンピュータに実行させることが可能なプログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施の形態による情報処理装置の、入力されたアンカーポイントからコントロールポイントを自動設定する場合の状態を示す説明図である。
【図2】この発明の実施の形態1による情報処理装置の、ハードウエア構成の一例を示す説明図である。
【図3】この発明の実施の形態1による情報処理装置の構成を機能的に示す説明図である。
【図4】ベジェ曲線による曲線の描画状態を示す説明図である。
【図5】この発明の実施の形態1による情報処理装置における、コントロールポイントの決定手順を示すフローチャートである。
【図6】この発明の実施の形態1による情報処理装置における、ベジェ曲線の形状を変更する処理の手順を示すフローチャートである。
【図7】ベジェ曲線の描画方法を示す説明図である。
【図8】ベジェ曲線の変形方法を示す説明図である。
【符号の説明】
100 バス
101 CPU
102 ROM
103 RAM
104 HDD
105 HD
106 FDD
107 FD
108 CD−RWドライブ
109 CD−RW
110 ディスプレイ
111 キーボード
112 マウス
113 ネットワークI/F
114 通信ケーブル
300 入力部
301 コントロールポイント決定部
302 格納部
303 描画部
304 表示部
【発明の属する技術分野】
この発明は、情報処理装置にかかり、詳細には、ベジェ曲線の描画機能を備えた情報処理装置および描画方法およびその方法をコンピュータに実行させるプログラムに関する。
【0002】
【従来の技術】
パーソナルコンピュータ等の情報処理装置を用いて業務を遂行する際に、ワードプロセッサ・アプリケーション、表計算アプリケーション、図形プロセッサ・アプリケーションといった複数のアプリケーションを用いて、文書やグラフ、図面といったデータファイルを作成することが一般的になってきている。
【0003】
このような情報処理装置において、道路地図や建築用図面等の各種図面を作成する場合、曲線を描画する必要があり、代表的な描画方法として、ベジェ関数によるベジェ曲線を使用する方法が知られている。
【0004】
ベジェ曲線の描画は、4つの制御点によって描画するもので、始点となるアンカーポイント、終点となるアンカーポイント、および2つのコントロールポイントを入力し、アンカーポイント2点を通過し、コントロールポイントの内側を通過する曲線が描画される。
【0005】
特開平7−85302では、ユーザにベジェ曲線が通過する点を指定するだけでベジェ曲線の描画を可能にしている。図7に示すように、アンカーポイントa、b、c入力した後、アンカーポイントbを通り、アンカーポイントaとアンカーポイントcを結んだ直線に平行な直線上に、コントロールポイントCb1、Cb2を設定する。次にアンカーポイントaとコントロールポイントCb1を結んだ直線上の中点位置にコントロールポイントCa2を設定する。このようなやり方でベジェ曲線を描画することが可能である。
【0006】
【発明が解決しようとする課題】
しかしながら、特開平7−85302でコントロールポイントを自動的に設定する方法において、コントロールポイントを算出する際の計算方法は1種類に決められている。そのため、ユーザが緩やかな曲線や尖った形の曲線を描こうとした場合にも、定められたの計算方法でコントロールポイントが算出されるために、アンカーポイントによって構成される角度によって表現される緩やかな曲線または尖った形の曲線の特徴が明確にならないという問題点があった。
【0007】
本発明は、上述した従来技術による問題点を解消するため、自動的にコントロールポイントを設定してベジェ曲線を描画する際に、コントロールポイントを決定する際に、所定のアンカーポイントを基準に回転させることによってコントロールポイントを求めることで、所望のベジェ曲線を描画することを可能にする情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラムを提供することを第1の目的とする。
【0008】
また、アンカーポイントによって構成される角の大きさによってコントロールポイントの算出方法を切り替えることで、ユーザが所望する曲線の特徴(なめらかな、もしくは尖った等)を反映したベジェ曲線を描画することを可能にする情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラムを提供することを第2の目的とする。
【0009】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項1に記載の発明にかかる情報処理装置は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度の分だけ、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定する、ことを特徴とする。
【0010】
この請求項1に記載の発明によれば、ユーザによって入力された角abcの角度を反映する形でベジェ曲線を描画することが可能になるため、ユーザが所望するベジェ曲線を描画することが可能になる。
【0011】
また、請求項2に記載の発明にかかる情報処理装置は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、角abcの角度により、コントロールポイントの算出処理を変更する、ことを特徴とする。
【0012】
この請求項2に記載の発明によれば、角abcの角度の大小によってコントロールポイントの算出処理を切り替えるために、ユーザが入力したアンカーポイントが成す角度を反映したベジェ曲線を描画することが可能になる。したがって、角abcが鋭角であれば、尖った形に、鈍角であればなめらかなベジェ曲線を描画することできる。
【0013】
また、請求項3に記載の発明にかかる描画方法は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定する、ことを特徴とする。
【0014】
この請求項3に記載の発明によれば、ユーザによって入力された角abcの角度を反映する形でベジェ曲線を描画することが可能になるため、ユーザが所望するベジェ曲線を描画することが可能になる。
【0015】
また、請求項4に記載の発明にかかる描画方法は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、角abcの角度によりコントロールポイントの計算処理を変更する、ことを特徴とする。
【0016】
この請求項4に記載の発明によれば、角abcの角度の大小によってコントロールポイントの算出処理を切り替えるために、ユーザが入力したアンカーポイントが成す角度をより反映したベジェ曲線を描画することが可能になる。したがって、角abcが鋭角であれば、尖った形に、鈍角であればなめらかなベジェ曲線を描画することできる。
【0017】
また、請求項5に記載の発明にかかるプログラムは、前記請求項3〜請求項4のいずれか1つに記載された方法をコンピュータに実行させることを特徴とする。
【0018】
【発明の実施の形態】
以下に添付図面を参照して、この発明による情報処理装置、情報処理方法およびその方法をコンピュータに実行させるプログラムの好適な実施の形態を詳細に説明する。
【0019】
(発明の概要)
まず、本発明の概要を説明する。本発明は、道路地図や建築図面等の各種図面を作成する際に必要なベジェ曲線の描画する際に、アンカーポイントが入力された後に、自動的にコントロールポイントを算出し、入力されたアンカーポイントと、アンカーポイントから算出されたコントロールポイント2点、合計4点を用いて、ベジェ曲線を描画する。その際、アンカーポイントにより構成される角度によって、コントロールポイントの算出方法を切り替えることにより、アンカーポイントにより構成される角度を反映したベジェ曲線を描画する情報処理装置である。
【0020】
図1は、上記ベジェ曲線の描画方法の内容示す説明図である。図示するように、ユーザによって入力されたアンカーポイントa、b、cを通過するベジェ曲線を描画する際に、アンカーポイントbを支点に直線abを回転させた直線L1および、アンカーポイントbを支点に直線bcを回転させて直線L2、それぞれの直線上に、コントロールポイントCb1、コントロールポイントCb2を求める。
【0021】
次に、コントロールポイントCb1とアンカーポイントaを結ぶ直線aCb1上の中点を求め、この中点をコントロールポイントCa2とする。同様に、コントロールポイントCb2とアンカーポイントcを結ぶ直線Cb2c上の中点を求め、この中点をコントロールポイントCc1とする。
【0022】
このとき、アンカーポイントa、b、cからなる角abcの角度の大きさによって、直線abおよび直線bcを回転する角度を変更する。具体的には、角abcを2等分した角度をαとすると、角abcの角度が90度以上の場合は、90−α分の角度を点bを支点にして回転させることにより得られる直線上に、コントロールポイントCb1、Cb2を求める。一方、角abcの角度が90度未満の場合は、α分の角度のみ回転させることにより得られる直線上に、コントロールポイントCb1、Cb2を求める。
【0023】
(実施の形態1)
図2は、この発明の実施の形態1による情報処理装置1のハードウエア構成の一例を示す説明図である。図中、101は装置全体を制御するCPUを、102は基本入出力プログラムを記憶したROMを、103はCPU101のワークエリアとして使用されるRAMを、それぞれ示している。
【0024】
また、104はCPU101の制御にしたがってHD(ハードディスク)105に対するデータのリード/ライトを制御するHDD(ハードディスクドライブ)を、105はHDD104の制御にしたがって書き込まれたデータを記憶するHDを、それぞれ示している。
【0025】
また、106はCPU101の制御にしたがってFD(フレキシブルディスク)107に対するデータのリード/ライトを制御するFDD(フレキシブルディスクドライブ)を、107はFDD106の制御にしたがって書き込まれたデータを記憶する着脱自在のFDを、それぞれ示している。
【0026】
また、108はCPU101の制御にしたがってCD−RW109に対するデータのリード/ライトを制御するCD−RWドライブを、109はCD−RWドライブ108の制御にしたがって書き込まれたデータを記憶する着脱自在のCD−RWを、それぞれ示している。
【0027】
また、110はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、111は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、112は各種指示の選択や実行、処理対象の選択、マウスポインタの移動などを行うマウスを、それぞれ示している。
【0028】
また、113は通信ケーブル114を介してLAN(Local Area Network)やWAN(Wide Area Network)などのネットワークに接続され、当該ネットワークとCPU101とのインターフェースとして機能するネットワークI/Fを、100は上記各部を接続するためのバスを、それぞれ示している。
【0029】
次に、図3はこの発明の実施の形態1による情報処理装置1の構成を機能的に示す説明図である。
【0030】
まず300は、入力部であり、マウス112等のポインティングデバイスにより、アンカーポイントの入力を受け付ける。すなわち、ユーザが描画したいベジェ曲線が通過する点をマウス112にて指定する。指定されたアンカーポイントは、格納部302によって、RAM103やHD105に記憶される。
また、キーボード111やマウス112などにより、文字入力やコマンド入力を受け付ける。
【0031】
301は、コントロールポイント設定部であり、まず、入力部300を通じて入力させたアンカーポイントの情報を格納部302から取得する。次に、CPU101は、アンカーポイントの情報を用いてコントロールポイントを計算し、その結果として得られたコントロールポイントの情報を格納部302に格納する。
【0032】
302は、格納部であり、入力部300によってユーザより入力を受け付けたアンカーポイントの情報や、コントロールポイント設定部301によって設定されたコントロールポイントの情報を、RAM103やHD105に記憶する。
【0033】
303は、描画部であり、格納部302に格納されているアンカーポイントおよびコントロールポイントの情報から、ベジェ曲線を描画する。ベジェ曲線の描画については、図4に示すように、4つの制御点を構成するアンカーポイントP0、P3、コントロールポイントP1、P2のうち、始点P0、終点P2を通り、2つのコントロールポイントを1、P2の方向と距離によって決定されるベジェ曲線が描画されることとなる。このベジェ曲線L0は、次の3次ベジェ関数B(t)によって演算される。
B(t)=(1−t)3・P0
+3(1−t)2・t・P1
+3(1−t)・t2・P2
+t3・P3
ここで、0≦t≦1である。
【0034】
304は、表示部であり、描画部303により演算されたベジェ曲線をディスプレイ110に表示する。
【0035】
なお、上述した入力部300、コントロールポイント設定部301、格納部302、描画部303、表示部304は、具体的にはHD105からRAM103に読み出されたプログラムをCPU101が実行することにより実現される。このプログラムはHD105のほか、FD107、CD−RW109、MOなどの各種の記録媒体に格納して配布することができ、ネットワークI/F113によりネットワークを介して配布することも可能である。
【0036】
次に、図5はこの発明の実施の形態1による情報処理装置1における、コントロールポイントの設定処理の手順を示すフローチャートである。
【0037】
まず、情報処理装置1のメニューやツールボックスなどから「図形作成」コマンドの入力を受け付ける。さらに、メニューやツールボックスなどから「ベジェ曲線の描画」コマンドの入力を受け付け、ベジェ曲線の描画処理を開始する。
【0038】
マウス112等の操作により、アンカーポイントa、b、cの3点を入力を受け付ける(S500)。CPU101は、入力されたアンカーポイントa、b、cのうち、点bを基準とし、点bからX軸と水平方向に基準点b’を設定し(S501)、角b’baの角度Aを求める。同様に、角b’bcの角度Cを求める(S502)。このとき、時計回りの方向を正の角度、その逆を負の角度とする。
また、基準点b’は水平方向に設定したが、これに限定するものではなく、所望の位置に設定してもよい。
【0039】
次に、CPU101は、ベジェ曲線の特徴を明確にするための場合分けの基準となる角度αを計算する。角度Aが、角度Cに180度を加算した角度より大きいかどうかを確認し、大きい場合(S503:Yes)は、角度Aから360度を減算した角度を角度A2とする(S504a)。小さい場合(S503:No)は、角度Aの値を角度A2の値とする(S504b)。 同様に、角度Cが、角度Aに180度を加算した角度より大きいかどうかを確認し、大きい場合(S505:Yes)は、角度Cから360度を減算した角度を角度C2とする(S506a)。小さい場合(S505:No)は、角度Cの値を角度C2とする(S506b)。
角度A2から角度C2を減算した値を2で除算し、その値をαとする(S507)。
【0040】
次に、CPU101は、角度αから、制御点を得る際に点を回転させる角度βを求める。まず、「αが45度以上」の場合(S508:Yes)は、βは「90−α」とする(S509)。前記条件を満たさない場合(S508:No)は、次に、「αが−45度以下」であるかどうかを確認する。「αが−45度以下」の場合(S510:Yes)は、βは「−90−α」とする(S511)。それ以外の場合(S510:No)は、βの値は、αの値と同一とする(S512)。S507からS512の処理により、回転させる角度βが求められる。
【0041】
次に、CPU101は、仮のコントロールポイント点Pbaおよび点Pbcを求める。まず、直線baおよび直線bcを所定の値で除算して得られる長さL1、L2を計算する。その後、直線ba上で、点bから長さL1の位置にある点を点Pba、直線bc上で、点bから長さL2の位置にある点を点Pbcとする。ここでは、直線baおよび直線bcを3等分したうちの1つの長さを利用する(S513)。
【0042】
次に、点bを基準に点Pba、点Pbcを回転させる。このとき、正の方向へ角度β分回転させた点をコントロールポイントCb1とする。同様に、点Pbcも回転させるが、点bを基準に負の方向へ角度β分回転させた点をコントロールポイントCb2とする(S514)。
【0043】
次に、もう一方のコントロールポイントをそれぞれ求める。コントロールポイントCb1、Cb2とそれぞれ点a、点cを結んだ直線の中点を、コントロールポイントCa2、Cc1とする(S515)。ここで、直線の中点をもう一方のコントロールポイントの位置としたが、特にこれに限定するものではなく、所望の値を設定することで、直線上の任意の点を指定してもよい。
【0044】
アンカーポイントa、bおよびコントロールポイントCa2、Cb1の4点を用いてベジェ曲線abを描画し、アンカーポイントb、cおよびコントロールポイントCb2、Cc1を用いてベジェ曲線bc間を描画する(S516)。
【0045】
次に、図6はこの発明の実施の形態1による情報処理装置1における、アンカーポイントを用いたベジェ曲線の変更処理の設定処理の手順を示すフローチャートである。
【0046】
まず、マウス112やキーボード111により、既に描画されているベジェ曲線を選択する(S600)。この際、ベジェ曲線を選択する方法は特開平07−853301などの従来技術を用いる。
【0047】
次に、CPU101は、S600において選択されたベジェ曲線の情報を取得するために、ベジェ曲線の情報を格納する格納部302からアンカーポイントの座標およびコントロールポイントの座標等の情報および格納場所に関する情報を取得する(S601)。
【0048】
S601によって得られた情報により、アンカーポイントの位置を示す座標上に、アンカーポイントを示すマークを表示し(S602)、表示されたアンカーポイントのマークのうち、マウス112等で前記マークを指定することにより、ユーザが変更したい曲線の一部に関係するアンカーポイントの指定を受け付ける(S603)。図7aは、ベジェ曲線700上において、アンカーポイントのマーク701が指定された状態を示す図である。
【0049】
次に、CPU101は、アンカーポイントのマーク701の座標変更を受け付ける。ユーザは、マウス112を用いてマーク701をドラッグ&ドロップによりマーク701の座標を変更する(S604)。図7bは、マーク701を移動後の状態を示す図である。
【0050】
CPU101は、マーク701の移動された場合、該当するアンカーポイントの座標から関連するコントロールポイントの座標を再計算する(S605)。なお、再計算処理は、図5で示したフローチャート内で説明した手順にて行う。始点および終点となっているアンカーポイントが選択され、移動された場合は、直後および直前のアンカーポイントと、それぞれ2点のアンカーポイント(始点とその直後の点、終点とその直前の点)から計算されたコントロールポイントの座標が再計算される。始点および終点以外のアンカーポイントの座標が変更された場合には、対象となったアンカーポイントと、その直前および直後のアンカーポイントそれぞれとから計算されるコントロールポイントの座標が再計算される。
【0051】
移動されたアンカーポイントおよび、再計算処理にて算出されたコントロールポイントを用いて仮のベジェ曲線を描画する(S606)。
【0052】
なお、マーク701を移動している際に、仮のベジェ曲線を描画することで、移動後のベジェ曲線がどのような曲線として描画されるのかをわかりやすくしてもよい。その際には、移動前のベジェ曲線との比較を容易にするために、移動前のベジェ曲線は通常の線種で描画し、仮のベジェ曲線は、点線や波線など移動前のベジェ曲線とは異なる線種で描画してもよい。また、線種の他に色や太さを変更してもよい。
【0053】
この変更処理は、ユーザによって入力されたアンカーポイントを、マウス112等で移動するだけで、入力済みベジェ曲線の形状を変更することが可能になる。そのため、容易にユーザが所望するベジェ曲線を描画することが可能になる。
【0054】
以上説明した実施の形態1によれば、3点のアンカーポイントが構成する角度により、ベジェ曲線の描画方法を変更できるため、ユーザがよりなめらかな曲線を描画したい場合は、前記角度が所定の値よりも大きくなるようにアンカーポイントを設定することで描画することが可能である。また、ユーザが尖形に近い曲線を描画したい場合は、前記角度を所定の値よりも小さくなるようにアンカーポイントを設定することで描画することが可能である。
【0055】
したがって、ユーザは曲線を描画する際に、アンカーポイントの入力位置を意識するだけで、所望の曲線を描画することができるので、従来の描画方法と違い、アンカーポイントを設定した後に、コントロールポイントの位置を移動することで曲線の状態を設定する必要がなく、かつ情報処理装置に予め設定されている1種類の描画方法のみで描画された場合と異なり、なめらかな箇所および尖った箇所の特徴をより明確に表現できるため、ユーザが所望のベジェ曲線を容易に描画することが可能になる。
【0056】
また、実施の形態1では、コントロールポイントの設定処理において、条件分岐の際に、3つの条件を用いたが、この条件をさらに追加してもよい。これにより、さらにユーザが所望するベジェ曲線を描画することが可能になる。
【0057】
【発明の効果】
以上説明したように請求項1に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定するので、ユーザが入力したアンカーポイントが構成する角の大きさを反映したベジェ曲線を描画することができる。これにより、ユーザは、入力するアンカーポイントが構成する角度のみを考慮することで所望のベジェ曲線を描画することが可能な情報処理装置が得られるという効果を奏する。
【0058】
また、請求項2に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、アンカーポイントを入力する入力手段と、前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、角abcの角度により、コントロールポイントの算出処理を変更するので、ユーザが入力したアンカーポイントが構成する角の大きさによって、角度が大きい場合、もしくは小さい場合などでコントロールポイントの算出方法を変更することができるので、ユーザが表現したい曲線をより明確に表現することが可能なベジェ曲線を描画できる情報処理装置が得られるという効果を奏する。特に、角度を鋭角にするだけで、尖った形のベジェ曲線を描画することができる。
【0059】
また、請求項3に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定するので、ユーザが入力したアンカーポイントが構成する角の大きさを反映したベジェ曲線を描画することができる。これにより、ユーザは、入力するアンカーポイントが構成する角度のみを考慮することで所望のベジェ曲線を描画することが可能な描画方法が得られるという効果を奏する。
【0060】
また、請求項4に記載の発明は、曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、アンカーポイントを入力する入力工程と、前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、角abcの角度によりコントロールポイントの計算処理を変更するので、ユーザが表現したい曲線をより明確に表現することが可能なベジェ曲線を描画できる情報処理装置が得られるという効果を奏する。特に、角度を鋭角にするだけで、尖った形のベジェ曲線を描画することができる。
【0061】
また、請求項5に記載の発明によれば、前記請求項3または4に記載された方法をコンピュータに実行させることが可能なプログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施の形態による情報処理装置の、入力されたアンカーポイントからコントロールポイントを自動設定する場合の状態を示す説明図である。
【図2】この発明の実施の形態1による情報処理装置の、ハードウエア構成の一例を示す説明図である。
【図3】この発明の実施の形態1による情報処理装置の構成を機能的に示す説明図である。
【図4】ベジェ曲線による曲線の描画状態を示す説明図である。
【図5】この発明の実施の形態1による情報処理装置における、コントロールポイントの決定手順を示すフローチャートである。
【図6】この発明の実施の形態1による情報処理装置における、ベジェ曲線の形状を変更する処理の手順を示すフローチャートである。
【図7】ベジェ曲線の描画方法を示す説明図である。
【図8】ベジェ曲線の変形方法を示す説明図である。
【符号の説明】
100 バス
101 CPU
102 ROM
103 RAM
104 HDD
105 HD
106 FDD
107 FD
108 CD−RWドライブ
109 CD−RW
110 ディスプレイ
111 キーボード
112 マウス
113 ネットワークI/F
114 通信ケーブル
300 入力部
301 コントロールポイント決定部
302 格納部
303 描画部
304 表示部
Claims (5)
- 曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、
アンカーポイントを入力する入力手段と、
前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、
前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、
前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、
前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定する、
ことを特徴とする情報処理装置。 - 曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置において、
アンカーポイントを入力する入力手段と、
前記入力手段により入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定手段と、
前記入力されたアンカーポイントと、前記コントロールポイント決定手段により決定されたコントロールポイントからベジェ曲線を描画する描画手段と、
前記描画手段により描画されるベジェ曲線を表示する表示手段と、を備え、
前記コントロールポイント決定手段は、abcの順に入力されたアンカーポイントに対して、角abcの角度により、コントロールポイントの算出処理を変更する、
ことを特徴とする情報処理装置。 - 曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、
アンカーポイントを入力する入力工程と、
前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、
前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、
前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、
前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、アンカーポイントbを基準に、角abcの角度から求められる所定の角度分、直線ab上の点および直線bc上の点を回転させることにより第1のコントロールポイントCb1,Cb2を決定し、アンカーポイントaおよびコントロールポイントCb1、アンカーポイントbおよびコントロールポイントCb2それぞれにより、第2のコントロールポイントを決定する、
ことを特徴とする描画方法。 - 曲線が通過する2つのアンカーポイントと通過しない2つのコントロールポイントの4つの制御点からベジェ曲線を描画する情報処理装置を用いて、
アンカーポイントを入力する入力工程と、
前記入力されたアンカーポイントからコントロールポイントを決定するコントロールポイント決定工程と、
前記入力されたアンカーポイントと、前記決定されたコントロールポイントからベジェ曲線を描画する描画工程と、
前記描画工程により描画されるベジェ曲線を表示する表示工程と、を備え、
前記コントロールポイント決定工程は、abcの順に入力されたアンカーポイントに対して、角abcの角度によりコントロールポイントの計算処理を変更する、
ことを特徴とする描画方法。 - 前記請求項3〜請求項4のいずれか1つに記載された方法をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003084731A JP2004295317A (ja) | 2003-03-26 | 2003-03-26 | 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003084731A JP2004295317A (ja) | 2003-03-26 | 2003-03-26 | 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004295317A true JP2004295317A (ja) | 2004-10-21 |
Family
ID=33399831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003084731A Pending JP2004295317A (ja) | 2003-03-26 | 2003-03-26 | 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004295317A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100913422B1 (ko) | 2006-12-04 | 2009-08-21 | 한국전자통신연구원 | 곡선 디자인 시스템 및 방법 |
JP2010257460A (ja) * | 2009-04-21 | 2010-11-11 | Sony Computer Entertainment Inc | コンピュータグラフィックスシステムにおける立方ベジェ制御点の生成 |
-
2003
- 2003-03-26 JP JP2003084731A patent/JP2004295317A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100913422B1 (ko) | 2006-12-04 | 2009-08-21 | 한국전자통신연구원 | 곡선 디자인 시스템 및 방법 |
JP2010257460A (ja) * | 2009-04-21 | 2010-11-11 | Sony Computer Entertainment Inc | コンピュータグラフィックスシステムにおける立方ベジェ制御点の生成 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2443014C2 (ru) | Изменение диаграммы | |
KR102060839B1 (ko) | 3d 모델링된 객체의 설계 | |
JP6364893B2 (ja) | 端末装置、電子ホワイトボードシステム、電子ホワイトボードの入力支援方法、及びプログラム | |
JP2005149512A (ja) | 複数のオブジェクトを選択および操作するための方法およびシステム | |
JP2007518194A (ja) | 2次元cadドキュメントに対する表示優先度 | |
JP2904673B2 (ja) | 画像作成装置 | |
WO2009104218A1 (ja) | 地図表示装置 | |
JP2004295317A (ja) | 情報処理装置、描画方法およびその方法をコンピュータに実行させるプログラム | |
EP2553616B1 (en) | System and method for constraining curves in a cad system | |
US11132821B1 (en) | Providing graphical user interface tools for efficiently selecting handles in vector artwork on touch-based devices | |
JPH0434663A (ja) | 図面編集装置 | |
JP4094601B2 (ja) | カーソル管理方法及びそのプログラム | |
JP2021026705A (ja) | 情報処理装置、制御方法およびプログラム | |
JP7120364B1 (ja) | 情報処理装置およびプログラム | |
JP2935336B2 (ja) | 図形入出力装置 | |
JP2006065794A (ja) | 3次元形状表示装置、3次元形状表示方法及びその方法をコンピュータで実行させるプログラム | |
JP4670289B2 (ja) | 表示制御装置 | |
JP2022133117A (ja) | 情報処理装置とその制御方法及びプログラム | |
JPH08272994A (ja) | 情報処理装置および情報処理方法 | |
JP2022137964A (ja) | 情報処理装置およびプログラム | |
JPH0973550A (ja) | 図形編集装置 | |
JP2009151348A (ja) | 文書情報管理装置および文書情報管理プログラム | |
JPH11265404A (ja) | 図形処理システムおよび記憶媒体 | |
JP2008033795A (ja) | 画像処理装置及び方法、並びにプログラム及び記憶媒体 | |
JP2000251087A (ja) | 情報処理装置および情報処理方法および記憶媒体 |