(57)【特許請求の範囲】
【請求項１】
記憶部、表示部及び入力部を具備する図形処理装置における図形処理方法であって、
分割対象の楕円の情報を前記記憶部に記憶する工程と、
前記入力部より入力された前記分割対象の楕円の分割開始点と分割終了点及び分割数を前記記憶部に記憶する工程と、
前記入力部より入力された前記楕円を分割する平面の情報を前記記憶部に記憶する工程と、
前記記憶部に記憶された平面の情報に基づき、行列を求める工程と、
前記記憶部に記憶された分割開始点と分割終了点のそれぞれの座標を、前記行列に基づき、３次元座標に変換する工程と、
前記分割開始点の３次元座標と前記分割終了点の３次元座標のなす角度を求める工程と、
前記求めた角度と前記分割数に基づいて、前記楕円を分割する角度を算出する工程と、
前記算出した角度に従って、前記楕円の前記分割開始点と前記分割終了点の間を分割する工程と、
を有することを特徴とする図形処理方法。
【請求項２】
前記楕円の分割平面は、表示されているグリッドに基づいて入力されることを特徴とする請求項１に記載の図形処理方法。
【請求項３】
分割対象の楕円の情報を記憶する記憶手段と、
入力手段により入力された前記分割対象の楕円の分割開始点と分割終了点及び分割数を前記記憶手段に記憶する手段と、
前記入力手段により入力された前記楕円を分割する平面の情報を前記記憶手段に記憶する手段と、
前記記憶手段に記憶された平面の情報に基づき、行列を求める手段と、
前記記憶手段に記憶された分割開始点と分割終了点のそれぞれの座標を、前記行列に基づき、３次元座標に変換する手段と、
前記分割開始点の３次元座標と前記分割終了点の３次元座標のなす角度を求める手段と、
前記求めた角度と前記分割数に基づいて、前記楕円を分割する角度を算出する手段と、
前記算出した角度に従って、前記楕円の前記分割開始点と前記分割終了点の間を分割する手段と、
を有することを特徴とする図形処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形情報処理方法及び装置に関するものである。
【０００２】
【従来の技術】
従来、互いに直交する２直線に接する楕円を入力する時、一旦、これら２直線に接する適当な楕円を生成した後、ユーザにより、その楕円の回転、移動量を指定して、その楕円の形状を修正していた。
【０００３】
【発明が解決しようとする課題】
このため従来の方法によれば、互いに直交する２直線に接する楕円情報を入力する時、及び楕円を回転して微妙な形状の修正を行うときは、オペレータによる操作の熟練を要するためユーザに負担がかかり、なおかつ直交する２直線に接する楕円を精度良く描くのが難しいという問題があった。
【０００４】
本発明は上記従来例に鑑みてなされたもので、立体角度での楕円の分割を容易にした図形情報処理方法及び装置を提供することにある。
【０００５】
また本発明の目的は、楕円を立体角度で分割する際、その基準となる角度を任意の平面上で指定できる図形情報処理方法及び装置を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために本発明の図形情報処理装置は以下のような構成を備える。即ち、
分割対象の楕円の情報を記憶する記憶手段と、
入力手段により入力された前記分割対象の楕円の分割開始点と分割終了点及び分割数を前記記憶手段に記憶する手段と、
前記入力手段により入力された前記楕円を分割する平面の情報を前記記憶手段に記憶する手段と、
前記記憶手段に記憶された平面の情報に基づき、行列を求める手段と、
前記記憶手段に記憶された分割開始点と分割終了点のそれぞれの座標を、前記行列に基づき、３次元座標に変換する手段と、
前記分割開始点の３次元座標と前記分割終了点の３次元座標のなす角度を求める手段と、
前記求めた角度と前記分割数に基づいて、前記楕円を分割する角度を算出する手段と、
前記算出した角度に従って、前記楕円の前記分割開始点と前記分割終了点の間を分割する手段と、を有することを特徴とする。
【０００７】
上記目的を達成するために本発明の図形情報処理方法は以下のような工程を備える。即ち、
記憶部、表示部及び入力部を具備する図形処理装置における図形処理方法であって、
分割対象の楕円の情報を前記記憶部に記憶する工程と、
前記入力部より入力された前記分割対象の楕円の分割開始点と分割終了点及び分割数を前記記憶部に記憶する工程と、
前記入力部より入力された前記楕円を分割する平面の情報を前記記憶部に記憶する工程と、
前記記憶部に記憶された平面の情報に基づき、行列を求める工程と、
前記記憶部に記憶された分割開始点と分割終了点のそれぞれの座標を、前記行列に基づき、３次元座標に変換する工程と、
前記分割開始点の３次元座標と前記分割終了点の３次元座標のなす角度を求める工程と、
前記求めた角度と前記分割数に基づいて、前記楕円を分割する角度を算出する工程と、
前記算出した角度に従って、前記楕円の前記分割開始点と前記分割終了点の間を分割する工程と、を有することを特徴とする。
【０００８】
【発明の実施の形態】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。
【０００９】
［実施の形態１］
図１は、本発明の実施の形態１の図形処理装置における動作の流れを説明するフローチャート、図２は実施の形態１の図形処理装置の概略構成を示すブロック図である。
【００１０】
まず図２において、バス１（制御線、データ線及びアドレス線を含む）には、中央処理装置（ＣＰＵ）２、図１のフローチャートで示された制御プログラム等を記憶するリード・オンリ・メモリ（ＲＯＭ）３、ランダム・アクセス・メモリ（ＲＡＭ）４、及び入力インターフエース部５、ＣＲＴインターフェース部７、外部記憶インターフェース部９が接続されている。入力インターフェース部５は、キーボードやポインティングデバイス等を備えた入力部６とバス１との間の信号のやり取りを制御し、入力部６より入力された信号をバス１に出力している。ＣＲＴインターフエース部７はバス１よりの表示データを受取り、ＣＲＴや液晶等の表示部８に表示している。外部記憶装置インターフェース部９は、磁気ディスク、磁気テープ等の外部記憶装置１０にデータを記憶したり、記憶装置１０に記憶されているデータを読み出してバス１に出力している。
【００１１】
ＣＰＵ２は、ＲＯＭ３に記憶された制御プログラムに従って、ＲＡＭ４をワークエリアとして使用しながら、種々の処理及び制御、例えば図形入力制御、図形表示、ピック処理、隠面処理、内外判定等を行っている。入力部６は、例えばキーボード、タブレット（デジタイザ）、マウス等を含み、図形データを入力することができる。尚、この図形データは、例えば図示しないホストコンピュータから入力しても良い。表示部８は、必要に応じて複数のビット・マップ・プレーン等を含んでおり、複数のウインドウに各種図形を表示することができる。
【００１２】
次に図３を参照して、楕円を以下の構成要素に基づいて定義する。
（１）楕円の中心（Ｏ）
（２）楕円の長軸ベクトル（ａ）
楕円の長軸方向と同一方向で、楕円の長軸と同一の長さを持つベクトル（３）楕円の短軸ベクトル（ｂ）
楕円の短軸方向と同一方向で、楕円の短軸と同一の長さを持つベクトル次に、図１及び図２〜図９を参照して本発明の実施の形態１を説明するが、以下に述べる処理及び判断は、ＣＰＵ２がＲＯＭ３に記憶されているプログラムに従って行う。
【００１３】
以下に図１のフローチャートの順番に従って、実施の形態１における楕円形状入力方法について説明する。この処理は、例えば図３に示すような楕円を表すデータ及び、その楕円に接する２つの直線のデータが外部記憶装置１０に記憶されているものとする。まずステップＳ１で、その楕円と、その楕円に接する垂直な２直線のデータを外部記憶装置１０より読み出し、それら２直線がそれぞれＸ軸、Ｙ軸に平行になるように回転させたときの、２つの接線と楕円とを求める。
【００１４】
この処理を図４を参照して説明する。図４において、楕円Ｃ０と、楕円Ｃ０に対する２つの接線４０１，４０２のデータが外部記憶装置１０より読み出され、これら２つの接線４０１，４０２のそれぞれを点４１０を中心としてＸ軸、Ｙ軸に平行になるように回転させたときの、楕円Ｃ１と２つの直線４０３，４０４が示されている。具体的には、Ｘ軸と直線４０１とのなす角度φを求めて、楕円Ｃ０の中心、及び楕円Ｃ０の短軸、長軸ベクトルを角度φだけ時計回り方向に回転する。この変換後の楕円Ｃ１が、第１，２，３，４象限のいずれかにあるかによって、ケース(case)１，２，３，４と区別する。
【００１５】
尚、この元の楕円Ｃ０及び２つの直線４０１，４０２は、例えば入力部６より入力されたものであっても良い。こうして変換された楕円Ｃ１、接線４０３，４０４のデータをＲＡＭ４に格納する。
【００１６】
次に図１のステップＳ２に進み、変換後のＸ軸、Ｙ軸に平行な直線４０３，４０４の原点４１０のｙ座標、ｘ座標を（ｙ0，ｘ0）にセットする。即ち、ＲＡＭ４から直線４０３，４０４のデータを取り出して、ＣＰＵ２により、直線４０３の式をｙ＝ｙｙで表わし、直線４０４をｘ＝ｘｘで表すと、ｙ0←ｙｙｘ0←ｘｘとなり、これをＲＡＭ４に格納する。
【００１７】
次にステップＳ３に進み、ユーザの指示した移動基準点Ｐを認識する。即ち、図５において、例えばユーザが、入力部６のペン、デジタイザ、マウス等のポインティングデバイスにより指示した移動基準点、またはキーボードから数値で入力した移動基準点をＰにセットして、ＲＡＭ４に格納する。
【００１８】
次にステップＳ４において、ユーザの指示した移動先指定点Ｑを認識する。これも図５に示すように、ユーザが入力部６のペン、デジタイザ、マウス等のポインティングティデバイスを用いて指示した点、またはキーボードから数値で入力された移動先指定点をＱにセットして、ＲＡＭ４に格納する。
【００１９】
こうしてステップＳ５に進み、楕円Ｃ０の中心をＯとした時、角度θ＝∠ＰＯＱを算出する。即ち、ＲＡＭ４より、移動基準点Ｐ，移動先指定点Ｑ、元の楕円Ｃ０のデータを取り出して、ＣＰＵ２により楕円Ｃ０の中心をＯとした時の角度θ＝∠ＰＯＱを算出して、ＲＡＭ４に格納する。
【００２０】
ステップＳ６では、ステップＳ１で求めた変換後の楕円Ｃ１を、角度θだけＰＱ方向に回転した楕円Ｃ２（図６）を算出する。即ち、ＲＡＭ４より、ステップＳ１で求めた変換後の楕円Ｃ１のデータを取り出し、ＣＰＵ２により楕円Ｃ１を、図６に示すように、角度θだけＰＱ方向に回転した楕円Ｃ２のデータを求めてＲＡＭ４に格納する。
【００２１】
具体的には、例えば図５及び図６において、回転の向きを
Ｖ＝（ベクトル）ＯＰ×（ベクトル）ＰＱとしたとき、
ＶとＺ方向（ＸＹ平面に垂直な上向き方向）が同一ならば、反時計回り方向
一方、ＶとＺ方向が逆ならば、時計回り方向
と判定する。こうして判定された回転方向に、楕円Ｃ０の中心を中心として楕円Ｃ１の長軸及び短軸を角度θだけ回転する。
【００２２】
次にステップＳ７に進み、こうして回転された楕円Ｃ２のｘ，ｙ座標のそれぞれの最小値または最大値（ｘ1，ｙ1）を算出する。
【００２３】
これらｘ，ｙ座標の最小値及び最大値の算出法について以下に説明する。
【００２４】
まずステップＳ１の処理で判定された結果に基づいて、ケース１の場合には、
楕円Ｃ２のｘ座標の最小値(min)ｘ1、ｙ座標の最小値ｙ1ケース２の場合には、
楕円Ｃ２のｘ座標の最大値(max)ｘ1、ｙ座標の最小値ｙ1ケース３の場合には、
楕円Ｃ２のｘ座標の最大値ｘ1、ｙ座標の最大値ｙ1ケース４の場合には、楕円Ｃ２のｘ座標の最小値ｘ1、ｙ座標の最大値ｙ1をＣＰＵ２によって求め、ＲＡＭ４に格納する。（図７参照）
図７の例では、楕円Ｃ２は第１象限に位置しているので上述のケース１に該当し、ｘ座標の最小値ｘ1とｙ座標の最小値ｙ1が求められる。
【００２５】
これら座標値ｘ1，ｙ1求める方法は、楕円の式を、P(t)= C + a・cos(t) + b・sin(t) (0≦ t ＜2*π)とし、ここでＣ：楕円の中心、ａ：楕円の長軸ベクトル、ｂ：楕円の短軸ベクトル、ｔ：パラメータとし、ａ＝（ａｘ，ａｙ），ｂ＝（ｂｘ，ｂｙ）
Ｐ（ｔ）ｘ＝（Ｐ（ｔ）のｘ座標）
Ｐ（ｔ）ｙ＝（Ｐ（ｔ）のｙ座標）
としたとき、 ａｘ≠０の場合、 x1=min(P(arctan(bx/ax))x,P(arctan(bx/ax)+π)x) (case1,case4) x1=max(P(arctan(bx/ax))x,P(arctan(bx/ax)+π)x) (case2,case3) y1=min(P(arctan(by/ay))y,P(arctan(by/ay)+π)y) (case1,case2) y1=max(P(arctan(by/ay))y,P(arctan(by/ay)+π)y) (case3,case4) ａｘ＝０の場合、x1=min(bx,-bx) (case1,case4)x1=max(bx,-bx) (case2,case3)y1=min(ay,-ay) (case1,case2)y1=max(ay,-ay) (case3,case4)により求める。
【００２６】
次にステップＳ８に進み、ベクトルＶ＝（ｘ0−ｘ1，ｙ0−ｙ1）を求める。即ち、ｘ0，ｘ1，ｙ0，ｙ1の各データをＲＡＭ４から取り出し、ＣＰＵ２によりベクトルＶ＝（ｘ0−ｘ1，ｙ0−ｙ1）を算出して、その結果をＲＡＭ４に格納する。
【００２７】
次にステップＳ９に進み、楕円Ｃ２をベクトルＶだけ平行移動させた楕円をＣ３とする（図８）。即ち、ＲＡＭ４より、ベクトルＶ、楕円Ｃ２のデータを取り出し、ＣＰＵ２により楕円Ｃ２にベクトルＶだけ平行移動をかけた楕円Ｃ３のデータを算出して、ＲＡＭ４に格納する。
【００２８】
具体的には、楕円Ｃ２の中心をＯ２、楕円Ｃ３の中心をＯ３とした時、Ｏ３←（ベクトル）Ｏ２＋（ベクトル）Ｖとする。
【００２９】
次にステップＳ１０に進み、楕円Ｃ３にステップＳ１でかけた回転と逆の回転をかけた楕円を移動後の楕円とする。これには、楕円Ｃ３のデータ、角度φの値をＲＡＭ４により取り出し、ＣＰＵ２により楕円Ｃ３に、角度φだけ逆方向に回転変換をかけた楕円のデータを算出し、これを移動後の楕円Ｃ４のデータとしてＲＡＭ４に格納する（図９参照）。
【００３０】
次にステップＳ１１に進み、移動後の楕円Ｃ４を画面に表示する。即ち、移動後の楕円データをＲＡＭ４より取り出して表示部８の画面に表示する。そしてステップＳ１２に進み、ユーザが移動指示を継続しているか判定する。即ち、ユーザが入力部６のポインティングデバイス等を押したままであるかなどを認識して、移動指示を継続しているかどうかを判定する。移動指示が継続していればステップＳ４からのステップを実行し、継続していなかったら移動後の楕円データを外部記憶装置１０に格納して、本処理を終了する。
【００３１】
以上説明したように本発明の実施の形態１によれば、垂直な２直線に接する楕円を垂直な２直線に接したまま回転させることにより、２直線が交差する角を保持するような楕円弧を入力するときのように、微妙な楕円形状の入力・修正を簡単に、しかも正確にできるという効果がある。
【００３２】
［実施の形態２］
次に本発明の実施の形態２を説明する。この実施の形態２の図形処理装置の構成は、基本的に前述の実施の形態１の構成と同様であるので、その説明を省略する。
【００３３】
この実施の形態２は、ＣＡＤ等のような２次元図形を処理する装置において、楕円の分割点を立体角度で指定して、容易に楕円を所望の領域に分割することにある。以下、この処理を図１０のフローチャートを参照して説明する。
【００３４】
まず、最初にオペレータは、分割点を指定したい楕円を入力部６のポインティングデバイスなどによりクリックして指定するとステップＳ２１に進み、分割対象となる楕円情報を抽出し、その楕円情報をＲＡＭ４に格納する。次にステップＳ２２に進み、オペレータは入力部６を用いて、楕円の分割の開始点、終了点を指示する。また、分割数を入力部６より入力する。これは例えば、図１１において、分割の開始点１１１、終了点１１２、分割区間１１３を表し、分割点は楕円の円周上の点とする。ここで分割数とは、その分割区間１１３を幾つに分割するかを指示する値であり、作成される分割点の数と一致する。即ち、いま分割数を“２”と指示すると、分割点は開始点１１１、終了点１１２と一致する。こうして指示された分割開始点１１１、終了点１１２、分割数を、それぞれＲＡＭ４に格納する。
【００３５】
続いてステップＳ２３に進み、オペレータは分割を行う平面を指示する。これは図１２において、指示可能な平面は立体図の作図の際、最も使用頻度の高い３つの等測面、即ちＸ面１１４、Ｙ面１１５、Ｚ面１１６である。ステップＳ２３の分割平面抽出ステップでは、これを受けて指示された平面をＲＡＭ４に格納する。
【００３６】
以上の情報の処理が終了するとステップＳ２４に進み、分割点の計算及び表示を行ない、分割点の計算をＣＰＵ２にて実行する。まず、ステップＳ２３の平面抽出ステップで、ＲＡＭ４に格納した平面情報を参照し、そのＸ軸、Ｙ軸、Ｚ軸方向余弦から４×４行列を計算する。この４×４行列と、ステップＳ２２の分割方法抽出ステップでＲＡＭ４に格納した開始点１１１、終了点１１２の座標値との積を取り、それぞれを３次元座標に変換する。またここで、楕円の中心点も同様に３次元座標に変換しておく。
【００３７】
次に変換した開始点１１１、終了点１１２のなす角度αを計算し、それをステップＳ２２の分割方法抽出ステップでＲＡＭ４に格納した分割数で割り、角度βを求める（図１３参照）。続いて図１３に示すように、楕円の中心点１２０と開始点１１１とを結んだ線分１２１を定義し、それを楕円の中心点１２０の回りに角度βずつ、終了点１１２まで回転させた線分群１２２を求める。これら線分群１２２が求まると、先程求めた４×４行列の逆行列を求め、その逆行列と計算した線分座標との積をとり、２次元平面へ変換する。この２次元平面への変換が終了したならば、その平面上で、ステップＳ２１の楕円抽出ステップでＲＡＭ４に格納した楕円と、今回求めた線分群１２２の各線分との交点を求める。ここで算出した点が立体角度での楕円分割点となる。これを表示部８へ表示する。
【００３８】
以上説明したように実施の形態２によれば、平面角度で楕円の分割点を指示し、それに基づいてその楕円を立体角度で分割できる効果がある。
【００３９】
［実施の形態３］
前述の実施の形態では、ステップＳ２３の平面抽出ステップで、指定可能な平面を、立体図の作図の際に最も使用頻度の高い３つの等測面即ち、Ｘ面、Ｙ面、Ｚ面であるとしたが、以下に示すような３次元格子点入力方式によって実現しても構わない。この場合、いかなる平面も指定可能となる。
【００４０】
図１４から図２２を参照して、本発明の実施の形態３の処理を説明する。
【００４１】
まずステップＳ３１で、例えば図１６に示すように、初期グリッドを表示する。即ち、表示部８にグリッドを表示する。ここでグリッドの視線ベクトルは（１，１，１）の方向を指す。
【００４２】
次にステップＳ３２に進み、グリッドを変更するように指示されたか否かを判断する。変更するときはステップＳ３３に進み、変更種別を判定するが、変更しないときは作図する図形種別を抽出する。ステップＳ３３では、グリッドの変更が、並進・回転・間隔変更・表示／非表示モード切替え・適合／不適合モード切替えのいずれであるかを判定する。
【００４３】
変更種別が並進であればステップＳ３８に進み、入力並進量の抽出を行ない、入力部６のキーボードあるいはポインティングデバイス等を用いて入力された並進量を抽出する。そしてステップＳ４１の並進処理では、ステップＳ３８で抽出された並進量に基づいて、並進後のグリッドの計算を行なう。そしてステップＳ４３に進み、その計算された値に基づいて、表示部８にグリッドを再表示する。この時、表示部８の表示は、図１７に示すような状態となる。この図１７は、図１６の初期グリッドに対し、並進量として、Ｘ＝１５，Ｙ＝−４５を指定した状態を表している。
【００４４】
又ステップＳ３３で、変更種別が回転であったならばステップＳ３７に進み、入力部６のキーボードあるいはポインティングデバイスを用いて入力された回転軸を抽出する。この場合の回転軸は、絶対座標系のＸ，Ｙ，Ｚ軸およびグリッド平面のＸ，Ｙ，Ｚ軸、あるいは任意の１軸のうちいずれかを指定できる。各Ｘ，Ｙ，Ｚ軸は入力部６のポインティングデバイスによるクリック操作、あるいは入力部６のキーボードによる名称の入力で指示される。その場合、指定された軸の表示色を赤に変更する。任意の１軸については、キーボードにより、例えばベクトルを数値で入力したり、或はは表示部８に表示されている線分をポインティングデバイス等で指示する。この時、キーボードによる指示であれば、そのベクトルに応じた線分を新規に生成して赤色で表示し、ポインティングデバイスを用いたクリック操作によるものならば、クリックされた線分の表示色を赤に変更する。
【００４５】
次にステップＳ４０に進み、入力部６により入力される回転角を取り込む。そしてステップＳ４２に進み、ステップＳ３７で入力された回転軸、およびステップＳ４０で入力された回転角に基づいてグリッドを回転させた時の、その回転後のグリッドの位置を求める。そしてステップＳ４３に進み、その計算された値に基づいて、グリッドを表示部８に再表示する。この時、表示部８の表示は、例えば図１８に示すような状態となる。この図１８は、図１７の状態にあるグリッドに対し、回転軸をグリッド平面座標系Ｚ軸とし、回転角として−１５゜を指定した状態を表している。
【００４６】
又ステップＳ３３の判定において、変更種別がグリッドの間隔値の変更であったならばステップＳ３６に進み、入力部６より入力された間隔値を入力する。そしてステップＳ３９に進み、ステップＳ３６で入力された間隔値に基づいて、その新たな間隔値に基づくグリッドの計算を行なう。そしてステップＳ４３に進み、その計算された値に基づいて、グリッドを表示部８に再表示する。この時、表示部８の表示結果は、例えば図１９のような状態となる。この図１９は、図１８の初期グリッドに対し、グリッド間の間隔値が“３０”に指定された状態を表している。
【００４７】
更にステップＳ３３で、変更種別が表示／非表示モードの切替えであったならばステップＳ３５に進み、現在、表示状態なのか非表示状態なのかをＲＡＭ４に格納されている表示／非表示フラグにより判定し、非表示状態であったならばＲＡＭ４の非表示フラグを反転してステップＳ４３に進み、グリッドの表示を行なう。一方、そうではなくて表示状態であったならば、ＲＡＭ４の表示フラグをオフしてグリッドの表示を消去する。
【００４８】
更に又ステップＳ３３で、変更種別が適合／不適合モードの切替えであったならばステップＳ３４に進み、現在の状態をＲＡＭ４に格納されている適合／不適合フラグにより判定し、適合状態であったならば不適合に、不適合状態であったならば適合に、そのフラグの状態を反転する。これと同時にＲＡＭ４に格納されている適合／不適合フラグの値も変更する。
【００４９】
前述のステップＳ３２でグリッドを変更しないときはステップＳ４４に進み、これ以後に作図する要素の種別を入力部６により選択する。こうして選択された結果の作図図形種別を表すデータをＲＡＭ４に格納する。
【００５０】
ステップＳ４５では、実施された入力がキーボードによるものなのか、ポインティングデバイスによるかを判断し、キーボードからの入力であればステップＳ４８に進み、キーボードにより入力された数値を抽出し、現在表示部８に表示されているグリッドとは無関係に、その入力された値をそのまま指示座標と認識しＲＡＭ４に格納する。一方、ポインティングデバイスによる入力のときはステップＳ４７に進み、ポインティングデバイスを用いて入力された、表示部８上の座標を抽出する。続いてステップＳ４９に進み、現在の状態がグリッド適合モードであるか否かを、ＲＡＭ４に格納されている適合／不適合フラグにより判別する。判別の結果、グリッド適合モードであるならばステップＳ５０に進み、そうでなければステップＳ５１に進む。
【００５１】
ステップＳ５０ではステップＳ４７で抽出した表示部８上の座標に最も近いグリッド点を計算し、その点の座標を指示座標と認識する。この時の表示部８は、図２０に示すような状態となっている。図２０において、画面下方の十字マークが、ポインティングデバイスの操作により移動するカーソルを示している。図２０の場合では、最も近いグリッド点は、カーソルの下方向の点と計算され、その点を指示座標と認識してＲＡＭ４に格納する。
【００５２】
グリッド不適合モードのときはステップＳ５１に進み、ステップＳ４７で抽出した表示部８上の座標をそのまま指示座標と認識してＲＡＭ４に格納する。
【００５３】
こうしてステップＳ５２に進み、ＲＡＭ４に格納されている指示座標を図形の要素点と認識してＲＡＭ４に格納する。ここで、図形の要素点とは、その図形を顕著に表す点のことで、線分ならば始・終点に該当し、円ならば中心点および円周上の一点、円弧ならば中心点および円弧の始・終点を示す。これらの要素点は作図する図形によって変化するわけであるが、ステップＳ５３では、要素点の指定が終了したかどうかを、ＲＡＭ４に格納されている作図図形種別を参照して、その図形種別に応じて、要素点の指定が全て終了したか否かを判別する。要素点の指定が終了していない、例えば図形種別が線分で、かつ始点の指定のみで終わっている場合はステップＳ４５の座標指示方法の判定ステップへ戻る。
【００５４】
こうして要素点が全て指定されるとステップＳ５３からステップＳ５４に進み、ＲＡＭ４に格納されている作図図形種別と各要素点とを基に、図形を表示部８に表示するとともに、ＲＡＭ４に格納する。
【００５５】
図２１は、グリッド適合モードにおいて、ポインティングデバイスを用いて円弧の作画を実施した際の表示部８の表示状態を表す。
【００５６】
この実施の形態に従って、グリッドの回転・並進などを行なって作図した立体図の一例を図２２に示す。
【００５７】
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００５８】
また本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００５９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６０】
以上説明したように実施の形態３によれば、分割する平面を、前述の３つの等測面だけでなく、任意の平面を基準として指定できる効果がある。
【００６１】
【発明の効果】
以上説明したように本発明によれば、立体角度での楕円の分割を容易にできる効果がある。
【００６２】
また本発明によれば、楕円を立体角度で分割する際、その基準となる角度を任意の平面上で指定できる効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係る図形処理を示すフローチャートである。
【図２】本実施の形態に係る図形処理装置の概略構成を示すブロック図である。
【図３】楕円の構成要素を説明する図である。
【図４】楕円に接する２つの直線を、ｘ，ｙ軸に平行になるように座標変換をかける状態を説明する図である。
【図５】楕円の移動基準点、移動先指示点が指示されたとき、その移動回転角度を説明する図である。
【図６】第４図の楕円を図５に示すようにして指示された角度だけ回転させることを説明する図である。
【図７】図６の楕円のＸ座標、Ｙ座標の最大、最小値の定義を説明する図である。
【図８】図７の楕円をｘ，ｙ軸に平行な直線に接するように楕円に平行移動をかけることを説明する図である。
【図９】図８の楕円を図４に示す元の座標系に戻す処理を説明する図である。
【図１０】本発明の実施の形態２の処理を示すフローチャートである。
【図１１】楕円に対して開始点、終了点及び分割区間の指示例を示す図である。
【図１２】実施の形態２における分割平面の一例を示す図である。
【図１３】実施の形態２における分割点の計算を説明する図である。
【図１４】本発明の実施の形態３の処理の流れを示すフローチャートである。
【図１５】本発明の実施の形態３の処理の流れを示すフローチャートである。
【図１６】実施の形態３のグリッドの表示例を示す図である。
【図１７】グリッドの並進処理を行ったときの表示例を示す図である。
【図１８】グリッドの回転処理を行ったときの表示例を示す図である。
【図１９】グリッドの間隔の変更処理を行ったときの表示例を示す図である。
【図２０】グリッド上での座標指示を説明する図である。
【図２１】グリッド適合モードで、ポインティングデバイスを用いて円弧を作画した状態を示す図である。
【図２２】実施の形態３により立体図を作図した例を示す図である。
【符号の説明】
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
６  入力部
８  表示部
１０  外部記憶装置
１１１  開始点
１１２  終了点
４０１，４０２，４０３，４０４  接線
４１０  原点
【図１】
0003684218.tif 000002
【図２】
0003684218.tif 000003
【図３】
0003684218.tif 000004
【図４】
0003684218.tif 000005
【図５】
0003684218.tif 000006
【図６】
0003684218.tif 000007
【図７】
0003684218.tif 000008
【図８】
0003684218.tif 000009
【図９】
0003684218.tif 000010
【図１０】
0003684218.tif 000011
【図１１】
0003684218.tif 000012
【図１２】
0003684218.tif 000013
【図１３】
0003684218.tif 000014
【図１４】
0003684218.tif 000015
【図１５】
0003684218.tif 000016
【図１６】
0003684218.tif 000017
【図１７】
0003684218.tif 000018
【図１８】
0003684218.tif 000019
【図１９】
0003684218.tif 000020
【図２０】
0003684218.tif 000021
【図２１】
0003684218.tif 000022
【図２２】
0003684218.tif 000023