JP3445010B2 - ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置 - Google Patents

ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置

Info

Publication number
JP3445010B2
JP3445010B2 JP3533295A JP3533295A JP3445010B2 JP 3445010 B2 JP3445010 B2 JP 3445010B2 JP 3533295 A JP3533295 A JP 3533295A JP 3533295 A JP3533295 A JP 3533295A JP 3445010 B2 JP3445010 B2 JP 3445010B2
Authority
JP
Japan
Prior art keywords
intersection
point
bezier curve
dimensional
curve
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.)
Expired - Lifetime
Application number
JP3533295A
Other languages
English (en)
Other versions
JPH08235368A (ja
Inventor
直樹 中西
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP3533295A priority Critical patent/JP3445010B2/ja
Publication of JPH08235368A publication Critical patent/JPH08235368A/ja
Application granted granted Critical
Publication of JP3445010B2 publication Critical patent/JP3445010B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CAD等の図形処理装
置におけるベジェ(Bezier)曲線と2次元図形、すなわ
ち、直線,円,楕円等との交点を算出する交点算出方法
に関するものである。
【0002】
【従来の技術】従来、ベジェ曲線と2次元図形との交点
の算出は、ベジェ曲線を表現するパラメトリックな式を
陰関数で表された2次元図形の式に代入することによっ
て、パラメータに関する式を作り、それを解く代数的方
法が知られている。又、例えばベジェ曲線と直線との交
点の算出としては、幾何的な方法として、ベジェ曲線の
凸閉包と2次元図形とが干渉するかぎりベジェ曲線を再
帰的に分割し、ベジェ曲線が直線とみなせる幾何的許容
誤差以内となる分割数に達した時点で、ベジェ曲線を直
線とみなして2直線の交点を求める方法が、ベジェ分割
法として知られている。
【0003】さらに、ベジェ曲線と2次元図形との交点
の算出として、ベジェ曲線から2次元図形までの距離と
なるような評価関数( 距離関数) を作成し、その関数の
値が“0”となるようなパラメータを交点とするベジェ
・クリッピング法も知られている。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
方法でCAD等の計算機を使ってベジェ曲線と2次元図
形(直線,円,楕円)との交点算出を行う場合には、以
下のような問題があった。まず、代数的に解を求める従
来の方法だと、得られた交点が真の交点から幾何的許容
誤差だけ離れている場合があり、解がパラメトリックな
表現であるため、実空間との整合性がとりにくく誤差を
処理しにくくなる原因となっていた。更に、代数的方法
ではベジェ曲線の次数が高くなることによって解が求ま
らなくなってしまうという問題点があった。
【0005】また、ベジェ分割法を用いた場合には、最
終的に求まる交点は直線に近似した曲線と直線との交点
なので、やはり交点が曲線上から幾何的許容誤差だけ離
れている所が交点として求まる場合が合った。従って、
代数的に解を求める方法あるいはベジェ分割法では、任
意の分割点を基に新たに元の曲線の部分曲線を生成して
いく過程で、部分曲線が元の曲線に乗らなくなり、新た
に生成した部分曲線と直線の交点と真の交点との誤差が
大きくなるという誤差の蓄積の問題が起る。
【0006】以下に誤差の蓄積について、図示して説明
する。ベジェ曲線と直線の交点を求める従来の方法で
は、図28に示すように、ステップ11で得られたベジ
ェ曲線を直線に近似して算出された交点に基づいて、ス
テップ12のように新たに生成された部分曲線は、交点
がベジェ曲線に乗ってないので元の曲線との間にズレが
生じる。さらに、ステップ13のように、ステップ12
で生成された部分曲線に対して直線近似により交点を求
め、さらに新たに部分曲線を生成して行くので、誤差が
蓄積して行くことになる。
【0007】また、ベジェ曲線と円の交点を求める従来
の方法でも、図29に示すように、ステップ21では幾
何的許容誤差以内に達した所で交点と定めるので、ステ
ップ22のように、新たに生成された部分曲線に元の曲
線とのズレが生じる。更にステップ23のように、ステ
ップ22で生成された部分曲線に対して新たに部分曲線
を生成して行くので、誤差が蓄積して行くことになる。
【0008】また、ベジェ曲線と楕円の交点を求める従
来の方法でも、図30に示すように、ステップ31→ス
テップ32→ステップ33と新たに生成される曲線が、
元の曲線に乗らなくなる。本発明は、前記従来の欠点を
除去し、ベジェ曲線と2次元図形(例えば、直線または
円または楕円等)との交点算出において、正確にベジェ
曲線上に存在する交点を求めるベジェ曲線と2次元図形
との交点算出方法及びこれを実現する図形処理装置を提
供する。
【0009】また、代数的方法で求まらなかった高い次
数のベジェ曲線との交点も求めることが可能となるベジ
ェ曲線と2次元図形との交点算出方法及びこれを実現す
る図形処理装置を提供する。更に、ベジェ曲線と2次元
図形(直線または円または楕円等)との交点を漏れなく
全て出力できるベジェ曲線と2次元図形との交点算出方
法及びこれを実現する図形処理装置を提供する。
【0010】
【課題を解決するための手段】上述の課題を解決するた
めに、本発明のベジェ曲線と2次元図形との交点算出方
法は、図形処理装置でベジェ曲線と2次元図形との交点
を算出する交点算出方法であって、記憶手段に制御点に
より記憶されている交点算出の対象となるベジェ曲線
ら、de Casteljauのアルゴリズムに従って該ベジェ曲線
上の制御点であるn次までの制御点を順次算出して、算
出された制御点を前記記憶手段に記憶し、該ベジェ曲線
前記ベジェ曲線上の制御点で分割するベジェ曲線分割
ステップと、前記分割されたベジェ曲線の各々に対応し
て、前記記憶手段に記憶された制御点から複数の凸閉包
ポリゴンを生成する凸閉包ポリゴン生成ステップと、前
記複数の凸閉包ポリゴンの各凸閉包ポリゴンと、前記記
憶手段に前記ベジェ曲線と同じ座標系で記憶されている
交点算出の対象となる2次元図形との交点を求めて、前
記記憶手段に記憶する交点算出ステップと、前記分割さ
れたベジェ曲線の始点及び終点となる制御点と求められ
た前記交点との距離を求めて、該距離が幾何学的許容誤
差以内である場合に、前記記憶手段に記憶された前記始
点及び終点となる制御点の一方をベジェ曲線と2次元図
形との交点と決定する交点決定ステップとを備えること
を特徴とする。
【0011】ここで、前記交点決定ステップは、前記分
割されたベジェ曲線の始点及び終点となる制御点と求め
られた前記交点との距離が幾何学的許容誤差以内である
場合に、前記始点あるいは終点となる制御点をベジェ曲
線と2次元図形との交点候補とするステップと、前記交
点候補と前記分割されたベジェ曲線と2次元図形との既
に求められた交点との距離が幾何学的許容誤差以内でな
い場合は、前記交点候補を交点とするステップとを備え
る。また、前記交点決定ステップは、前記交点候補と前
記分割されたベジェ曲線と2次元図形との既に求められ
た交点との距離が幾何学的許容誤差以内である場合は、
前記交点候補を無効とするステップを更に備える。ま
た、前記分割されたベジェ曲線の始点及び終点となる制
御点と求められた前記交点との距離が幾何学的許容誤差
以内でない場合に、前記分割されたベジェ曲線の1つを
交点算出の対象となるベジェ曲線と見なして、再帰的に
前記曲線分割ステップと凸閉包ポリゴン生成ステップと
交点算出ステップとを繰り返す再帰処理ステップを更に
備える。また、前記交点算出ステップでは、1つの前記
凸閉包ポリゴンと2次元図形との交点が算出されない場
合に、前記複数の凸閉包ポリゴンの他の凸閉包ポリゴン
と2次元図形との交点を求め、前記複数の凸閉包ポリゴ
ンの全てと交点が算出されない場合には、その再帰処理
から抜ける。また、前記2次元図形が区間制限のある図
形であって、前記求めた交点が前記区間内にない場合に
は交点としない交点制限ステップを更に備える。また、
前記交点算出の対象となるベジェ曲線の次数と2次元図
形より予め最大の交点数を定め、求めた交点数が前記予
め定めた最大交点数を満たせば処理を終了する処理制限
ステップを更に備える。また、前記凸閉包ポリゴンを、
ベジェ曲線の制御点の座標の最大値と最小値とに基づい
て形成された長方形で代用する。また、前記2次元図形
は、無限直線,有限線分,半無限直線,円,円弧,楕
円,楕円弧を含む。
【0012】又、本発明の図形処理装置は、ベジェ曲線
と2次元図形との交点を算出する図形処理装置であっ
て、交点算出の対象となるn次のベジェ曲線を制御点で
記憶するベジェ曲線記憶手段と、de Casteljauのアルゴ
リズムに従って該ベジェ曲線上の制御点であるn次まで
の制御点を順次算出して、該n次の制御点の少なくとも
1つを新たな始点及び終点となる制御点として、複数の
凸閉包ポリゴンを生成して記憶する凸閉包ポリゴン生成
手段と、記憶された前記複数の凸閉包ポリゴンの各凸閉
包ポリゴンと交点算出の対象となる2次元図形との交点
を求める交点算出手段と、前記各凸閉包ポリゴンの始点
及び終点となる制御点と前記交点算出手段で求められた
前記交点との距離が幾何学的許容誤差以内である場合
に、前記始点及び終点となる制御点の一方をベジェ曲線
と2次元図形との交点とする交点決定手段とを備えるこ
とを特徴とする。
【0013】ここで、前記交点決定手段は、前記始点及
び終点となる制御点と求められた前記交点との距離が幾
何学的許容誤差以内である場合に、前記始点あるいは終
点となる制御点をベジェ曲線と2次元図形との交点候補
とし、前記交点候補と前記ベジェ曲線と2次元図形との
既に求められた交点との距離が幾何学的許容誤差以内で
ない場合は、前記交点候補を交点とする。また、前記交
点決定手段は、前記始点及び終点となる制御点と求めら
れた前記交点との距離が幾何学的許容誤差以内でない場
合に、前記生成された凸閉包ポリゴンの制御点を交点算
出の対象となるベジェ曲線の制御点と見なして記憶し、
再帰的に前記凸閉包ポリゴン生成手段と交点算出手段と
による処理を繰り返すよう指示する。また、前記交点決
定手段は、前記2次元図形が区間制限のある図形である
場合に、前記求めた交点が前記区間内にない場合には交
点としない交点制限手段を更に備える。また、前記交点
算出の対象となるベジェ曲線の次数と2次元図形より予
め最大の交点数を定める最大交点数設定手段を更に備
え、前記交点決定手段は、求めた交点数が前記予め定め
た最大交点数を満たせば処理を終了する。また、前記2
次元図形は、無限直線,有限線分,半無限直線,円,円
弧,楕円,楕円弧を含む。
【0014】
【実施例】以下、本発明の実施例を添付図面を用い詳細
に説明する。なお、実施例1はベジェ曲線と直線との交
点算出、実施例2はベジェ曲線と円との交点算出、実施
例3はベジェ曲線と楕円との交点算出に関する実施例で
ある。
【0015】[実施例1] <図形処理装置の構成例>図1は本実施例の図形処理装
置のシステム構成を示すブロック図である。図中、1は
入力処理,出力処理,外部記憶装置11のファイルへの
書込み/読出し,処理プログラムの実行を行う中央処理
装置(CPU) である。2は、CPU1の実行に必要と
するランダム・アクセス・メモリ(RAM) であり、原
データや途中結果等の可変データ,テーブル,外部記憶
装置11からロードするパラメータ,必要によりプログ
ラム等を記憶するメモリであり、制御点格納領域21,
2次元図形格納領域,凸閉包ポリゴン交点23a及びベ
ジェ曲線交点23bを含む交点格納領域23を有する。
3はリード・オンリー・メモリ(ROM) で、CPU1
が実行する処理プログラム31や固有のパラメータ32
等を記憶するメモリである。4は、CPU1と他の構成
要素との間でデータや信号の受渡を行うバスである。5
は入力インターフェースで、キーボードやマウス等の本
実施例での種々の指示や制御点の入力に用いる入力装置
6とバス4との間を接続するインターフェースである。
7は、CRT,LCD等の表示装置8やプリンタ,プロ
ッタ等の印刷装置9へ、CPU1からバス4を介して出
力するための出力インターフェースである。10は、ハ
ードディスク(HD) ,フロッピーディスク(FD) ,
CD−ROM,MD等の外部記憶装置11とCPU1と
のインターフェースを行う外部記憶装置インターフェー
スである。
【0016】<ベジェ曲線の概略説明>一般に、n次ベ
ジェ曲線は、n+1個の制御点Pi(xi ,yi)(0≦i
≦n)で指定される。ベジェ曲線の制御点P(t) は次の
様になる。
【0017】
【数1】 即ち、ベジェ曲線は、制御点Pi の配置により曲線の形
状が決まるものである。前記各式では、ベジェ曲線の次
数nに対して、入力される制御点Pi(xi ,y i)がn+
1個となる。そこで、パラメータtの値を定めれば、対
応する曲線上の点の座標が、制御点Pi の各座標成分と
i n(t) との積和をして計算できる。
【0018】(3次ベジェ曲線)次数nを3とする3次
ベジェ曲線は最も多く用いられている。3次のベジェ曲
線のP(t) は、式(3) と式(4) より次の様になる。
【0019】
【数2】 式(5) を行列表示すると、
【0020】
【数3】 となる。3次ベジェ曲線の制御点は4個であり、その入
力により種々の曲線を作り出せる。3次ベジェ曲線の4
個の制御点を変えた時の、曲線の例を図2の(a),(b),
(c),(d) に示す。すなわち、P0 ,P1 ,P2 ,P3
制御点の入力により、破線で示す多角形を滑らかにする
曲線が作られる。図2より分るように、曲線の端点は、
制御点P0 ,P3 と一致している。ここで、端点の制御
点と次の制御点とを結ぶ線分に曲線は接することにな
る。更に、制御点によって構成される凸領域の内部に曲
線が存在することになる。これを凸閉包性という。
【0021】ベジェ曲線の始点と終点の位置は、一般に
次式になる。 始点(t=0) P(0) =P0 終点(t=1) P(1) =Pn …(7) また、ベジェ曲線の始点と終点における接線ベクトル、
すなわち1次微分ベクトルは、一般に次の式になる。
【0022】 始点(t=0) P’(0) =n(P1−P0 ) 終点(t=1) P’(1) =n(Pn−Pn-1 ) …(8) 更に、ベジェ曲線の始点と終点における2次微分ベクト
ルは、次の式になる。 始点(t=0) P”(0) =n(P2−2P1+P0 ) 終点(t=1) P”(1) =n(Pn−2Pn-1+Pn-2 ) …(9) (3次ベジェ曲線の性質)次に、3次(n=3) のベジ
ェ曲線の性質を考える。図3は、図2の(a) のベジェ
曲線と同様の配置の制御点P0 ,P1 ,P2 ,P3 から
なるベジェ曲線の図である。ベジェ曲線の式は、式
(5) または式(6) から与えられる。
【0023】ここで、3次のベジェ曲線の性質として、
次のことが一般に知られている。 (1) P(0) =P0 ,P(1) =P3 であり、ベジ
ェ曲線の両端点は制御点の両端点を通る。 (2) P’( 0) =3(P1 −P0),P’( 1) =3
(P3 −P2)であり、曲線は両端点で直線P01 とP
23 とにそれぞれ接する。(式(8) 参照) (3) de Casteljauのアルゴリズム(De Casteljau's A
lgorithm)より、線分P01 , P12 , P23
t:(1−t) の点を、それぞれP0 1, P1 1, P2 1
し、更に線分P0 11 1, P1 12 1のt:(1−t) の点
をそれぞれP0 2, P1 2, とし、更に線分P0 21 2のt:
(1−t) の点をP0 3とすると、図3のように、曲線は
0 3を通ることになる。従って、(t=0. 5)とする
と、式(5)または式(6) より、次のように計算でき
る。
【0024】 P(0.5) =(1−0.5)30 +3(1−0.5)31 +3(1−0.5)(0.5)22 +(0.5 )33 =(0.5)30 +3(0.5)31 +3(0.5)32 +(0.5)33 =0.5(0.5(0.5(P0 +P1)+0.5(P1 +P2)+0.5(P1 +P2)+0.5( P1 +P3)) =0.5(0.5(P0 1+P1 1) +0.5(P1 1+P2 1)) =0.5(P0 2+P1 2) =P0 3 従って、(t=0. 5)の場合、曲線(図3の点線の曲
線) は中点P03を通ることになる。
【0025】<直線との交点算出>ベジェ曲線と直線L
との交点を算出する処理フローチャートは、図4に示す
ようになる。なお、本実施例はn=3(3次) の場合の
処理の実施例である。 (1) 曲線の2分割と新たなポリゴンの生成(S10
0) 図4のステップS100では、与えられたベジェ曲線を
ベジェ曲線上の点でaとbとに2分割し、それぞれ凸閉
包ポリゴンPa, Pbを生成する。ここで、凸閉包ポリ
ゴンとは、例えば図8のように制御点P0 ,P1 ,P
2 ,P3 が与えられた場合は、ポリゴンP023
1 のようになる。
【0026】この処理を、図5のフローチャートを参照
して更に詳細に示す。 (ステップS1:ベジェ曲線の分割)図10に示すよう
に、制御点P0 ,P1 ,P2 ,P3 で与えられたベジェ
曲線を、t=0. 5としてde Casteljauのアルゴリズム
を用いて、分別点P03で曲線aと曲線bとに分別する。
【0027】すなわち、まず、P0 とP1 の中点P
01と、P1 とP2 の中点P11と、P2 とP3 の中点P21
とを求め、次に、P01とP11の中点P02と、P11とP21
の中点P 12とを求め、更に、P02とP12の中点、すなわ
ち分割点P03を求める。従って、制御点P0 ,P1 ,P
2 ,P3 によるベジェ曲線は、制御点P0 ,P01
02,P03とP03,P12,P21,P3 とからなる2つの
曲線に分割できる。
【0028】(ステップS2:凸閉包ポリゴンの生成)
ステップS1で分割されて作成された2曲線を対象に、
凸閉包ポリゴンの生成を行う。凸閉包ポリゴンの生成
は、制御点を反時計回りの順番にソートを行い凸閉包ポ
リゴンを生成する。即ち、図11に示すように、制御点
0 ,P01, P02, P03に対してポリゴンPaが、制御
点P03, P12, P21, P3 に対してポリゴンPbが生成
される。
【0029】(2) ポリゴンPaのエッジと直線Lとの
交点算出(S101) 凸閉包ポリゴンPaのエッジと直線Lとの交点を求め
る。例えば、凸閉包ポリゴンP0231 が与えら
れた場合、直線との交点は図9に示すようになる。すな
わち、図9の例では、ポリゴンのエッジP02 と直線
との交点A, 並びにエッジP13 と直線との交点Bを
算出する。
【0030】この処理を、図6のフローチャートを参照
して更に詳細に示す。 (ステップS3−1:ポリゴンPaと直線Lの交点算
出)図5のステップS2で生成された凸閉包ポリゴンP
aに対して、交点算出の対象となる直線Lと干渉するか
否かの判定を行う。直線は無限の長さを持っているの
で、直線Lが凸閉包ポリゴンPaと干渉するという条件
は、凸閉包ポリゴンPaのエッジと直線Lが交点を持て
ば良い。そこで、本実施例では、図12に示すように、
ポリゴンの各エッジを線分とみなして、その各線分と直
線Lとの交点を求めてC1 ,C2 とする。
【0031】(ステップS4−1:交点が存在するか否
かの判定)ステップS3−1の演算で、凸閉包ポリゴン
パPaのエッジと直線Lとの交点が存在したか否かの判
定を行う。交点が存在しない場合は、現在処理中の曲線
と直線Lとの間には交点が存在しないとして処理を終了
し、交点が存在する場合はステップS5−1へ進む。本
実施例では、図12に示したようにポリゴンPaと直線
Lとの間には交点C1 ,C2 が存在するので、ステップ
S5−1へ進む。
【0032】(ステップS5−1:交点から制御点まで
の距離算出)求められたポリゴンPaと直線Lの交点C1
(またはC2)より、ベジェ曲線の始点及び終点となる制
御点までの距離を算出する。ここで、ベジェ曲線の始点
及び終点となる制御点は曲線上に存在する(図12の最
初の分割ではP0 とP03となる)。従って、ステップS
3−1で求めた交点C1(またはC2)より、分割したベジ
ェ曲線上aの正確な位置の把握できている点(始点,終
点) までの距離d1 ,d2 が算出できる。
【0033】(ステップ6−1:交点と制御点の距離が
幾何的許容誤差ε以内であるか否かの判定)ステップS
5−1で算出された交点C1(またはC2)から曲線aの始
点及び終点までの距離d1 ,d2 が共に、幾何的許容誤
差ε以内であるかを判定し、共に幾何的許容誤差ε以内
でない場合はステップS7−1へ、共に幾何的許容誤差
ε以内の場合はステップS8−1へ進む。
【0034】(ステップS7−1:分割された曲線aに
ついて、図4のフローの再帰呼び出し)ステップS5−
1で算出された距離d1 ,d2 が共に幾何的許容誤差ε
以上であれば、ステップS3−1で算出されたポリゴン
と直線との交点はベジェ曲線上にないとみなし、現在処
理中の2分割された一方の曲線aに対して図4に示す本
処理の再帰呼び出しを行う。この再帰呼び出しを行うこ
とにより、曲線が更に2分割されて行くので、交点は分
割して行った曲線の始点及び終点となる制御点に収束し
て行く。
【0035】(ステップS8−1:制御点の交点候補
化)始点及び終点となるベジェ曲線の制御点と交点との
距離d1 ,d2 が共に幾何的許容誤差ε以内であれば、
始点あるいは終点を交点候補とする。尚、煩雑さを避け
るために図示しなかったが、この処理へ最初に入った場
合は交点候補ではなく、ステップS12−1に進んで始
点あるいは終点を交点とする。
【0036】ここで、交点候補(交点)にした始点ある
いは終点は、パラメータt=0. 5の点で分割された曲
線の制御点なので、ベジェ曲線上にある。従って、同じ
手順の何度も分割処理を用い要素長の修正などを行う上
で、曲線の制御点の誤差の蓄積を未然に防ぐことができ
る。 (ステップS9−1:交点候補と以前に算出された交点
との距離d3 の算出)ここで、本例では、幾何的許容誤
差εの範囲内となった制御点を全て交点とする可能性が
あるので、交点が複数あるか1つ(ベジェ曲線への接
線)であるかを判別するために、交点候補とすでに算出
された交点との距離d3 を算出する。
【0037】(ステップS10−1:距離d3 が幾何的
許容誤差ε以内であるかの判定)ステップS9で算出さ
れた距離d3 が幾何的許容誤差ε以内であるか否かの判
定を行う。距離d3 が幾何的許容誤差εより小さい場合
(d3 <ε) はステップS11へ進み、そうでない場合
(d3 ≧ε) はステップS12へ進む。 (ステップS11−1:交点候補を無効とする)ステッ
プS8−1で決めた交点候補はすでに算出された交点と
一致するとして、交点候補を無効にする。この処理によ
り、曲線と直線が接する点の付近で、交点を複数決めて
しまうのを防ぐことができる。
【0038】(ステップS12−1:交点候補を交点と
する)ステップS8−1で決めた交点候補を交点とす
る。すなわち、ここで決められた交点をRAM2へ登録
する。または、外部記憶インターフェース10を介して
外部記憶装置11へ登録する。 (3)ポリゴンPbのエッジと直線Lとの交点(S10
2) 次に、凸閉包ポリゴンPbのエッジと直線Lとの交点を
求める。この処理の詳細を図7のフローチャートに示
す。尚、図7のステップS3−2〜S12−2は、対象
の分割された曲線が異なるだけで、それぞれ図6のステ
ップS3−1〜S12−1に対応しており、ここでは詳
細な説明はしない。
【0039】ここで、上記ステップS101またはS1
02において求めた交点が幾何的許容誤差ε内に入って
いない場合は、更に、ステップS101またはS102
の中で、図4の処理を再帰的に呼び出し、ベジェ曲線を
更に2分割して処理を行う。幾何的許容誤差ε内に入っ
た所で1つの交点を決定すると、再帰的呼び出しの履歴
を逆に辿って2分割の内でまだ処理をしてない方の処理
を行う。与えられたベジェ曲線の全体で交点のチェック
が終ると処理を終了する。
【0040】また、先に求めた交点と後に求めた交点が
所定の距離範囲内の場合は、後で求めた交点を捨てる処
理により、曲線と直線とが接する点の付近で交点が複数
求まることを防ぐことができる。また、交点の存在しな
い凸閉包ポリゴンは評価対象としない処理をする。以
上、本実施例は、ベジェ曲線と直線との交点の算出を行
うときに、誤差の処理が容易であり精度の高い交点算出
方法を提供するものである。
【0041】<有限線分との交点算出>本例は、有限線
分とベジェ曲線との交点を求めるものである。本例の処
理では、前記実施例の図4と同様に、無限直線とベジェ
曲線との交点を求め、その後に求めた交点が有限線分上
にあるか否かを判定する。求めた交点が有限線分上にな
ければ無効とする。求めた交点が有限線分上にあれば交
点とする。
【0042】この処理を示すフローチャートが図13で
ある。図13のフローチャートの中で、ステップS10
0, S101, S102は前記実施例と同様の処理なの
で説明は省き、ステップS13−1またはステップS1
3−2について説明する。ステップS13−1では、ス
テップS101により算出された交点と有限線分との最
短距離を算出して、算出された最短距離が幾何的許容誤
差ε以内であれば、ステップS101で得られた交点を
有限線分との交点とする。
【0043】また、ステップS13−2では、ステップ
S102により算出された交点と有限線分との最短距離
を算出して、算出された最短距離が幾何的許容誤差ε以
内であれば、ステップS102で得られた交点を有限線
分との交点とする。交点と有限線分との最短距離が幾何
的許容誤差ε以上であれば、求めた交点を無効とし、R
AM2または外部記憶装置11にステップS101ある
いはS102で登録した交点を削除する。
【0044】以上の処理により、ベジェ曲線と有限線分
との交点を求めることができる。 <半無限線分との交点算出>本例は、半無限線分とベジ
ェ曲線との交点を求めるものである。本例の処理では、
前記実施例の図4と同様に、無限直線とベジェ曲線との
交点を求め、その後に求めた交点が半無限線分上にある
か否かを判定する。求められた交点が半無限線分上にな
ければ無効とする。求めた交点が半無限線分上にあれば
交点とする。
【0045】この処理を示すフローチャートが図14で
ある。図14のフローチャートの中で、ステップS10
0, S101, S102は前記実施例と同様の処理なの
で説明は省き、ステップS14−1またはステップS1
4−2について説明する。ステップS14−1では、ス
テップS101により算出された交点と半無限線分との
最短距離を算出して、算出された最短距離が幾何的許容
誤差ε以内であれば、ステップS101で得られた交点
を半無限線分との交点とする。
【0046】また、ステップS14−2では、ステップ
S102により算出された交点と半無限線分との最短距
離を算出して、算出された最短距離が幾何的許容誤差ε
以内であれば、ステップS102で得られた交点を半無
限線分との交点とする。交点と半無限線分との最短距離
が幾何的許容誤差ε以上であれば、求めた交点を無効と
し、RAM2または外部記憶装置11にステップS10
1あるいはS102で登録した交点を削除する。
【0047】以上の処理により、ベジェ曲線と半無限線
分との交点を求めることができる。 <算出処理の短縮>本例は、線分とベジェ曲線との交点
を求め、その算出された交点数が最大交点数に達した場
合の処理を示す実施例である。本例の処理では、前記実
施例と同様に、線分とベジェ曲線との交点を求め、その
後に求めた交点数が最大交点数に達したか否かを判定す
る。求めた交点数が最大交点数に達していれば全ての処
理を終了する。求めた交点数が最大交点数に達していな
ければ処理を続行する。
【0048】この処理を示すフローチャートが図15で
ある。図15のフローチャートの中で、ステップS10
0, S101, 102は前記実施例と同様の処理なので
説明は省き、ステップS15−1またはステップS15
−2について説明する。図15のステップS15−1ま
たはステップS15−2において、ステップS101ま
たはステップS102で算出された交点数の総数が、ベ
ジェ曲線の次数より得られるベジェ曲線と直線との最大
交点数に達したか否かを判定する。算出された交点数が
最大交点数に達していれば、全ての処理を終了する。算
出された交点数が最大交点数に達していなければ、処理
を続行する。最大交点数は、例えば3次のベジェ曲線と
直線の場合“3”となり、5次のベジェ曲線と直線の場
合は“5”となる。
【0049】上記のように最大交点数に達した時点で処
理を終了することで、余分な演算を省いて処理を速くす
ることができる。 [実施例2] <円Qとの交点算出>本実施例では、ベジェ曲線と円Q
との交点を算出する例を説明する。
【0050】図16に、ベジェ曲線と円Qとの交点を算
出する処理フローチャートを示す。尚、ベジェ曲線P0
123 のポリゴンP2310 と円Qの交点
の例は、図19に示すようになる。図16の処理は次の
処理からなる。 (1)曲線の2分割とポリゴンの生成(S200) この処理は実施例1のステップS100と同じなので説
明を省略する。
【0051】(2)ポリゴンPaのエッジと円Qとの交
点(S201) ステップS201では、凸閉包ポリゴンPaのエッジと
円Qとの交点を求める。図17は、ポリゴンPaのエッ
ジと円Qとの交点を求める処理の詳細なフローチャート
である。以下、図17のフローチャートを用いて説明す
る。なお、図中、ステップS33−1,S34−1,S
36−1以外のステップは、直線Lを円Qに置き代えれ
ば前記実施例1と同様の処理なので、ここでは説明を省
略する。以下、前記実施例と異なる所について説明す
る。
【0052】(ステップS33−1:円とポリゴンの内
外判定)ステップS200で生成された凸閉包ポリゴン
Paに、円Qが含まれているか否かの判定を行う。ポリ
ゴンの全てのエッジと交点を持たない円の場合、円の外
周の1点がポリゴンの中に含まれるか否かの判定を行
う。円の外周の1点がポリゴンの中に含まれる場合、円
はポリゴン中に含まれると判定する。円の外周の1点が
ポリゴンの中に含まれない場合、ポリゴンが完全に円に
含まれているか否かを判定する。
【0053】円の外周の一点(x, y)は、円の半径を
rとするとパラメータθを用いて、次の様に表わせる。 (x, y)=(rcos θ, rsin θ) 0≦θ≦2π 従って、円の中心が原点にあると仮定して、任意のθに
対して円の外周の一点がポリゴンの内にあるか外にある
かを判定する。
【0054】(ステップS34−1:交点が存在するか
否かの判定)ポリゴンPaと円Qとの交点が算出された
か否かの判定を行う。交点が算出されずかつ円Qがポリ
ゴンPaの中に含まれていない場合は、現在処理中のベ
ジェ曲線と円の間には交点が存在しないとして、処理を
抜ける。一方、交点が算出されたか、または円Qがポリ
ゴンPaの中に含まれていると判定した場合は、ステッ
プS35−1へ進む。
【0055】(ステップS61−1:交点と制御点の距
離が幾何的許容誤差ε以内であるかの判定)交点と制御
点の距離d1 >εまたはd2 >εの場合は、更に距離を
挟める必要があるので、ステップS71−1へ進んで図
16を再帰呼び出しし、ポリゴンPaから形成されるベ
ジェ曲線を更に2分割する。また、円QがポリゴンPa
に含まれる場合も、交点を求めるためにステップS71
−1へ進んで図16を再帰呼び出しする。それ以外の場
合は、ステップS38−1へ進む。
【0056】(3) ポリゴンPbのエッジと円Qとの
交点 ステップS202で、凸閉包ポリゴンPbのエッジと円
Qとの交点を求める。図18は、ポリゴンPbのエッジ
と円Qとの交点を求める処理の詳細なフローチャートで
あるが、上記図17のフローチャートと類似であるの
で、説明は省略する。
【0057】ここで、ステップS201またはステップ
S202において、求めた交点が所定の誤差範囲内に入
っていない場合は、更に、ステップS201またはステ
ップS202の中で図16の処理を再帰的に呼び出し、
ベジェ曲線を更に2分割して処理を行う。この処理を再
帰的に続け、所定の距離範囲内に誤差が入った所で交点
と決定する。
【0058】但し、前記実施例と同様に、先に求めた交
点と後に求めた交点とが所定の距離範囲内の場合は、後
で求めた交点を捨てる。この処理により、ベジェ曲線と
円が接するような点付近で、交点が複数求まることを防
ぐことができる。また、交点の存在しない凸閉包ポリゴ
ンは評価対象としない処理をする。以上、本実施例によ
れば、ベジェ曲線と円の交点の算出を行うときに、誤差
の処理が容易な交点算出方式を提供するものである。
【0059】<円弧との交点算出>本例は、円弧とベジ
ェ曲線との交点を求めるものである。本例の処理では、
前記実施例の図16に示すと同様に、円とベジェ曲線と
の交点を求め、その後に求めた交点が円弧上にあるか否
かを判定する。求められた交点が円弧上になければ無効
とする。求めた交点が半無限線分上にあれば交点とす
る。
【0060】この処理を示すフローチャートが図20で
ある。図20のフローチャートの中で、ステップS20
0, S201, S202は、前記実施例と同様の処理な
ので説明は省き、ステップS16−1またはステップS
16−2について説明する。ステップS16−1では、
ステップS201で算出された交点と円弧との最短距離
を算出し、最短距離が幾何的許容誤差ε以内であれば、
ステップS201で得られた交点をベジェ曲線と円弧と
の交点とする。
【0061】一方、ステップS16−2では、ステップ
S202で算出された交点と円弧との最短距離を算出
し、最短距離が幾何的許容誤差ε以内であれば、ステッ
プS202で得られた交点をベジェ曲線と円弧との交点
とする。交点と円弧との最短距離が幾何的許容誤差ε以
上であれば、求めた交点を無効とし、RAM2または外
部記憶装置11に登録されていた交点を削除する。
【0062】以上の処理により、ベジェ曲線と円弧との
交点を求めることができる。 <交点算出処理の短縮>本例は、円弧とベジェ曲線との
交点を求め、その算出された交点数が最大交点数に達し
た場合の処理を示す実施例である。本例の処理では、前
記実施例の様に円とベジェ曲線との交点を求め、その後
に求めた交点数が最大交点数に達したか否かを判定す
る。求めた交点数が最大交点数に達していれば全ての処
理を終了する。求めた交点数が最大交点数に達していな
ければ処理を続行する。
【0063】この処理を示すフローチャートが図21で
ある。図21のフローチャートの中で、ステップS20
0, S201, 202は、前記実施例と同様の処理なの
で、説明は省き、ステップS17−1またはステップS
17−2について説明する。ステップS17−1では、
ステップS201で算出された交点数が、最大交点数に
達したか否かを判定し、算出された交点数が最大交点数
に達していれば、全ての処理を終了する。算出された交
点数が最大交点数に達していなければ、処理を継続す
る。最大交点数は、例えば3次のベジェ曲線と円の場合
“6”となる。
【0064】上記のように算出された交点数が最大交点
数に達すると処理を終了することで、交点算出処理の短
縮を図った。 [実施例3] <楕円Eとの交点算出>本実施例のベジェ曲線と楕円E
との交点を算出する処理フローチャートを図22に示
す。ベジェ曲線P0123 のポリゴンP23
10 と楕円の交点の例は、図25に示すようになる。
【0065】図25の処理は次の処理からなる。 (1)曲線の2分割とポリゴンの生成(S300) この処理は実施例1のステップS100と同じなので説
明を省略する。 (2)ポリゴンPaのエッジと楕円Eとの交点(S30
1) ステップS301では、凸閉包ポリゴンPaのエッジと
楕円Eとの交点を求める。
【0066】図23は、ポリゴンPaのエッジと楕円E
との交点を求める処理の詳細なフローチャートである。
なお、図23の処理は、前記実施例2の円を楕円に置き
代えたものであるので、ここではステップS53−1の
楕円EとポリゴンPaの内外判定以外の説明は省略す
る。 (ステップS53−1:楕円とポリゴンの内外判定)ス
テップS300で生成された凸閉包ポリゴンPaに、楕
円が含まれているか否かの判定を行う。ポリゴンの全て
のエッジと交点を持たない楕円の場合は、楕円の外周の
1点がポリゴンの中に含まれるか否かの判定を行う。楕
円の外周の1点がポリゴンの中に含まれる場合は、楕円
はポリゴン中に含まれると判定する。楕円の外周の1点
がポリゴンの中に含まれない場合は、楕円はポリゴンが
完全に楕円に含まれているか否かを判定する。
【0067】楕円の外周の一点(x, y)は、x方向の
軸長をa,y方向の軸長をbとしてパラメータθを用い
て表すと、次の様になる。 (x, y)=(acos θ, bsin θ) 0≦θ≦2π 従って、任意のθに対して、点(x, y)がポリゴンの
内にあるか外にあるかを判定する。
【0068】実施例1及び2で説明したと同じように、
ベジェ曲線に対してベジェ曲線上の制御点において2分
割を繰り返し、本処理の再帰呼び出しを行うことによ
り、交点はベジェ曲線の始点及び終点となる制御点に収
束して行く。 (3)ポリゴンPbのエッジと楕円Eとの交点(S30
2) ステップS302で、凸閉包ポリゴンPbのエッジと楕
円Eとの交点を求める。
【0069】図24は、ポリゴンPbのエッジと楕円E
との交点を求める処理の詳細フローチャートである。な
お、図24は図23のポリゴンPaをポリゴンPbに置
き代えたものなので、説明を省略する。ここで、ステッ
プS301またはステップS302において求めた交点
が所定の誤差範囲内に入っていない場合は、更に、ステ
ップS301またはステップS302の中で、図22の
処理を再帰的に呼び出し、ベジェ曲線を更に2分割して
処理を行う。この処理を再帰的に続け、所定の距離範囲
内に誤差が入った所で交点と決定する。
【0070】但し、前記実施例と同様に、先に求めた交
点と後に求めた交点とが所定の距離範囲内の場合は、後
で求めた交点を捨てる。この処理により、ベジェ曲線と
楕円が接するような点付近で、交点が複数求まることを
防ぐことができる。また、交点の存在しない凸閉包ポリ
ゴンは評価対象としない処理をする。以上、本実施例に
よれば、ベジェ曲線と楕円の交点の算出を行うときに、
誤差の処理が容易な交点算出方式を提供するものであ
る。
【0071】<楕円弧との交点算出>本例は、楕円弧と
ベジェ曲線との交点を求めるものである。本例の処理で
は、前記実施例の図22に示すと同様に、楕円とベジェ
曲線との交点を求め、その後に求めた交点が楕円弧上に
あるか否かを判定する。求められた交点が楕円弧上にな
ければ無効とする。求めた交点が半無限線分上にあれば
交点とする。
【0072】この処理を示すフローチャートが図26で
ある。図26のフローチャートの中で、ステップS30
0, S301, S302は、前記実施例と同様の処理な
ので説明は省き、ステップS18−1またはステップS
18−2について説明する。ステップS18−1では、
ステップS301で算出された交点と楕円弧との最短距
離を算出し、最短距離が幾何的許容誤差ε以内であれ
ば、ステップS301で得られた交点をベジェ曲線と楕
円弧との交点とする。
【0073】一方、ステップS18−2では、ステップ
S302で算出された交点と楕円弧との最短距離を算出
し、最短距離が幾何的許容誤差ε以内であれば、ステッ
プS302で得られた交点をベジェ曲線と楕円弧との交
点とする。交点と楕円弧との最短距離が幾何的許容誤差
ε以上であれば、求めた交点を無効とし、RAM2また
は外部記憶装置11に登録されていた交点を削除する。
【0074】以上の処理により、ベジェ曲線と楕円弧と
の交点を求めることができる。 <交点算出処理の短縮>本例は、楕円弧とベジェ曲線と
の交点を求め、その算出された交点数が最大交点数に達
した場合の処理を示す実施例である。本例の処理では、
前記実施例の様に楕円とベジェ曲線との交点を求め、そ
の後に求めた交点数が最大交点数に達したか否かを判定
する。求めた交点数が最大交点数に達していれば全ての
処理を終了する。求めた交点数が最大交点数に達してい
なければ処理を続行する。
【0075】この処理を示すフローチャートが図27で
ある。図27のフローチャートの中で、ステップS30
0, S301, 302は、前記実施例と同様の処理なの
で、説明は省き、ステップS19−1またはステップS
19−2について説明する。ステップS19−1では、
ステップS301で算出された交点数が、最大交点数に
達したか否かを判定し、算出された交点数が最大交点数
に達していれば、全ての処理を終了する。算出された交
点数が最大交点数に達していなければ、処理を継続す
る。最大交点数は、例えば3次のベジェ曲線と楕円の場
合“6”となる。
【0076】上記のように算出された交点数が最大交点
数に達すると処理を終了することで、交点算出処理の短
縮を図った。以上の説明では、パラメータt=0. 5の
点でベジェ曲線の分割を行った。しかし、t=0. 3や
0. 7のように任意のパラメータ値で処理することがで
きる。
【0077】また、ベジェ曲線を2分割して処理を行っ
たが、例えば3分割や4分割等の任意の分割数で処理を
行えることはいうまでもない。更に、3次のベジェ曲線
を対象として説明したが、任意の次数nで処理を行うこ
とができる。更に、凸閉包ポリゴンを生成して交点算出
の処理を行ったが、このステップの計算コストが高いと
される場合は、制御点の座標の最大値及び最小値をとっ
て長方形を作り、この長方形を制御点ポリゴンの代わり
として処理を行うことができ、交点算出の計算の短縮が
可能である。
【0078】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きることはいうまでもない。
【0079】
【発明の効果】以上説明したように、本発明によれば、
ベジェ曲線と2次元図形(例えば、直線または円または
楕円等)との交点算出において、正確にベジェ曲線上に
存在する交点が求まる。すなわち、本発明では、交点を
基に新たに元の曲線の部分曲線を生成して行く過程で従
来起っていた誤差の蓄積、すなわち生成した部分曲線が
元の曲線に重ならなくなるために、新たに生成した部分
曲線と2次元図形(直線または円または楕円等)との交
点と真の交点との誤差の蓄積を未然に防ぐことが可能に
なった。従って、部分曲線が元の曲線上にないという矛
盾も防ぐことが可能となった。また、代数的方法で求ま
らなかった高い次数のベジェ曲線との交点も求めること
が可能となった。
【0080】更に、ベジェ曲線と2次元図形(直線また
は円または楕円等)との交点を漏れなく全て出力できる
効果がある。
【図面の簡単な説明】
【図1】本実施例の図形処理装置のブロック図である。
【図2】ベジェ曲線の例を示す図である。
【図3】ベジェ曲線の性質を考察するための図である。
【図4】実施例1のベジェ曲線と直線との交点を算出す
る処理フローチャートである。
【図5】ベジェ曲線の2分割と凸閉包ポリゴンの生成と
を示すフローチャートである。
【図6】ポリゴンPaと直線との交点を求める処理フロ
ーチャートである。
【図7】ポリゴンPbと直線との交点を求める処理フロ
ーチャートである。
【図8】制御点に対するポリゴンの例を示す図である。
【図9】図8のポリゴンと直線の交点の例を示す図であ
る。
【図10】ベジェ曲線の分割を示す図である。
【図11】図10で分割されたベジェ曲線の凸閉包ポリ
ゴンの生成を説明するための図である。
【図12】図11で生成されたポリゴンと直線との交点
を説明するための図である。
【図13】ベジェ曲線と有限線分との交点の算出をする
ためのフローチャートである。
【図14】ベジェ曲線と半無限直線との交点の算出をす
るためのフローチャートである。
【図15】ベジェ曲線と直線との最大交点数による終了
の処理フローチャートである。
【図16】実施例2のベジェ曲線と円との交点を算出す
る処理フローチャートである。
【図17】ポリゴンPaと円との交点を求める処理フロ
ーチャートである。
【図18】ポリゴンPbと円の交点を求めるフローチャ
ートである。
【図19】ポリゴンと交点の例を示す図である。
【図20】ベジェ曲線と円弧との交点を算出するための
フローチャートである。
【図21】ベジェ曲線と円との最大交点数による終了の
処理フローチャートである。
【図22】実施例3のベジェ曲線と楕円との交点を算出
する処理フローチャートである。
【図23】ポリゴンPaと楕円との交点を求める処理フ
ローチャートである。
【図24】ポリゴンPbと楕円との交点を求める処理フ
ローチャートである。
【図25】ポリゴンと楕円の交点の例を示す図である。
【図26】ベジェ曲線と楕円弧との交点を算出するため
のフローチャートである。
【図27】ベジェ曲線と楕円との最大交点数による終了
の処理フローチャートである。
【図28】従来のベジェ曲線と直線との交点を求める時
の誤差を説明するための図である。
【図29】従来のベジェ曲線と円との交点を求める時の
誤差を説明するための図である。
【図30】従来のベジェ曲線と楕円との交点を求める時
の誤差を説明するための図である。
【符号の説明】
1 中央処理装置(CPU) 2 ランダム・アクセス・メモリ(RAM) 3 リード・オンリー・メモリ(ROM) 4 バス 5 入力インターフェース 6 入力装置(キーボード,マウス) 7 出力インターフェース 8 表示出力 9 印刷出力 10 外部記憶装置インターフェース 11 外部記憶装置(ファイル) 21 制御点格納領域 22 2次元図形格納領域 23 交点格納領域 23a 凸閉包ポリゴン交点 23b ベジェ曲線交点 31 処理プログラム 32 パラメータ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06T 11/20 G06T 11/60

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 図形処理装置でベジェ曲線と2次元図形
    との交点を算出する交点算出方法であって、記憶手段に制御点により記憶されている 交点算出の対象
    となるベジェ曲線から、de Casteljauのアルゴリズムに
    従って該ベジェ曲線上の制御点であるn次までの制御点
    を順次算出して、算出された制御点を前記記憶手段に記
    憶し、該ベジェ曲線前記ベジェ曲線上の制御点で分割
    するベジェ曲線分割ステップと、 前記分割されたベジェ曲線の各々に対応して、前記記憶
    手段に記憶された制御点から複数の凸閉包ポリゴンを生
    成する凸閉包ポリゴン生成ステップと、 前記複数の凸閉包ポリゴンの各凸閉包ポリゴンと、前記
    記憶手段に前記ベジェ曲線と同じ座標系で記憶されてい
    交点算出の対象となる2次元図形との交点を求めて、
    前記記憶手段に記憶する交点算出ステップと、 前記分割されたベジェ曲線の始点及び終点となる制御点
    と求められた前記交点との距離を求めて、該距離が幾何
    学的許容誤差以内である場合に、前記記憶手段に記憶さ
    れた前記始点及び終点となる制御点の一方をベジェ曲線
    と2次元図形との交点と決定する交点決定ステップとを
    備えることを特徴とするベジェ曲線と2次元図形との交
    点算出方法。
  2. 【請求項2】 前記交点決定ステップは、 前記分割されたベジェ曲線の始点及び終点となる制御点
    と求められた前記交点との距離が幾何学的許容誤差以内
    である場合に、前記始点あるいは終点となる制御点をベ
    ジェ曲線と2次元図形との交点候補とするステップと、 前記交点候補と前記分割されたベジェ曲線と2次元図形
    との既に求められた交点との距離が幾何学的許容誤差以
    内でない場合は、前記交点候補を交点とするステップと
    を備えることを特徴とする請求項1記載のベジェ曲線と
    2次元図形との交点算出方法。
  3. 【請求項3】 前記交点決定ステップは、前記交点候補
    と前記分割されたベジェ曲線と2次元図形との既に求め
    られた交点との距離が幾何学的許容誤差以内である場合
    は、前記交点候補を無効とするステップを更に備えるこ
    とを特徴とする請求項2記載のベジェ曲線と2次元図形
    との交点算出方法。
  4. 【請求項4】 前記分割されたベジェ曲線の始点及び終
    点となる制御点と求められた前記交点との距離が幾何学
    的許容誤差以内でない場合に、前記分割されたベジェ曲
    線の1つを交点算出の対象となるベジェ曲線と見なし
    て、再帰的に前記曲線分割ステップと凸閉包ポリゴン生
    成ステップと交点算出ステップとを繰り返す再帰処理ス
    テップを更に備えることを特徴とする請求項1記載のベ
    ジェ曲線と2次元図形との交点算出方法。
  5. 【請求項5】 前記交点算出ステップでは、1つの前記
    凸閉包ポリゴンと2次元図形との交点が算出されない場
    合に、前記複数の凸閉包ポリゴンの他の凸閉包ポリゴン
    と2次元図形との交点を求め、前記複数の凸閉包ポリゴ
    ンの全てと交点が算出されない場合には、その再帰処理
    から抜けることを特徴とする請求項4記載のベジェ曲線
    と2次元図形との交点算出方法。
  6. 【請求項6】 前記2次元図形が区間制限のある図形で
    あって、前記求めた交点が前記区間内にない場合には交
    点としない交点制限ステップを更に備えることを特徴と
    する請求項1記載のベジェ曲線と2次元図形との交点算
    出方法。
  7. 【請求項7】 前記交点算出の対象となるベジェ曲線の
    次数と2次元図形より予め最大の交点数を定め、求めた
    交点数が前記予め定めた最大交点数を満たせば処理を終
    了する処理制限ステップを更に備えることを特徴とする
    請求項1記載のベジェ曲線と2次元図形との交点算出方
    法。
  8. 【請求項8】 前記凸閉包ポリゴンを、ベジェ曲線の制
    御点の座標の最大値と最小値とに基づいて形成された長
    方形で代用することを特徴とする請求項1乃至7のいず
    れか1つに記載のベジェ曲線と2次元図形との交点算出
    方法。
  9. 【請求項9】 前記2次元図形は、無限直線,有限線
    分,半無限直線,円,円弧,楕円,楕円弧を含むことを
    特徴とする請求項1乃至8のいずれか1つに記載のベジ
    ェ曲線と2次元図形との交点算出方法。
  10. 【請求項10】 ベジェ曲線と2次元図形との交点を算
    出する図形処理装置であって、 交点算出の対象となるn次のベジェ曲線を制御点で記憶
    するベジェ曲線記憶手段と、 de Casteljauのアルゴリズムに従って該ベジェ曲線上の
    制御点であるn次までの制御点を順次算出して、該n次
    の制御点の少なくとも1つを新たな始点及び終点となる
    制御点として、複数の凸閉包ポリゴンを生成して記憶す
    る凸閉包ポリゴン生成手段と、 記憶された前記複数の凸閉包ポリゴンの各凸閉包ポリゴ
    ンと交点算出の対象となる2次元図形との交点を求める
    交点算出手段と、 前記各凸閉包ポリゴンの始点及び終点となる制御点と前
    記交点算出手段で求められた前記交点との距離が幾何学
    的許容誤差以内である場合に、前記始点及び終点となる
    制御点の一方をベジェ曲線と2次元図形との交点とする
    交点決定手段とを備えることを特徴とする図形処理装
    置。
  11. 【請求項11】 前記交点決定手段は、前記始点及び終
    点となる制御点と求められた前記交点との距離が幾何学
    的許容誤差以内である場合に、前記始点あるいは終点と
    なる制御点をベジェ曲線と2次元図形との交点候補と
    し、前記交点候補と前記ベジェ曲線と2次元図形との既
    に求められた交点との距離が幾何学的許容誤差以内でな
    い場合は、前記交点候補を交点とすることを特徴とする
    請求項10記載の図形処理装置。
  12. 【請求項12】 前記交点決定手段は、 前記始点及び終点となる制御点と求められた前記交点と
    の距離が幾何学的許容誤差以内でない場合に、前記生成
    された凸閉包ポリゴンの制御点を交点算出の対象となる
    ベジェ曲線の制御点と見なして記憶し、再帰的に前記凸
    閉包ポリゴン生成手段と交点算出手段とによる処理を繰
    り返すよう指示することを特徴とする請求項10記載の
    図形処理装置。
  13. 【請求項13】 前記交点決定手段は、 前記2次元図形が区間制限のある図形である場合に、前
    記求めた交点が前記区間内にない場合には交点としない
    交点制限手段を更に備えることを特徴とする請求項10
    記載の図形処理装置。
  14. 【請求項14】 前記交点算出の対象となるベジェ曲線
    の次数と2次元図形より予め最大の交点数を定める最大
    交点数設定手段を更に備え、前記交点決定手段は、求め
    た交点数が前記予め定めた最大交点数を満たせば処理を
    終了することを特徴とする請求項10記載の図形処理装
    置。
  15. 【請求項15】 前記2次元図形は、無限直線,有限線
    分,半無限直線,円,円弧,楕円,楕円弧を含むことを
    特徴とする請求項10乃至14のいずれか1つに記載の
    図形処理装置。
JP3533295A 1995-02-23 1995-02-23 ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置 Expired - Lifetime JP3445010B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3533295A JP3445010B2 (ja) 1995-02-23 1995-02-23 ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3533295A JP3445010B2 (ja) 1995-02-23 1995-02-23 ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置

Publications (2)

Publication Number Publication Date
JPH08235368A JPH08235368A (ja) 1996-09-13
JP3445010B2 true JP3445010B2 (ja) 2003-09-08

Family

ID=12438886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3533295A Expired - Lifetime JP3445010B2 (ja) 1995-02-23 1995-02-23 ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置

Country Status (1)

Country Link
JP (1) JP3445010B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109141338A (zh) * 2018-07-18 2019-01-04 上海华测导航技术股份有限公司 一种基于贝塞尔曲线拟合路径的农机作业面积计算方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6396492B1 (en) * 1999-08-06 2002-05-28 Mitsubishi Electric Research Laboratories, Inc Detail-directed hierarchical distance fields
KR100788650B1 (ko) 2001-10-13 2007-12-26 삼성전자주식회사 고밀도 디스크
JP4844449B2 (ja) * 2006-04-17 2011-12-28 日本ビクター株式会社 動画像符号化装置、方法、プログラム、動画像復号化装置、方法、およびプログラム
JP5687612B2 (ja) * 2011-12-21 2015-03-18 京セラドキュメントソリューションズ株式会社 画像形成装置
KR102237559B1 (ko) * 2015-12-09 2021-04-07 현대자동차주식회사 고정밀 지도의 제공을 위한 세그먼트 모델링 기반의 도로의 형상 정보 생성 방법
CN112419440A (zh) * 2020-11-10 2021-02-26 深圳市益欣网络科技有限公司 一种2d水滴张力模拟粘合方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
鳥谷浩志,千代倉弘明,3次元CADの基礎と応用,日本,共立出版株式会社,1991年 2月25日,pp.96−98

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109141338A (zh) * 2018-07-18 2019-01-04 上海华测导航技术股份有限公司 一种基于贝塞尔曲线拟合路径的农机作业面积计算方法
CN109141338B (zh) * 2018-07-18 2021-03-26 上海华测导航技术股份有限公司 一种基于贝塞尔曲线拟合路径的农机作业面积计算方法

Also Published As

Publication number Publication date
JPH08235368A (ja) 1996-09-13

Similar Documents

Publication Publication Date Title
Gopal et al. Solving Laplace problems with corner singularities via rational functions
US7714867B2 (en) Topology determination, decomposable shape generation, and structured mesh generation
JP2001526813A (ja) 基準ベースのパラメータ寸法決定方法及びシステム
Huang An exact solution for the roundness evaluation problems
JP3445010B2 (ja) ベジェ曲線と2次元図形との交点算出方法及びこれを実現する図形処理装置
Pascal et al. Fast adaptive quadtree mesh generation
JPH11345344A (ja) 3次曲線を与える方法及び装置
US8249392B2 (en) Method for aligning point clouds
JP3332476B2 (ja) 図形修正方法及びそれを実施する情報処理装置
JPH05250480A (ja) 自由形式ストロークの生成方法
JPH04679A (ja) 座標格子作成支援方法及びその装置
CN115130340A (zh) 基于分数布朗运动的管道建模方法
US20030225553A1 (en) Topology modeler
JP3988945B2 (ja) 図形データ処理方法、図形データ処理プログラム及びそのプログラムを記録した記録媒体
US20020130882A1 (en) Approximating gradients with offset midpoints
Ratschek et al. Scci-hybrid methods for 2d curve tracing
JP2870397B2 (ja) 図面の塗り潰し方法
JP3067704B2 (ja) エッジ検出方法及び装置
JP3754575B2 (ja) 形状解析装置及び方法
JPH09212675A (ja) Cad装置
US6516307B1 (en) Next alternative generating apparatus using simulated annealing and method thereof
US10529444B1 (en) System that rapidly generates a solvent-excluded surface
JP2662856B2 (ja) 形状特徴計測装置および方法
JP2684609B2 (ja) 図形データ処理装置における図形表示方法
JPH05324921A (ja) 曲線形成方法および装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030606

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

Free format text: PAYMENT UNTIL: 20080627

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090627

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100627

Year of fee payment: 7