JPH04223577A - 3次ベジェ曲線の描画方法 - Google Patents
3次ベジェ曲線の描画方法Info
- Publication number
- JPH04223577A JPH04223577A JP40634390A JP40634390A JPH04223577A JP H04223577 A JPH04223577 A JP H04223577A JP 40634390 A JP40634390 A JP 40634390A JP 40634390 A JP40634390 A JP 40634390A JP H04223577 A JPH04223577 A JP H04223577A
- Authority
- JP
- Japan
- Prior art keywords
- point
- bezier curve
- cubic bezier
- straight line
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000010586 diagram Methods 0.000 description 8
- 238000007796 conventional method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】この発明は、始点、終点、および
2つの制御点の4点で定義される3次ベジェ曲線を再帰
分割し、分割後の各セグメントが予め設定された許容値
より平坦であると判断された時点で分割を止めてこれを
始点と終点を結ぶ直線で近似して描画する3次ベジェ曲
線の描画方法に関し、特に上記平坦の判断の基準に関す
る。
2つの制御点の4点で定義される3次ベジェ曲線を再帰
分割し、分割後の各セグメントが予め設定された許容値
より平坦であると判断された時点で分割を止めてこれを
始点と終点を結ぶ直線で近似して描画する3次ベジェ曲
線の描画方法に関し、特に上記平坦の判断の基準に関す
る。
【0002】
【従来の技術】一般に、始点、終点、および2つの制御
点の4点で定義される3次ベジェ曲線は、形状を変える
ことなく2つの3次ベジェ曲線に分割できることが知ら
れている。特に、3次ベジェ曲線をP(t) (0≦t
≦1)なるパラメトリック曲線で表現した際のP(0.
5) なる点において2つの3次ベジェ曲線に分割する
方法は、手続も容易でありよく用いられている。
点の4点で定義される3次ベジェ曲線は、形状を変える
ことなく2つの3次ベジェ曲線に分割できることが知ら
れている。特に、3次ベジェ曲線をP(t) (0≦t
≦1)なるパラメトリック曲線で表現した際のP(0.
5) なる点において2つの3次ベジェ曲線に分割する
方法は、手続も容易でありよく用いられている。
【0003】例えば、図5に示す4点P0 ,P1 ,
P2 ,P3 で定義される3次ベジェ曲線は形状を変
えることなく2つの3次ベジェ曲線、すなわち4点P0
,Q01,R1 ,R2 で定義される3次ベジェ曲
線および4点R2 ,R3 ,Q23,P3 で定義さ
れる3次ベジェ曲線に分割できる。ここで、 Q01=(P0 +P1 )/2 R1 =(P0 +2P1 +P2 )/4R2 ={
P0 +3(P1 +P2 )+P3 }/4R3 =
(P1 +2P2 +P3 )/4Q23=(P2 +
P3 )/2 である。
P2 ,P3 で定義される3次ベジェ曲線は形状を変
えることなく2つの3次ベジェ曲線、すなわち4点P0
,Q01,R1 ,R2 で定義される3次ベジェ曲
線および4点R2 ,R3 ,Q23,P3 で定義さ
れる3次ベジェ曲線に分割できる。ここで、 Q01=(P0 +P1 )/2 R1 =(P0 +2P1 +P2 )/4R2 ={
P0 +3(P1 +P2 )+P3 }/4R3 =
(P1 +2P2 +P3 )/4Q23=(P2 +
P3 )/2 である。
【0004】このように、3次ベジェ曲線は分割を繰り
返し再帰的に適用することで、際限なく細分することが
できる。この3次ベジェ曲線の性質は3次ベジェ曲線を
描画する際に利用される。つまり、描画しようとする3
次ベジェ曲線を再帰分割し、分割後の各セグメントが予
め設定しておいた許容値より平坦であると判断された時
点でこの分割を止め、このときの各セグメントを始点と
終点を結ぶ直線で近似して描画することにより、近似的
な3次ベジェ曲線を描くことができる。この平坦を判断
する許容値は一般にフラットネスと呼ばれ、このフラッ
トネスの値が小さくなるほど滑らかな3次ベジェ曲線を
得ることができる。
返し再帰的に適用することで、際限なく細分することが
できる。この3次ベジェ曲線の性質は3次ベジェ曲線を
描画する際に利用される。つまり、描画しようとする3
次ベジェ曲線を再帰分割し、分割後の各セグメントが予
め設定しておいた許容値より平坦であると判断された時
点でこの分割を止め、このときの各セグメントを始点と
終点を結ぶ直線で近似して描画することにより、近似的
な3次ベジェ曲線を描くことができる。この平坦を判断
する許容値は一般にフラットネスと呼ばれ、このフラッ
トネスの値が小さくなるほど滑らかな3次ベジェ曲線を
得ることができる。
【0005】この3次ベジェ曲線を直線に近似して描く
方法は各セグメントを平坦と判断する基準が重要になる
。この3次ベジェ曲線の各セグメントが平坦と判断する
基準は、従来、以下に示すような方法がとられていた。 なお、以下の説明において4点P0 ,P1 ,P2
,P3 で定義される3次ベジェ曲線は曲線P(t)
(0≦t≦1)で表わされるものとする。
方法は各セグメントを平坦と判断する基準が重要になる
。この3次ベジェ曲線の各セグメントが平坦と判断する
基準は、従来、以下に示すような方法がとられていた。 なお、以下の説明において4点P0 ,P1 ,P2
,P3 で定義される3次ベジェ曲線は曲線P(t)
(0≦t≦1)で表わされるものとする。
【0006】従来用いられていた3次ベジェ曲線を平坦
と判断する第1の方法は、図6に示すように曲線P(t
) 上の点P(0.5) と直線P0P3 の中点Qと
の距離dを求め、この距離dと予め設定されていた許容
値dMAX との間に d<dMAX が成立すると、この3次ベジェ曲線は平坦であると判断
する。
と判断する第1の方法は、図6に示すように曲線P(t
) 上の点P(0.5) と直線P0P3 の中点Qと
の距離dを求め、この距離dと予め設定されていた許容
値dMAX との間に d<dMAX が成立すると、この3次ベジェ曲線は平坦であると判断
する。
【0007】また、第2の方法は、図7に示すように、
3次ベジェ曲線を定義する4点P0 ,P1 ,P2
,P3 のバウンディングボックス(x11,y11)
−(xur,yur)を(xur,yur)を形成する
はバウンディングボックスの右上隅の座標を示す。この
とき xur−x11<dMAX または yur−y11<dMAX であれば、この3次ベジェ曲線は平坦であると判断する
。
3次ベジェ曲線を定義する4点P0 ,P1 ,P2
,P3 のバウンディングボックス(x11,y11)
−(xur,yur)を(xur,yur)を形成する
はバウンディングボックスの右上隅の座標を示す。この
とき xur−x11<dMAX または yur−y11<dMAX であれば、この3次ベジェ曲線は平坦であると判断する
。
【0008】
【発明が解決しようとする課題】しかし、このような従
来の方法は以下に示すような欠点がある。
来の方法は以下に示すような欠点がある。
【0009】すなわち、上記第1の方法は、図8(a)
に示すように3次ベジェ曲線P(t) が、かまぼこ型
の場合はよいが、図8(b)に示すように3次ベジェ曲
線P(t) が、直線P0 P3と交わるような場合は
、曲線P(t) 上の点P(0.5) と直線P0 P
3 の中点Qとの距離dは非常に小さくなり、曲線P(
t) が平坦でないのにもかかわらず、関係d<dMA
X が成立し、曲線P(t) を平坦であると判断して
しまう。この場合は、3次ベジェ曲線の分割が十分では
ないにもかかわらず、分割を止めてしまうことになり、
結局所望の滑らかな近似3次ベジェ曲線を得ることがで
きない。
に示すように3次ベジェ曲線P(t) が、かまぼこ型
の場合はよいが、図8(b)に示すように3次ベジェ曲
線P(t) が、直線P0 P3と交わるような場合は
、曲線P(t) 上の点P(0.5) と直線P0 P
3 の中点Qとの距離dは非常に小さくなり、曲線P(
t) が平坦でないのにもかかわらず、関係d<dMA
X が成立し、曲線P(t) を平坦であると判断して
しまう。この場合は、3次ベジェ曲線の分割が十分では
ないにもかかわらず、分割を止めてしまうことになり、
結局所望の滑らかな近似3次ベジェ曲線を得ることがで
きない。
【0010】また、第2の方法は、直線P0 P3の方
向が図7(a)に示すように、水平または垂直に近い場
合はよいが、直線P0 P3の方向が図7(b)に示す
ようにバウンディングボックスの対角線の方向に向かっ
ていると、実際は曲線P(t) が平坦になっても、こ
れを平坦と判断しない。この場合は、必要以上に分割が
行われることになり近似3次ベジェ曲線を描画するため
の処理量が増大してしまう。
向が図7(a)に示すように、水平または垂直に近い場
合はよいが、直線P0 P3の方向が図7(b)に示す
ようにバウンディングボックスの対角線の方向に向かっ
ていると、実際は曲線P(t) が平坦になっても、こ
れを平坦と判断しない。この場合は、必要以上に分割が
行われることになり近似3次ベジェ曲線を描画するため
の処理量が増大してしまう。
【0011】そこで、この発明は3次ベジェ曲線の各セ
グメントを適格に平坦と判断することができ、必要以上
に処理量が増大せず、かつ確実に滑らかな近似3次ベジ
ェ曲線を得ることができる3次ベジェ曲線の描画方法を
提供することを目的とする。
グメントを適格に平坦と判断することができ、必要以上
に処理量が増大せず、かつ確実に滑らかな近似3次ベジ
ェ曲線を得ることができる3次ベジェ曲線の描画方法を
提供することを目的とする。
【0012】
【課題を解決するための手段】上記目的を達成するため
、この発明によれば、3次ベジェ曲線の各セグメントを
平坦であると判断する基準を、始点P0 と終点P3
とを結ぶ直線P0 P3 と、制御点P1 、制御点P
2 との2つの距離d1 、d2 のいずれもが予め設
定された許容値dMAX より小さくなるとすることを
特徴とする。
、この発明によれば、3次ベジェ曲線の各セグメントを
平坦であると判断する基準を、始点P0 と終点P3
とを結ぶ直線P0 P3 と、制御点P1 、制御点P
2 との2つの距離d1 、d2 のいずれもが予め設
定された許容値dMAX より小さくなるとすることを
特徴とする。
【0013】また、この発明によれば、3次ベジェ曲線
の各セグメントを平坦であると判断する基準を、始点P
0 と終点P3 とを結ぶ直線P0 P3 の中点Qと
、制御点P1 、制御点P2 との2つの距離d1 、
d2 のいずれもが予め設定された許容値dMAX よ
り小さくなるとすることを特徴とする。
の各セグメントを平坦であると判断する基準を、始点P
0 と終点P3 とを結ぶ直線P0 P3 の中点Qと
、制御点P1 、制御点P2 との2つの距離d1 、
d2 のいずれもが予め設定された許容値dMAX よ
り小さくなるとすることを特徴とする。
【0014】
【作用】始点P0 と終点P3 とを結ぶ直線P0 P
3 と、制御点P1 、制御点P2 との2つの距離d
1 、d2 のいずれもが予め設定された許容値dMA
X より小さくなった場合、または始点P0 と終点P
3 とを結ぶ直線P0 P3 の中点Qと、制御点P1
、制御点P2 との2つの距離d1 、d2 のいず
れもが予め設定された許容値dMAX より小さくなっ
た場合、またはその両者が成立した場合は、再帰的に分
割した3次ベジェ曲線の各セグメントを平坦であると判
断し、この分割を止め、それぞれのセグメントを直線で
近似して3次ベジェ曲線を描画する。
3 と、制御点P1 、制御点P2 との2つの距離d
1 、d2 のいずれもが予め設定された許容値dMA
X より小さくなった場合、または始点P0 と終点P
3 とを結ぶ直線P0 P3 の中点Qと、制御点P1
、制御点P2 との2つの距離d1 、d2 のいず
れもが予め設定された許容値dMAX より小さくなっ
た場合、またはその両者が成立した場合は、再帰的に分
割した3次ベジェ曲線の各セグメントを平坦であると判
断し、この分割を止め、それぞれのセグメントを直線で
近似して3次ベジェ曲線を描画する。
【0015】
【実施例】まず、この発明の3次ベジェ曲線の描画方法
の一実施例における3次ベジェ曲線の描画原理について
説明する。この発明における3次ベジェ曲線の描画方法
は、3次ベジェ曲線の再帰分割の方法とフラットネスの
概念を利用することにより、描画しようとする3次ベジ
ェ曲線を複数の直線で近似して描画する。すなわち、ま
ず、描画しようとする3次ベジェ曲線を再帰的に分割し
、それぞれ3次ベジェ曲線からなる複数のセグメントを
求める。そして各分割の操作毎に分割したセグメントの
フラットネスを判断する。このフラットネスの判断にお
いて、分割したセグメントが一定のフラットネスの条件
を満足していないと更に3次ベジェ曲線の再帰的分割を
進め、分割したセグメントが一定のフラットネスの条件
を満足するとこの3次ベジェ曲線の再帰的分割を止め、
分割した各セグメントを構成する3次ベジェ曲線をそれ
ぞれ直線で近似し、これによって描画しようとする3次
ベジェ曲線の描画を行う。
の一実施例における3次ベジェ曲線の描画原理について
説明する。この発明における3次ベジェ曲線の描画方法
は、3次ベジェ曲線の再帰分割の方法とフラットネスの
概念を利用することにより、描画しようとする3次ベジ
ェ曲線を複数の直線で近似して描画する。すなわち、ま
ず、描画しようとする3次ベジェ曲線を再帰的に分割し
、それぞれ3次ベジェ曲線からなる複数のセグメントを
求める。そして各分割の操作毎に分割したセグメントの
フラットネスを判断する。このフラットネスの判断にお
いて、分割したセグメントが一定のフラットネスの条件
を満足していないと更に3次ベジェ曲線の再帰的分割を
進め、分割したセグメントが一定のフラットネスの条件
を満足するとこの3次ベジェ曲線の再帰的分割を止め、
分割した各セグメントを構成する3次ベジェ曲線をそれ
ぞれ直線で近似し、これによって描画しようとする3次
ベジェ曲線の描画を行う。
【0016】この実施例においては上記フラットネスの
判断を以下のようにして行う。
判断を以下のようにして行う。
【0017】すなわち、分割した各セグメントを構成す
る3次ベジェ曲線が、図1に示すように、始点P0 、
終点P3 、および2つの制御点P1、P2 の4点で
定義される3次ベジェ曲線となったとする。この3次ベ
ジェ曲線は、四辺形P0 P1 P2 P3 または四
辺形P0 P2 P1 P3 に包含されることが知ら
れている。
る3次ベジェ曲線が、図1に示すように、始点P0 、
終点P3 、および2つの制御点P1、P2 の4点で
定義される3次ベジェ曲線となったとする。この3次ベ
ジェ曲線は、四辺形P0 P1 P2 P3 または四
辺形P0 P2 P1 P3 に包含されることが知ら
れている。
【0018】そこで、この3次ベジェ曲線のフラットネ
スdを3次ベジェ曲線と直線P0 P3 との距離の最
大値と定義すると、次の関係が成り立つ。
スdを3次ベジェ曲線と直線P0 P3 との距離の最
大値と定義すると、次の関係が成り立つ。
【0019】d1 ≧d
または
d2 ≧d
ここで、d1 、d2 はそれぞれ制御点P1 、P2
と直線P0 P3 との距離である。
と直線P0 P3 との距離である。
【0020】そこで、この実施例においてはフラットネ
スの閾値をdMAX としたとき、 d1 <dMAX と d2 <dMAX の2つの条件がともに満足したとき、この3次ベジェ曲
線を平坦と判断し、この時点で3次ベジェ曲線の再帰的
分割を止め、分割した各セグメントを構成する3次ベジ
ェ曲線をそれぞれ直線P0 P3 で近似して3次ベジ
ェ曲線を描画する。
スの閾値をdMAX としたとき、 d1 <dMAX と d2 <dMAX の2つの条件がともに満足したとき、この3次ベジェ曲
線を平坦と判断し、この時点で3次ベジェ曲線の再帰的
分割を止め、分割した各セグメントを構成する3次ベジ
ェ曲線をそれぞれ直線P0 P3 で近似して3次ベジ
ェ曲線を描画する。
【0021】このような構成によると、従来の方法にお
いては平坦の判断を誤ってしまう図8(b)に示すよう
な場合にも正しく平坦の判断を行うことができる。また
、図7(b)に示したような場合でも必要以上に細かく
再帰的分割をすすめてしまう不都合も生じない。
いては平坦の判断を誤ってしまう図8(b)に示すよう
な場合にも正しく平坦の判断を行うことができる。また
、図7(b)に示したような場合でも必要以上に細かく
再帰的分割をすすめてしまう不都合も生じない。
【0022】図2は、上述した原理にもとづき構成した
グラフィック描画装置を示したものである。このグラフ
ィック描画装置においては3次ベジェ曲線と直線からな
るグラフィックデータを描画する。
グラフィック描画装置を示したものである。このグラフ
ィック描画装置においては3次ベジェ曲線と直線からな
るグラフィックデータを描画する。
【0023】描画を指示する描画コマンド10は、まず
、描画コマンド選択部11に取り込まれる。ここで、描
画コマンド10が直線の描画を指示するものであると、
描画コマンド選択部11はこの直線の始点P0 と終点
P1 を示すデータを直線描画部14に送る。直線描画
部14はこれにより始点P0 と終点P1 を結ぶ点列
を発生しこれを画像メモリー部15に書き込む。これに
より始点P0 、と終点P1 とする直線が描画される
。
、描画コマンド選択部11に取り込まれる。ここで、描
画コマンド10が直線の描画を指示するものであると、
描画コマンド選択部11はこの直線の始点P0 と終点
P1 を示すデータを直線描画部14に送る。直線描画
部14はこれにより始点P0 と終点P1 を結ぶ点列
を発生しこれを画像メモリー部15に書き込む。これに
より始点P0 、と終点P1 とする直線が描画される
。
【0024】次に、描画コマンド10が3次ベジェ曲線
の描画を指示するものであると、この3次ベジェ曲線を
定義する始点P0 、終点P3 、および2つの制御点
P1 、P2 の4点P0 、P1 、P2、P3 を
示すデータは平坦処理部12に送られ、この3次ベジェ
曲線が平坦であるかの判断がなされる。ここで平坦でな
いと判断されると、この3次ベジェ曲線を定義する4点
P0 、P1 、P2 、P3 のデータはベジェ曲線
分割部13に送られ、この4点P0 、P1 、P2
、P3 で定義される3次ベジェ曲線は2つの3次ベジ
ェ曲線に分割される。この分割された3次ベジェ曲線を
定義する4点のデータは再び平坦処理部12に送られ、
この3次ベジェ曲線が平坦であるかの判断がなされる。 この動作を平坦処理部12で平坦と判断されるまで再帰
的に繰り返す。
の描画を指示するものであると、この3次ベジェ曲線を
定義する始点P0 、終点P3 、および2つの制御点
P1 、P2 の4点P0 、P1 、P2、P3 を
示すデータは平坦処理部12に送られ、この3次ベジェ
曲線が平坦であるかの判断がなされる。ここで平坦でな
いと判断されると、この3次ベジェ曲線を定義する4点
P0 、P1 、P2 、P3 のデータはベジェ曲線
分割部13に送られ、この4点P0 、P1 、P2
、P3 で定義される3次ベジェ曲線は2つの3次ベジ
ェ曲線に分割される。この分割された3次ベジェ曲線を
定義する4点のデータは再び平坦処理部12に送られ、
この3次ベジェ曲線が平坦であるかの判断がなされる。 この動作を平坦処理部12で平坦と判断されるまで再帰
的に繰り返す。
【0025】平坦処理部12で3次ベジェ曲線、すなわ
ち分割されたセグメントが平坦であると判断されると、
この3次ベジェ曲線の始点P0 と終点P3 を示すデ
ータを直線描画部14に送出する。これにより、直線描
画部14は始点P0 と終点P3 を結ぶ点列を発生し
これを画像メモリー部15に書き込み、始点P0 、と
終点P3 とする直線P0 P3が描画される。このよ
うにして再帰分割された全ての3次ベジェ曲線に対応す
る直線P0 P3 が描画されると、直線により近似さ
れた3次ベジェ曲線の描画が完了する。
ち分割されたセグメントが平坦であると判断されると、
この3次ベジェ曲線の始点P0 と終点P3 を示すデ
ータを直線描画部14に送出する。これにより、直線描
画部14は始点P0 と終点P3 を結ぶ点列を発生し
これを画像メモリー部15に書き込み、始点P0 、と
終点P3 とする直線P0 P3が描画される。このよ
うにして再帰分割された全ての3次ベジェ曲線に対応す
る直線P0 P3 が描画されると、直線により近似さ
れた3次ベジェ曲線の描画が完了する。
【0026】ところで、この実施例において、平坦処理
部12では図1で説明した方法により3次ベジェ曲線の
平坦を判断する。
部12では図1で説明した方法により3次ベジェ曲線の
平坦を判断する。
【0027】すなわち、直線P0 P3 と制御点P1
、P2とのそれぞれの距離d1 、d2 を次式d1
=|P0x(P3y−P1y)+P1x(P0y−P
3y)+P3x(P1y−P0y)|/[2{ (P0
x−P3x)2 +(P0y−P3y)2 } 1/2
]d2=|P0x(P3y−P2y)+P2x(P0
y−P3y)+P3x(P2y−P0y)|/[2{
(P0x−P3x)2 +(P0y−P3y)2 }
1/2 ](ここで、点P0 、P1 、P2 、P3
の座標をそれぞれP0(P0x,P0y)、P1(P
1x,P1y)、P2(P2x,P2y)、P3(P3
x,P3y)とする)で求め、これら距離d1 、d2
を予め設定してある閾値dMAX と比較し、 d1 <dMAX かつ d2 <dMAX のとき、始点P0 、終点P3 、および2つの制御点
P1 、P2 で定義される3次ベジェ曲線を平坦と判
断する。
、P2とのそれぞれの距離d1 、d2 を次式d1
=|P0x(P3y−P1y)+P1x(P0y−P
3y)+P3x(P1y−P0y)|/[2{ (P0
x−P3x)2 +(P0y−P3y)2 } 1/2
]d2=|P0x(P3y−P2y)+P2x(P0
y−P3y)+P3x(P2y−P0y)|/[2{
(P0x−P3x)2 +(P0y−P3y)2 }
1/2 ](ここで、点P0 、P1 、P2 、P3
の座標をそれぞれP0(P0x,P0y)、P1(P
1x,P1y)、P2(P2x,P2y)、P3(P3
x,P3y)とする)で求め、これら距離d1 、d2
を予め設定してある閾値dMAX と比較し、 d1 <dMAX かつ d2 <dMAX のとき、始点P0 、終点P3 、および2つの制御点
P1 、P2 で定義される3次ベジェ曲線を平坦と判
断する。
【0028】なお、
d1 <dMAX
かつ
d2 <dMAX
の判断は、各式の両辺に
2{ (P0x−P3x)2 +(P0y−P3y)2
} 1/2 をかけ、更に2乗することで、一般に低
速な割算、平方根の各演算を避けることができる。
} 1/2 をかけ、更に2乗することで、一般に低
速な割算、平方根の各演算を避けることができる。
【0029】ところで、上記実施例の方法によると、図
3に2つの制御点P1、P2 が始点P0 、終点P3
の外側にあり、かつ制御点P1 、P2 および始点
P0 、終点P3 がほぼ一直線上に配列してしまった
ような場合は、始点P0 、終点P3 、および2つの
制御点P1 、P2 で定義される3次ベジェ曲線が十
分平坦になっていないにもかかわらず、直線P0 P3
と制御点P1 、P2 とのそれぞれの距離d1 、
d2 は小さくなり、d1 <dMAX かつ d2 <dMAX の条件が成立してしまうことがある。
3に2つの制御点P1、P2 が始点P0 、終点P3
の外側にあり、かつ制御点P1 、P2 および始点
P0 、終点P3 がほぼ一直線上に配列してしまった
ような場合は、始点P0 、終点P3 、および2つの
制御点P1 、P2 で定義される3次ベジェ曲線が十
分平坦になっていないにもかかわらず、直線P0 P3
と制御点P1 、P2 とのそれぞれの距離d1 、
d2 は小さくなり、d1 <dMAX かつ d2 <dMAX の条件が成立してしまうことがある。
【0030】そこで、このような事態にも対応できるこ
の発明の他の実施例について次に説明する。
の発明の他の実施例について次に説明する。
【0031】この実施例も基本動作は上述した第1の実
施例と同様であるが、3次ベジェ曲線のフラットネスの
判断の方法が上述した第1の実施例と異なる。
施例と同様であるが、3次ベジェ曲線のフラットネスの
判断の方法が上述した第1の実施例と異なる。
【0032】この実施例においては上記3次ベジェ曲線
のフラットネスの判断を以下のようにして行う。
のフラットネスの判断を以下のようにして行う。
【0033】すなわち、この実施例では、第4図に示す
ように、制御点P1 、P2 と直線P0 P3 の中
点Qとの距離をそれぞれd1、d2 とするとき、d1
<dMAX と d2 <dMAX の2つの条件がともに満足したとき、この3次ベジェ曲
線を平坦と判断する。ここで、dMAX はフラットネ
スの閾値である。この時点で3次ベジェ曲線の再帰的分
割を止め、分割した各セグメントを構成する3次ベジェ
曲線をそれぞれ直線P0 P3 で近似して3次ベジェ
曲線を描画する。
ように、制御点P1 、P2 と直線P0 P3 の中
点Qとの距離をそれぞれd1、d2 とするとき、d1
<dMAX と d2 <dMAX の2つの条件がともに満足したとき、この3次ベジェ曲
線を平坦と判断する。ここで、dMAX はフラットネ
スの閾値である。この時点で3次ベジェ曲線の再帰的分
割を止め、分割した各セグメントを構成する3次ベジェ
曲線をそれぞれ直線P0 P3 で近似して3次ベジェ
曲線を描画する。
【0034】このような構成によると、第1の実施例の
方法においては平坦の判断を誤ってしまう第3図に示す
ような場合にも正しく平坦の判断を行うことができる。
方法においては平坦の判断を誤ってしまう第3図に示す
ような場合にも正しく平坦の判断を行うことができる。
【0035】この実施例を図2に示したグラフィック描
画装置に適用する場合を考えると、平坦処理部12にお
ける3次ベジェ曲線の平坦の判断を、上記図4で説明し
た方法により行うように構成すればよい。他の構成は図
2に示したものと同様である。
画装置に適用する場合を考えると、平坦処理部12にお
ける3次ベジェ曲線の平坦の判断を、上記図4で説明し
た方法により行うように構成すればよい。他の構成は図
2に示したものと同様である。
【0036】すなわち、この場合、直線P0 P3 の
中点Qと制御点P1 、P2 とのそれぞれの距離d1
、d2 を次式 (ここで、点P0 、P1 、P2 、P3 の座標を
それぞれP0(P0x,P0y)、P1(P1x,P1
y)、P2(P2x,P2y)、P3(P3x,P3y
)とする)で求め、これら距離d1 、d2 を予め設
定してある閾値dMAX と比較し、 d1 <dMAX かつ d2 <dMAX のとき、始点P0 、終点P3 、および2つの制御点
P1 、P2 で定義される3次ベジェ曲線を平坦と判
断する。
中点Qと制御点P1 、P2 とのそれぞれの距離d1
、d2 を次式 (ここで、点P0 、P1 、P2 、P3 の座標を
それぞれP0(P0x,P0y)、P1(P1x,P1
y)、P2(P2x,P2y)、P3(P3x,P3y
)とする)で求め、これら距離d1 、d2 を予め設
定してある閾値dMAX と比較し、 d1 <dMAX かつ d2 <dMAX のとき、始点P0 、終点P3 、および2つの制御点
P1 、P2 で定義される3次ベジェ曲線を平坦と判
断する。
【0037】なお、
d1 <dMAX
かつ
d2 <dMAX
の判断は、各式を2乗することで、一般に低速な平方根
の演算を避けることができる。
の演算を避けることができる。
【0038】なお、上述した第1の実施例においては、
制御点P1 、P2 と直線P0 P3 の距離d1
、d2 を閾値dMAX と比較することより3次ベジ
ェ曲線の平坦を判断し、第2の実施例においては、制御
点P1 、P2 と直線P0 P3 の中点Qの距離d
1 、d2 を閾値dMAX とを比較することより3
次ベジェ曲線の平坦を判断したが、第1の実施例の条件
と第2の実施例の条件の両者が満足したとき、3次ベジ
ェ曲線を平坦と判断するように構成してもよい。
制御点P1 、P2 と直線P0 P3 の距離d1
、d2 を閾値dMAX と比較することより3次ベジ
ェ曲線の平坦を判断し、第2の実施例においては、制御
点P1 、P2 と直線P0 P3 の中点Qの距離d
1 、d2 を閾値dMAX とを比較することより3
次ベジェ曲線の平坦を判断したが、第1の実施例の条件
と第2の実施例の条件の両者が満足したとき、3次ベジ
ェ曲線を平坦と判断するように構成してもよい。
【0039】
【発明の効果】以上説明したようにこの発明によれば、
始点P0 と終点P3 とを結ぶ直線P0 P3 と、
制御点P1 、制御点P2 との2つの距離d1 、d
2 のいずれもが予め設定された許容値dMAX より
小さくなった場合、または始点P0 と終点P3 とを
結ぶ直線P0 P3 の中点Qと、制御点P1 、制御
点P2 との2つの距離d1 、d2 のいずれもが予
め設定された許容値dMAX より小さくなった場合、
またはその両者が成立した場合は、再帰的に分割した3
次ベジェ曲線の各セグメントを平坦であると判断し、こ
の分割を止め、それぞれのセグメントを直線で近似して
3次ベジェ曲線を描画するように構成したので、3次ベ
ジェ曲線の各セグメントを適格に平坦と判断することが
でき、必要以上に処理量が増大せず、かつ確実に滑らか
な近似3次ベジェ曲線を得ることができる。
始点P0 と終点P3 とを結ぶ直線P0 P3 と、
制御点P1 、制御点P2 との2つの距離d1 、d
2 のいずれもが予め設定された許容値dMAX より
小さくなった場合、または始点P0 と終点P3 とを
結ぶ直線P0 P3 の中点Qと、制御点P1 、制御
点P2 との2つの距離d1 、d2 のいずれもが予
め設定された許容値dMAX より小さくなった場合、
またはその両者が成立した場合は、再帰的に分割した3
次ベジェ曲線の各セグメントを平坦であると判断し、こ
の分割を止め、それぞれのセグメントを直線で近似して
3次ベジェ曲線を描画するように構成したので、3次ベ
ジェ曲線の各セグメントを適格に平坦と判断することが
でき、必要以上に処理量が増大せず、かつ確実に滑らか
な近似3次ベジェ曲線を得ることができる。
【図1】この発明の第1の実施例の動作原理を説明する
図。
図。
【図2】第1の実施例を適用して構成したグラフィック
描画装置の一実施例を示すブロック図。
描画装置の一実施例を示すブロック図。
【図3】第1の実施例の問題点を説明する図。
【図4】この発明の第2の実施例の動作原理を説明する
図。
図。
【図5】3次ベジェ曲線の分割を説明する図。
【図6】従来のフラットネスの判定方法を説明する図。
【図7】従来の方法の問題点を説明する図。
【図8】従来の方法の問題点を説明する図。
10 描画コマンド
11 描画コマンド選択部
12 平坦判断部
13 ベジェ曲線分割部
14 直線描画部
15 画像メモリー部
Claims (3)
- 【請求項1】始点、終点、および2つの制御点の4点で
定義される3次ベジェ曲線を再帰分割し、分割後の各セ
グメントが予め設定された許容値より平坦であると判断
された時点で分割を止めてこれを始点と終点を結ぶ直線
で近似して描画する3次ベジェ曲線の描画方法において
、前記平坦であると判断する基準を、始点P0 と終点
P3 とを結ぶ直線P0 P3 と、制御点P1 、制
御点P2 との2つの距離d1 、d2 のいずれもが
予め設定された許容値dMAX より小さくなるとする
ことを特徴とする3次ベジェ曲線の描画方法。 - 【請求項2】始点、終点、および2つの制御点の4点で
定義される3次ベジェ曲線を再帰分割し、分割後の各セ
グメントが予め設定された許容値より平坦であると判断
された時点で分割を止めてこれを始点と終点を結ぶ直線
で近似して描画する3次ベジェ曲線の描画方法において
、前記平坦であると判断する基準を、始点P0 と終点
P3 とを結ぶ直線P0 P3 と、制御点P1 、制
御点P2 との2つの距離d1 、d2 のいずれもが
予め設定された許容値dMAX より小さくなり、かつ
始点P0 と終点P3 とを結ぶ直線P0 P3 の中
点Qと、制御点P1 、制御点P2 との2つの距離d
3 、d4 のいずれもが予め設定された許容値DMA
X より小さくなるとすることを特徴とする3次ベジェ
曲線の描画方法。 - 【請求項3】始点、終点、および2つの制御点の4点で
定義される3次ベジェ曲線を再帰分割し、分割後の各セ
グメントが予め設定された許容値より平坦であると判断
された時点で分割を止めてこれを始点と終点を結ぶ直線
で近似して描画する3次ベジェ曲線の描画方法において
、前記平坦であると判断する基準を、始点P0 と終点
P3 とを結ぶ直線P0 P3 の中点Qと、制御点P
1 、制御点P2 との2つの距離d1 、d2 のい
ずれもが予め設定された許容値dMAX より小さくな
るとすることを特徴とする3次ベジェ曲線の描画方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP40634390A JP2841870B2 (ja) | 1990-12-26 | 1990-12-26 | 3次ベジェ曲線の描画方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP40634390A JP2841870B2 (ja) | 1990-12-26 | 1990-12-26 | 3次ベジェ曲線の描画方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04223577A true JPH04223577A (ja) | 1992-08-13 |
| JP2841870B2 JP2841870B2 (ja) | 1998-12-24 |
Family
ID=18515953
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP40634390A Expired - Fee Related JP2841870B2 (ja) | 1990-12-26 | 1990-12-26 | 3次ベジェ曲線の描画方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2841870B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012116477A (ja) * | 2010-12-02 | 2012-06-21 | Agustawestland Ltd | 翼 |
| CN103390283A (zh) * | 2012-05-09 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 绘制平行曲线的方法和设备 |
| CN115673566A (zh) * | 2021-07-29 | 2023-02-03 | 大族激光科技产业集团股份有限公司 | 一种激光加工方法、装置、设备及存储介质 |
-
1990
- 1990-12-26 JP JP40634390A patent/JP2841870B2/ja not_active Expired - Fee Related
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012116477A (ja) * | 2010-12-02 | 2012-06-21 | Agustawestland Ltd | 翼 |
| JP2017024717A (ja) * | 2010-12-02 | 2017-02-02 | アグスタウエストランド リミテッド | 翼 |
| CN103390283A (zh) * | 2012-05-09 | 2013-11-13 | 腾讯科技(深圳)有限公司 | 绘制平行曲线的方法和设备 |
| CN115673566A (zh) * | 2021-07-29 | 2023-02-03 | 大族激光科技产业集团股份有限公司 | 一种激光加工方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2841870B2 (ja) | 1998-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4949281A (en) | Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves | |
| JP3252623B2 (ja) | 形状モデル生成装置 | |
| US5905500A (en) | Method and apparatus for adaptive nonlinear projective rendering | |
| CN110689492B (zh) | 图像边缘平滑方法和装置 | |
| JPH07182537A (ja) | 図形描画装置および図形描画方法 | |
| JPH04223577A (ja) | 3次ベジェ曲線の描画方法 | |
| JP2837584B2 (ja) | 地形データの作成方法 | |
| CN111192216A (zh) | 一种车道线平滑处理方法及系统 | |
| CN114741188B (zh) | 图形元素处理方法、装置、电子设备及存储介质 | |
| CN105279732A (zh) | 一种运用于平面图像快速形变的方法及系统 | |
| JPH10198811A (ja) | 3次ベジェ曲線の線分近似方法 | |
| CN119131319B (zh) | 模型动态遮挡检测与调整方法、系统、存储介质及设备 | |
| JPS63256988A (ja) | スプライン補間法 | |
| CN115733961B (zh) | 投影画面移动方法、装置、投影设备和存储介质 | |
| JPH0477882A (ja) | 三角形ポリゴン描画方法およびその装置 | |
| JPH0546784A (ja) | 四辺形のシエーデイング方式 | |
| JPH09134441A (ja) | 曲線の直線近似装置 | |
| JP3019283B2 (ja) | 曲面の境界条件生成装置 | |
| JPH11202920A (ja) | 自動機械における軌道補間方法 | |
| CN116958305A (zh) | 一种用于a面制作的曲线绘制方法、装置及存储介质 | |
| JPH09245181A (ja) | アンチエイリアシング処理方法 | |
| CN116245747A (zh) | 高精地图变道区间车道向量平滑方法、系统及介质 | |
| KR100263163B1 (ko) | 자유곡면의수치제어가공을위한곡면보간방법 | |
| JPH01295376A (ja) | 線図形の直線近似処理方式 | |
| JPH05313638A (ja) | 文字太線化方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |