JPH03127186A - 描画方式 - Google Patents

描画方式

Info

Publication number
JPH03127186A
JPH03127186A JP1267029A JP26702989A JPH03127186A JP H03127186 A JPH03127186 A JP H03127186A JP 1267029 A JP1267029 A JP 1267029A JP 26702989 A JP26702989 A JP 26702989A JP H03127186 A JPH03127186 A JP H03127186A
Authority
JP
Japan
Prior art keywords
point
curve
coordinate
straight line
points
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
Application number
JP1267029A
Other languages
English (en)
Inventor
Kazuo Nakamura
和夫 中村
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP1267029A priority Critical patent/JPH03127186A/ja
Priority to US07/593,452 priority patent/US5287441A/en
Publication of JPH03127186A publication Critical patent/JPH03127186A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はパラメトリック曲線の描画方式に関し、特に
3次式で表現されるベジェ(Bezier)曲線、B−
スプライン曲線等のパラメトリック曲線を描画する描画
方式に関する。
〔従来の技術〕
一般にX軸とY軸とからなる2次元平面を描画する描画
装置において、曲線又は直線を描画するとき、それらの
座標を表現する形式に2つの形式がある。1つはノンパ
ラメトリック曲線とよばれるものであり、その座標(x
、 y)がf(x、 y)・O という形式で表されるものである。他方はパラメトリッ
ク曲線とよばれるものであり、その座標が媒介変数をt
として x=g(t)、  y、h(t) という形式で表現される。
ところで、描画装置における描画面、例えばCRTデイ
スプレィ又はプリンタの用紙などの座標値は連続値とし
て定義されているのではなく、整数による離散値で定義
される場合が多い。このような描画装置では曲線の座標
値をすべてもとめる必要はなく、曲線上あるいはその近
傍の整数値の座標(格子点)のみをもとめればよい。こ
の座標をもとめる方法としてノンパラメトリック曲線で
はBresenhamのアルゴリズムとよばれる方法が
ある。
第8図はBresenhamのアルゴリズムを示した図
であり、これは第8図に示す如く、ある描画点(xn。
yn)を描画し次の描画点をもとめるとき、あらかじめ
定めておいた評価方法にしたがってX座標、Y座標の値
がそれぞれl異なる近傍の8個の格子点のなかから最適
な点を1つ選ぶというものである。これを描画開始点か
ら終了点まで行なえばBT画する曲線の描画点がすべて
得られることになる。
しかし、この方法はパラメトリック曲線には適用しにく
い。何故ならパラメトリック面線は座標値が媒介変数t
の関数で定義されているため、座標xn、座標ynにつ
いて1だけ異なる点を決定することが困難になるからで
ある。例えば、文字や図形のアウトラインを表現すると
きに用いられるベジェ曲線は次のような形で定義される
x(t)= (−Xo + 3 Xl   3 Xz 
+ X3 )  ・t3+ (3xo   6Xl +
3X2 )’ t2+ (3xo +3xl )  ・
t+x。
y(t)=  (−ya  +33’t   3yz 
 +3’3 )  ・ t3+  (3yo   6y
+  + 3yz )  ・ t″+ (−3yo  
+3yt  )  ・ t+y0   ・・・(1)た
だし くO≦t≦I) xOr xn l xzr Xsr Va、3’l e
 yz+y3は形状を決定する4個の制御点(xl、y
o)(X+、yt)、  (xzr  yt)、  (
xzr  y3)の座標値 この曲線について、対象となる座標での傾きに応じてX
又はyの値が1だけ異なる点のY又はX座標を求める必
要がある。X(又はy)の値が1だけ異なる点のY(又
はX)座標をもとめるには、まずx(0(又はy(t)
)についての3次方程式を解いてtをもとめ、それをy
(t)(又はx(tl)に代入してy (又はX)をも
とめるという手順を踏む必要がある。しかし、3次方程
式の解をもとめるには多くの時間が必要であり、高速性
を要求されるような描画装置では非現実的な手段といえ
る。そこで、従来の描画方法として特開昭64−822
82号公報に開示された発明がある。ここではベジェ曲
線にBresenhamのアルゴリズムを適用するため
に3次方程式を解くかわりに直線近似によって媒介変数
tを求めている。
以下簡単に従来方法について説明する。
第9図、第10図は上述の方法を図示したグラフであり
、第9図は横軸に媒介変数tを、また縦軸にx (t)
又はy(t)をとっている。第9図(a)はx (t)
を、第9図(blはy (t)を、第10図は描画面を
夫々示している。第10図において80は描画開始点で
ある。
ここで、Bresenhamのアルゴリズムを論理的に
誤差なく適用した場合は継続する描画点として考慮する
点はB+ 、Bz、Bz、Baとなる。そして、その近
傍点としてそれぞれ、A1.At 、A3を得る。なお
このとき、B+、Bzでは前の点つまりそれぞれBo、
B+での1頃き(yに対するXの微係数〉が1より大き
いのでyの座標値が整数となっている。一方B4ではB
、での傾きが1以下なのでXの座標値が整数となってい
る。これに対して、特開昭64−82282号の発明で
は、傾きが1より大きいときは第9図(b)に示すy 
(t)を直線近似して、傾きが1以下のときは第9図(
a)に示すx (t)を直線近似してB+ 、Bz 、
Bzの近似点をもとめている。つまり、第9図0))に
おいてBo(t=0)でのy (t)の接線りのY座標
の値が整数となるtの値り、をもとめ、1=1+におけ
る第10図上の点T1を81の近似点とする。以下、こ
れを繰り返しB、、B3の近似点としてT、、T、を得
るというものである。
このほか、ベジェ曲線の描画方法としてはΔt= 1/
2” (nは正の整数)とし、tを1=0からL=1ま
でΔtずつ増加しなからX座標、Y座標を計算し、その
最近接の格子点を描画点(x、 y)とするという方法
がある。第11図は前述の方法を図示したグラフである
が、図中Co、C+・・・がt=0、t=Δt、t=2
Δt、t=3Δtでの曲線上の点であり、D、、D、・
・・は近傍点としてまるめられたそれらに最近接の格子
点である。
〔発明が解決しようとする課題〕
しかし前者の方法は近似の精度が悪いため第10図にも
明らかなようにT2が82よりも離れ過ぎてしまってお
り、その近傍点として曲線の最近接の格子点A2ではな
く、F2が選択されてしまっている。
また後者の方法ではΔtをあまり小さくすると冗長点が
できてしまう。第12図(a)は冗長点ができた場合を
示したグラフであるが、図中黒丸がベジェ曲線上の点で
あり、白丸とFとがまるめられた点である。Fはベジェ
曲線の点Gの最近接の格子点にもかかわらず描画しない
方が描画結果はなめらかになる。これは、最近接の格子
点を選択するという方法でおこるもので、曲線の傾きが
l以下であるにもかかわらず2つの点が同一のX座標の
異なるY座標にまるめられてしまうというものである。
またこの方法は、まるめられた溝画点が必ずしも隣接す
るとは限らないので、隣接していないときは直線等で補
間する必要がある。第12図中)はこの例を示したグラ
フである。図においてEo、E、は上記方法によってま
るめられた描画点、H8H!はE、 、E、を直線補間
して得られた点てありE6、E3を通る直線の最近接の
格子点である。
しかしこの方法は、図に示すように本来H8よりも曲線
に近い点J2が描画されなければならないにもかかわら
ずH2が選択され描画されてしまう。
問題点を要約すると、前者の方法では曲線に最近接の格
子点が得られないという問題が発生し、後者の方法では
冗長点が発生したり、直線補間が正しく行なわれないと
いう問題が発生する。
この発明は上記のような問題点を解決するためになされ
たものであり、冗長点を発生せず、また正しく直線補間
を行なうベジェ曲線の描画方式を提供することを目的と
する。
〔課題を解決するための手段〕
この発明に係る描画方式は曲線を媒介変数を用いて表す
場合に、曲線上の第1の点(x、 y)が媒介変数tの
関数として x=f(t)、   y=g(t) として与えられたとき、実数Uを基本単位、rとSとを
夫々座標Xとyとの実数Uに関するまるめ誤差とし、実
数Uの絶対値より小さい正の実数として、Xとyとを pu=x−r qu””y−s で表現されるp及びqなる整数にまるめ、前記第1の点
(x、 y)におけるyに対するXの微係数の絶対値が
1より大きいときはX座標をpuとし、Y座標をqu又
はそれよりUだけ大きいか又は小さい点から近似点を選
択し、前記微係数の絶対値が1より小さいときはY座標
をquとし、X座標をpu又はそれよりUだけ大きいか
又は小さい点から近似点を選択するようにしたものであ
り、別の発明に係る描画方式は前記近似点と第3の点と
の間を直線によって補間するとき、前記直線が第1の点
の最近接を通るように補間するものである。
〔作用〕
この発明の描画方式ではパラメトリック曲線を描画する
場合に媒介変数tを等分割して得られた各々の点を近傍
の格子点にまるめるとき、最近接の格子点を選択するの
ではなく、その点の傾きが1より大きいときはX座標が
整数である近傍の点を近似的にもとめ、1以下のときは
X座標が整数である近傍の点を近似的にもとめ、もとめ
た点に最近接の格子点を選択する。また、直線補間をす
るときはまるめたあとの点を通る直線ではなく、まるめ
る前の点を通る直線で補間する。従って描画の向きに垂
直な方向に2個の描画点が選択されることがなくなり、
冗長点が描画されることがなくなる。また、直線補間が
行なわれるときは常に描画すべき曲線に最近接の直線で
補間される。
〔発明の実施例〕
以下本発明の実施例について説明する。第1図は本発明
に係る描画方式における描画点のまるめの方法と直線補
間の方法について示した図である。
第1図では描画すべき曲線を破線で示しである。
第1図(a)においてBoは描画開始点すなわちt=0
の点であるが、この点のまるめは次のようにして行なう
。まずB6における曲線の傾きは1以下であるので最近
接の整数の座標値をもつxMx。
を選択する。次に、Boにおける曲線の接線とxoの交
点T0をもとめ、さらにToに最も近い格子点Aoを選
択し描画点とする。つまり直線近似によって整数のX座
標をもつ最近接の点を近似的に求め、その最近接格子点
を選ぶわけである。以下同様の方法でB+、Btの描画
点としてAIを、B、の描画点としてA、壱B4の描画
点としてA4を得る。なお、B4における曲線の傾きは
1より大きいので84では接線とY軸y、との交点を求
めている0次に直線の補間の方法であるがこの方法を第
1図(b)に示す。図においてE、、E3はまるめられ
た描画点H,、H2はE、 、E、の補間点である。こ
こでは補間に使う直線としてEoではなくまるめる前の
点B0を通る直線を使用する。
この結果、補間点H+ 、Hzは直線に最近接の格子点
であると同時に、描画すべき曲線にも最近接の格子点と
なっている。なお、直線の傾きはB。
を通るように決定してもよいし、Boにおける曲線の傾
きとB、における曲線の傾きとの平均値をとってもよい
ここで、本発明の梅雨方式の実施に用いる装置の説明を
行なう前に、本発明に関する数学的背景について説明す
る。最初に、ベジェ曲線上の点の座標の計算方法である
が、ここではベジェ曲線上の点ととしてtがO11/1
6.2/16、・・・15/16.1の場合の値を求め
るものとする。そこで、前記(1)式で示したベジェ曲
線の式においてt=i/16としx (t)に2 ”(
=16’)を掛けると下記(2)式が得られる。
2”x(i)=(xo+3x+   3xt+xz)・
 i3+2’(3Xs   6 XI +3 xz) 
・ i”+ 2’(3xo +3 xl) ・i +2
”X0=a  i3+b i”  +c i+d  ・
(2)a”   Xo  + 3 XI   3 Xt
  +x。
b=2’(3XO6XI  +3 xt)c=2”(3
XI  +3 xl) d=20x0 ただし、 ここで 2 ” x (i)= α(i)   ”・(3)とし
てα(i)のlについての1次、2次、3次微係数をそ
れぞれα°(i)、α”(i)、α”°(i)とすれば
α(i+1)  =α(i)十α”(i)+α” (i
)/2+α″”’(i)/6・・・(4) α’ (i+1) =α′(i)+α” (i)+α°
”’(i)/2  ・・・(5)ところで α”(i)−6a i+2b、  cr”’ =6a 
、・・・(6)であるから cr(i+1)  =cr(i)+cr’(i)−+−
cr”(i)/2+a  =(7)α’(i+1)=c
r’(i)+2(α”(i)/2) +3a  ”AS
)α”(i+1)/2 = α”(i)/2+ 3 a
      −(9)である、したがってα(i)、α
゛(i)、α” (i)/2はi−〇のときの初期値を cr(0) =d、  α’(0)=c、  α”(0
)/2 =bとしてlが1増すごとにそれぞれα゛(i
)+α”(i)/2+ a % 2 (α” (i)/
2) + a a、3aを加算していけば順次その値を
もとめていくことができる。ここで、α(i)はx (
i)を218倍したものであり、2進数で表現すれば単
にx(i)を左に12ビツトシフトしただけのものであ
る。つまり、α(i)をもとめ、その小数点位置を左に
12ビツトずらせて考えればx (i)を得たことにな
る。これはX”(i)、xl l (i)についても同
様である。
そして、上記の演算は2.2’、2’あるいは212の
乗算と加算とだけですむのでX01XI、XI、Xff
が整数であたえられれば整数の加算とシフトとですべて
の演算を行なうことができる。
また、仮にxo 、XI s xi 、X3が小数点以
下をもつ固定小数点であたえられたとしても、それらを
前もって左にシフトし整数になおしてから演算を行ない
、x (i)を考える時点で小数点位置をずらせば、や
はり整数の加算とシフトとですべての演算ができる。例
えば、小数点以下3ビツトまでもつ固定小数点形式でX
ll 、Xt 、Xt 、X3があたえられたときは、
それらを3ビツト左にシフトしてから上記の演算を行な
いα(i)、α゛(i)からx (i)、x’(i)を
考えるときに小数点位置を12ビツトではなく15ビツ
ト左にずらせて考えればよいわけである。要約すれば、
tを等分割すれば上記のベジェ曲線の座標値は整数加算
とシフト演算とのみで得ることができるということであ
る。なお、ここではX座標についてのみ説明したが、こ
れはY座標についても同じである。
つぎに、直線の補間について説明する。第2図は本発明
の描画方式の直線補間の原理を示す図であり、第2図(
a)は直線の描画例であるが、点(x。
yo)通り傾きdy/dx (dx、 dyは正の整数
かつdx>dy)の右上がり直線は、eをe=dx(k
−j2)と定義し、始点におけるeの初期値elをet
 =2dy−dx としX座標が1増加した次の描画点のY座標として、e
goならば現在のY座標を選び、次のeとしてeに2d
yを加え、e≧0ならば現在のY座標に1を加えたもの
を選び、次のeとしてeに2dy−2dxを加えるとい
う操作を繰り返すことによって得られる。なお、傾きが
−1以上で右下がりの直線はe≧0のとき2dy  2
dxの代りに2.dy+2dxを加えればよい。ただし
、dx>01ay<oである。
また左向きの描画を行なうときは、dxは正のままこれ
と全く同じ判定、処理を行ないX座標を1増加する代り
にX座標を1減ずればよい。さらに、傾きの絶対値が1
より大きい直線の場合はX座標とY座標とを入れ換えて
同じ議論を行ない、描画時点で描画点のX座標とY座標
とを入れ換えて描画すればよい。なお、このことは「コ
ンピュータ・グラフィクス(日本コンピュータ協会)」
の第443頁〜第445頁に詳しく説明されている。
ところで上記のeは、次の描画点における直線の真のY
座標とそれぞれ現在のY座標との距離におよび現在のY
座標に1を加えた座標と距Mlとの差にdxをかけたも
のとなっている。この初期値e、は第2図(a)に示す
如く格子点を描画開始点とする直線については上記のよ
うに表されるが、第2図(b)に示すように格子点以外
の点Bを描画開始点とする直線についてはつぎのような
補正をする必要がある。つまり、第2図(ロ)において
kはk =yf十(1−xf) dy/dxであり、e
、は e、=dx(k−f) =dx (k −(1−k) ) =dx (2k  l ) =dx (2y (yf+ (1−xf) dy/dx
 ) −1)= 2dx−yf −2dx−xf+ 2
dy−dxとなる。したがって、e、は2dx−yf−
2dy−xfだけ補正をしてやる必要があるわけである
次に、本発明の描画方式の実施に用いる描画装置につい
て構成を動作と共に説明する。
第3図は描画装置の構成を示すブロック図である。なお
本装置で扱われる整数及び固定小数点数はすべて2の補
数表現となっている。図において、3はクロック発生器
であり、ここで発生するクロックが制御器2に与えられ
、制御器2はその周期毎に制御信号を発生し、後述する
マイクロプロセッサlと画像メモリ21とを除く他のハ
ードウェアを制御する。
マイクロプロセッサ1はまずベジェ曲線の形状を決定す
る4個の制御点(x6.yo)、(xl。
y+)、(xt、y8)、(X3 * )’x )より
関数発生に必要な定数a、b、c、dをもとめ、さらに
α(0)、α゛(0)、α″′(0)/2.3aを計算
し、定数aとともに関数発生器4、関数発生器5に与え
る。そして制御器2に描画の開始を指示する。
なおここでは、後の処理のことを考え、α(0)はd 
 211とし、予め0.5X 2 ”だけずらせてお<
(x(t)、y (t)で0.5に相当)。第4図は関
数発生器4、関数発生器5の構成を示すブロック図であ
り、関数発生器4及び同5はレジスタ41.51と加算
器42.52とから構成されており、制御器2の制御信
号にしたがって上述した加算を繰り返し順次α(0)、
α°(0)、α”(0)/2、α(1)、α゛(1)、
α”(1)/2、・・・、α(i)、α°(i)、α”
(i)/2、・・・、α00、α”06)、α”’06
)/2を発生する。
第5図は関数発生器の出力のビット列について示した図
であり、α(i)はx (i)あるいはy (i)の小
数点位置を左に12ビツト移動しただけなので、第5図
に示すようにそれらを整数部xn(i)、yn(i)と
小数点以下部xf(i)、y f (i)とに各別に分
けることができる。このとき、α(i)はあらかじめ0
.5X 2 ”ずらせであるのでxn(i)、 yn(
i)はそれぞれx (i)、  y (i)に最も近い
整数となり、xf(i)、 yf(i)はそれぞれx(
i)とxn(i)との差、y (i)とyn(i)との
差となる。
またx’(i)、y’(i)については、以後の処理で
は常に両者の比が問題となり絶対的な値は不用なのでα
゛(i)をそのままX“(i)、y”(i)として扱う
次に比較器6であるが、比較器6はx’(i)、y’(
i)を比較し、l y’(f) l > lに’(f)
l、即ち直線の傾きが1以上のときは論理的“1mを、
それ以外のときは論理的“O”をchg(i)として出
力する。交換器7はchg(i)をうけ、もし y’ 
(i)  >  x’ (i)  のときは入力される
信号をXとyとですべて交換する。つまりxn(i)と
yn(i)、xf(i)とy f (i)、x’(i)
とy’(i)の3対を各々交換して出力するわけである
。それ以外のときはそのままxn(i)、yn(i)、
xf(i)、y f (i)、x’(i)、y’(i)
を出力する。
したがって、 y”(i)  >  x’(i)  の
ときはX座標とY座標とが入れ換えられ y゛ ≦ ×
° のときと同じ手続きが行われることになる。なお第
3図では信号名の添え字iは省略しである。
次に演算器8はx =xn(i)におけるyの座標ym
(i)についてチエツクする。というのはym(i)に
最も近い整数はy n (i)だけではなく yn(i
) + 1、yn(i)−1である可能性もあるからで
ある。
第6図は描画開始点の近傍点の求め方を説明する図であ
り、第6図に−示すように直線近似によってym(f)
を次式のように近似する。
ym(i)=yn(i)+yf(i) −(y’(i)
/x’(i)) Xxf(i)ここで1y”(i)1≦
1x”(i)  なのでym(i)−yn(i)=yf
(i) −(y’(i)/x’(i)) Xxf(i)
はyf(i)≧0のときは0.5<ym(i)=yn(
i)< 1となり、yf(i)<Oのときは−1<ym
(i)  yn(i)<0.5となる。
そこで、演算器8は ym(i)−yn(i)=yf(i) −(y’(i)
/x’(i)) xxr(i)を計算し、yf(i)≧
Oのときはその結果と0.5とを比較し、yf(i)<
Oのときはその結果と−0,5とを比較する。そして、
ym(i) −yn(i)≧0.5のときは”1”を、
y+n(i) −yn(i) < −0,5のときは“
−1#を、それ以外のときは“0″をyaとして出力す
る。
このときもしyaが“O′以外のときはyn(i)とy
 f (i)とを補正する必要がある。加算器9と減算
器10とはそのためのものであり、加算器9はyn(i
)にyaを加算し、減算器9はyf(i)からyaを減
算する。
次に比較器11とレジスタ12とであるが、比較器11
はi=0のときはレジスタI2がchg(i)、xn(
i)、yn(i)、xf(i)、yf(i)、x゛0)
、y ’ (i)を記憶するように制御する。レジスタ
12はそれらを記憶し、夫々のChgpz X09% 
VnpSxfp s Vfp% X ps V’pとし
て出力する。i〉0のときはchg(i)、xn(i)
、xf(i)とレジスタに記憶されているそれらの以前
の値であるchgp、xnp 、 xfpとを比較する
そしてchg(i)、xn(i)のいずれかがか夫々前
の値chgp、 xnpと異なれば、レジスタ13がレ
ジスタ12の内容を記憶し、レジスタ12がchg(i
)、xn(i)、yn(i)、xf(i)、yf(i)
、x’(i)、y’(i)を記憶するように制御する。
なお、レジスタ13はレジスタ12の内容を記憶し、各
々chgsSxns 、 yns 5xfs s yf
s 、 x’sy′3として出力する。chg(i)、
xn(i)がともにそれぞれchgp、xnpと等し′
い場を、即ち第7図に示す如く傾きが同じ状態で、前の
値と同じ場所にまるめられた場合はxf(i)の絶対値
とxfpの絶対値とを比較し、もしxf(i)の絶対値
の方が小さいときはレジスタ12がchg(i)、yn
(i)、yf(i)、xn(i)、yn(i)を記憶す
るように制御し、逆の場合は既に記憶されているので何
も行なれ力い。第7図は同一座標軸にまるめられる2以
上の描画点の選択方法を示す図であり、以上の結果、も
しchgが同じで同一のにnにまるめられる点が複数存
在するときは第7図に示すようにInに最も近い点(図
中B+)のみが選ばれ他の点(図中Bz)は無視される
されることになる。また、レジスタ13にはまるめられ
た描画点の情報が記憶されることになる。
次に直線描画器17はレジスタ13にレジスタ12の内
容が記憶される毎にその出力yns 、 xnsを描画
開始点としてxns とynpとの差、yns とyn
pとの差の大きい方の数の点だけ直線の描画を行なう。
このとき、演算器14は直線描画器17に傾きをあたえ
るもので前述したdx、 dyとしてdx = x s
 + x p dy = V S + V I) を計算する。なおこの値は描画しようとする直線の両端
におけるベジェ曲線の傾きの平均値についての近似値と
なる。同様に演算器15はeの初期値e+ = 2dx
−yfs −2dy−xfs +2dy −dxを計算
し直線描画器17にあたえる。同時に比較器16はyn
sとynpとを比較し、両者が等しいときはdyを0に
するように演算器14に制御信号を出力する。これは水
平な直線で補間を行なうとき描画結果が蛇行するのを防
ぐ。直線描画器17は前述した手順にしたがって描画点
の座標を発生する。そして、それを画像メモリ制御器1
9に与えるがこのときchgsがOならばX座標、Y座
標をそのまま出力し、chgsが1のときはX座標、Y
座標を交換して出力する。
さらにアドレス監視器20はX座標、Y座標を監視し、
その値が直前に描画した値と同じであれば描画禁止信号
を画像メモリ制御器19に出力する(これはchgのみ
が変化したときに起こる)。最後に画像メモリ制御器1
9はX座標、Y座標があたえられる度にその点の画像メ
モリ21上のアドレスを計算し、画像メモリ21に描画
する。
なお、比較器18はchgsとchgpとが異なってい
るときににnpとynfl % X’l)とy’pとを
それぞれ交換するための交換器である。
なお、上記実施例では描画点の座標とし0≦t≦1の範
囲を16等分する例を示したが必ずしも16である必要
はない。例えば、制御点(xc+、yc+)、(XIn
)’t)、(Xt、yt)、(Xl、)’3)の間隔が
小さいときは分割を粗くしてもよいし、逆に間隔が大き
いときは分割を細かくしないと直線補間による誤差が大
きくなる。
また、上記実施例ではxf(i)、yf(i)、x’(
i)、y’(i)の有効なビット全てを扱うものとして
説明したが、これらについては上位数ビットだけを計算
し、下位ビットを切捨てても描画結果にほとんど影響を
あたえない。
さらに、以上の説明はベジェ曲線を描画する場合の例を
示したが、パラメトリック曲線であれば全てに適用でき
、例えばベジェ曲線と同様X座標とY座標がtについて
次の3次式で表現されるB−スプライン曲線についても
上記の方法が適用できる。
6x(t)= (Xo + 3 Xo   3 Xi 
+X3) ・t’+ (3xo −6XIn3 xz)
・t”+ (3xo +3xz)・t。
+ (X−o + 4 Xl + Xl)6y(t)”
”  ()’o  +33’+   3)’z  +y
z)・t3+(3)’o  6)’+ +3yz)・t
2+ (3)’o  +3yz)・ t +  (3’o  + 4y+  + 3’z)   
 ・・・αωただしく0≦t≦1) Xo  S Xo  、 Xz  、 Xi  、 )
’o  、 ?+  、y2、y3は形状を決定する点
(xo。
3F6)、(x+ 、yt)、(xz、yz)、(X 
3+ 3’ s)の座標値 この場合、x (t)、y(t)をもとめるには6で割
るという演算が必要になるが、これはあらかじめx0X
+ 、Xz 、Xl 、yo % )’l Syz X
y3を6で割っておけば済む。又は第3図において関数
発生器4、関数発生器5の出力部に6で割るための演算
器を付加してもよい。
さらに本実施例においては基本単位Uを1としたが、本
発明はこれに限るものではなく、基本単位Uは実数であ
ればどのような値でもよい。
〔発明の効果〕
以上のように、この発明ではパラメトリック曲線の描画
において、tを等分割して得られた曲線上の各々の点を
近傍の格子点にまるめるとき、自近接の格子点を選択す
るのではなく、その点のIIきがlより大きいときはX
座標が整数である返上の点を、1以下のときはY座標が
整数である返上の点を近似的にもとめ、もとめた点に最
近接の41子点を選択するようにしたので冗長点を描画
す【ことなく、滑らかな曲線を描くことができる。jた
、直線補間をするときはまるめたあとの点を釘る直線で
はなく、まるめる前の点を通る直線でネ1間をするよう
にしたので、より真の曲線に近い+1間を行なうことの
できる描画方式を得ることが【きる。
【図面の簡単な説明】
第1図は本発明に係る描画方式を示した図、負2図は本
発明による直線補間の原理を示した図、第3図は本発明
に係る描画方式の実施に用いるI凸画装置のブロック図
、第4図は描画装置内の関部発生器の構成を示すブロッ
ク図、第5図は関数炙生器の出力のビット列について示
した図、第6区は描画装置の描画開始点の近傍点のもと
め方について示した図、第7図は梅雨装置において同一
座標軸にまるめられる2以上の描画点の選択方法を示し
た図、第8図はbresenhamのアルゴリズムにつ
いて示した図、第9図、第10図は従来の描画方法を示
した図、第11図は別の従来の描画方法を示した図、第
12図は第11図に示した従来の描画方法の問題点を示
した図である。 ■・・・マイクロプロセッサ 2・・・制御器4.5・
・・関数発生器 6.11.16・・・比較器7.18
・・・交換器 8.14.15・・・演算器9・・・加
算器 10・・・減算器 12.13・・・レジスタ1
7・・・直線描画器 なお、図中、同一符号は同一、又は相当部分を示す。

Claims (2)

    【特許請求の範囲】
  1. (1)第1の座標軸と第2の座標軸とで構成される2次
    元座標系に曲線を描画する描画方式において、 曲線上の第1の点(x、y)が媒介変数t の関数として x=f(t) y=g(t) としてあたえられたとき、実数uを基本単位、rとsを
    それぞれxとyとの実数uに関するまるめ誤差とし、実
    数uの絶対値より小さい正の実数として、 xとyとを pu=x−r qu=y−s で表現されるpおよびqなる整数にまるめ、前記第1の
    点(x、y)におけるyのxに関する微係数の絶対値が
    1より小さいときは (pu、qu−u)、(pu、qu)、(pu、qu+
    u)のうちいずれかを前記第1の点 (x、y)の近似点(x2、y2)として選択し、 前記微係数の絶対値が1より大きいときは (pu−u、qu)、(pu、qu)、(pu+u、q
    u)のいずれかを前記第1の点(x、y)の近似点(x
    2、y2)として選択する曲線の描画方式。
  2. (2)請求項1の描画方式において、 前記近似点(x2、y2)と第3の点(x3、y3)と
    の間を直線によって補間するとき、前記直線が前記第1
    の点(x、y)の最近傍を通るように補間をすることを
    特徴とする描画方式。
JP1267029A 1989-10-12 1989-10-12 描画方式 Pending JPH03127186A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1267029A JPH03127186A (ja) 1989-10-12 1989-10-12 描画方式
US07/593,452 US5287441A (en) 1989-10-12 1990-10-05 Method and apparatus for displaying a parametric curve

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1267029A JPH03127186A (ja) 1989-10-12 1989-10-12 描画方式

Publications (1)

Publication Number Publication Date
JPH03127186A true JPH03127186A (ja) 1991-05-30

Family

ID=17439065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1267029A Pending JPH03127186A (ja) 1989-10-12 1989-10-12 描画方式

Country Status (2)

Country Link
US (1) US5287441A (ja)
JP (1) JPH03127186A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04287669A (ja) * 1991-03-18 1992-10-13 Imuraya Seika Kk 電子レンジ用中華まんじゅう
JP2002107107A (ja) * 2000-07-20 2002-04-10 Biosense Inc 医療システムの静止金属補償付き校正方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3075023B2 (ja) * 1993-07-23 2000-08-07 松下電器産業株式会社 3次元形状データの処理方法
US5594852A (en) * 1994-08-17 1997-01-14 Laser Products, Inc. Method for operating a curve forming device
JPH08329261A (ja) * 1995-05-31 1996-12-13 Canon Inc パラメータ曲線発生器
US6111588A (en) * 1996-12-05 2000-08-29 Adobe Systems Incorporated Creating and modifying curves on a computer display
US6674435B1 (en) * 1998-09-16 2004-01-06 Texas Instruments Incorporated Fast, symmetric, integer bezier curve to polygon conversion
JP2000251086A (ja) * 1999-02-26 2000-09-14 Sony Corp 曲線生成装置及び方法、並びにプログラム提供媒体
US6554427B1 (en) 2001-12-11 2003-04-29 Johnson & Johnson Vision Care, Inc. Methods for designing contact lenses
JP4727304B2 (ja) * 2005-06-06 2011-07-20 パナソニック株式会社 曲線描画装置、曲線描画方法、駐車支援装置及び車両
KR101157811B1 (ko) * 2010-08-17 2012-06-22 한국표준과학연구원 대형 복합재 구조물에서의 손상위치 표정 방법
USD682304S1 (en) * 2012-01-06 2013-05-14 Path, Inc. Display screen with graphical user interface
TWI476640B (zh) 2012-09-28 2015-03-11 Ind Tech Res Inst 時間資料序列的平滑化方法與裝置
KR102219294B1 (ko) 2014-02-13 2021-02-23 삼성전자 주식회사 커브 렌더링 방법 및 장치
CN113139218B (zh) * 2021-03-25 2022-08-02 中铁建华南建设有限公司 盾构管片外径边线绘制方法、装置和计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182795A (en) * 1988-03-16 1993-01-26 Texas Instruments Incorporated Process and device for graphically drawing point by point a closed curve of the second order
US5214754A (en) * 1988-06-29 1993-05-25 Fujitsu Limited Method and apparatus for approximating polygonal line to curve

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04287669A (ja) * 1991-03-18 1992-10-13 Imuraya Seika Kk 電子レンジ用中華まんじゅう
JPH0789889B2 (ja) * 1991-03-18 1995-10-04 井村屋製菓株式会社 電子レンジ用中華まんじゅう
JP2002107107A (ja) * 2000-07-20 2002-04-10 Biosense Inc 医療システムの静止金属補償付き校正方法

Also Published As

Publication number Publication date
US5287441A (en) 1994-02-15

Similar Documents

Publication Publication Date Title
JPH03127186A (ja) 描画方式
US5570463A (en) Bresenham/DDA line draw circuitry
EP0249705B1 (en) Method and apparatus for producing a curved image on a graphics display device
US5309521A (en) Method and apparatus for generating a character curve by dividing and developing a bezier curve
US5025405A (en) Method of interpolating pixel values
JP2002152498A (ja) 画像処理方法および装置
GB2150797A (en) Graphic display system
JP2007065039A (ja) 画像処理装置
US5309553A (en) Apparatus for and method of generating a straight line of pixels in a discrete coordinate system
US5351315A (en) Apparatus for smoothing outlines of images
JP2000132136A (ja) 画素数変換装置
JPH02226381A (ja) 適応前進差分および整数算術を用いてパラメトリツク関数を表示する装置および整数算術を用いて実現する方法
JP3384470B2 (ja) 数値変換装置および方法、並びに座標値整数化装置および方法
JPH0850580A (ja) 反復補間装置
JP3059739B2 (ja) 曲線描画機能を備えた情報処理装置および処理方法
JP4510201B2 (ja) 楕円曲線演算装置、楕円曲線位数計算装置、楕円曲線構成装置、楕円曲線応用装置、楕円曲線演算方法、楕円曲線位数計算方法、楕円曲線構成方法、楕円曲線演算プログラムを記録している記録媒体、楕円曲線位数計算プログラムを記録している記録媒体及び楕円曲線構成プログラムを記録している記録媒体
US9286654B2 (en) Image scaling processor and image scaling processing method
JPH0589251A (ja) 画像の描画装置
JP2858616B2 (ja) イメージ補間回路
EP1091321A2 (en) Apparatus and method for drawing lines on a digital display
Kaewsaiha et al. An Approach to Describe Parametric Curves Using Hough-Based Arc Spline Approximation
JP2691559B2 (ja) 画素密度変換装置及びその方法
JP2021189458A (ja) 装置、方法、及びプログラム
Hong A high precision digital differential analyzer for circle generation
JP2691582B2 (ja) 画素密度変換装置及びその方法