JPH0664618B2 - クリツピング回路 - Google Patents

クリツピング回路

Info

Publication number
JPH0664618B2
JPH0664618B2 JP2636486A JP2636486A JPH0664618B2 JP H0664618 B2 JPH0664618 B2 JP H0664618B2 JP 2636486 A JP2636486 A JP 2636486A JP 2636486 A JP2636486 A JP 2636486A JP H0664618 B2 JPH0664618 B2 JP H0664618B2
Authority
JP
Japan
Prior art keywords
clipping
boundary
coordinate
point
circuit
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
JP2636486A
Other languages
English (en)
Other versions
JPS62184576A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2636486A priority Critical patent/JPH0664618B2/ja
Publication of JPS62184576A publication Critical patent/JPS62184576A/ja
Publication of JPH0664618B2 publication Critical patent/JPH0664618B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明はグラフィック・ディスプレイ装置のクリッピン
グ回路に関し、特にクリッピング境界と交差する線分の
クリッピング境界の外部にある部分をクリッピングする
ようなクリッピング回路に関する。
従来の技術 グラフィック・ディスプレイ装置において対象物を表示
する際、ビューポートを超えて図形が現われる場合が生
じうる。この場合表示図形がビューポート内に収まるよ
うに対象物のはみ出した部分を切りとる必要がある。こ
の処理は一般にクリッピング(またはクリップ)と呼ば
れ、切りとるための境界はクリッピング境界と呼ばれて
いる。表示対象物が2次元物体であるときはクリッピン
グ境界は複数(一般に4つ)の2次元直線で構成され、
表示対象物が3次元物体であるときはクリッピング境界
は複数(一般には4つないし6つ)の3次元平面で構成
される。一方、表示対象物は2次元物体の場合でも3次
元物体の場合でも多角形によって近似されることが多
い。従ってクリッピング処理は多角形の不要な部分を複
数のクリッピング境界線または境界面に対して切りとる
という処理であると考えられる。この処理に対する有力
な解法として、アイ・イー・サザーランドとジー・ダブ
リュー・ホッジマン(I・E・Sutherland and G・
W・Hodgman)による「リエントラント・ポリゴン・ク
リッピング」,コミュニケーションズ・オブ・ジ・エー
・シー・エム、第17巻、第1号(“Reentrant Polygon
Clipping",CACM,Vol.17,No.1),pp32−42,1974で述
べられているアルゴリズムが挙げられる。このアルゴリ
ズムでは、多角形を頂点の列として入力し、クリッピン
グ境界を構成する直線または平面で順次クリッピングを
行う。1つの直線または平面についてのクリッピングが
終わると、その処理結果として出力される頂点の列で構
成される多角形を入力として次の直線または平面につい
てクリッピングを行っていく。このアルゴリズムの特徴
は前記の1つ1つのクリッピング境界ごとに順次クリッ
ピングを行って行くことに加えて、多角形を頂点の列と
考えて隣接する2つの頂点を結ぶ線分に対してクリッピ
ングを行うということである。ある1つのクリッピング
境界(片面でも直線でもよい)と、多角形を構成する隣
接する2つの頂点の関係を第2図に示す。第2図a〜c
において201はクリッピング境界を、202はクリッピング
境界201に対する内部を、203はクリッピング境界201に
対する外部を示す。但し、クリッピング境界201上は内
部に含まれるものとする。第2図aは2つの頂点Pi及び
Pjがともに内部202にある場合を示す。この場合、線分P
iPj204もまた内部202にある。第2図bは2つの頂点Pi
及びPjがともに外部203にある場合を示す。この場合、
線分PiPj204もまた外部にある。第2図cは2つの頂点P
i,Pjのうち一方(本例ではPi)が内部202にあり、他方
(本例ではPj)が外部203にある場合を示す。この場
合、線分PiPj204の一部のみが内部202にある。線分PiPj
204とクリッピング境界201の交点をPkとすると線分PiPj
205が内部にある。従って前記第2図の各々の場合に応
じて不要な部分を切りとって行くことにより、入力され
た多角形の頂点の列に対するクリッピングされた多角形
の頂点の列が生成される。
第3図にこのアルゴリズムを用いて2次元のクリッピン
グを行う場合の例を示す。第3図aにおいて、301はク
リッピングの対象となる多角形P,P,Pを、302は
クリッピング境界x=xを、303はクリッピング境界
x=xを、304はクリッピング境界y=yを、305は
クリッピング境界y=yを示す。306は多角形301をク
リッピング境界302〜305でクリッピングした結果の多角
形を示す。まずクリッピング境界302に対して多角形301
をクリッピングする場合を例にとって、1つのクリッピ
ング境界に対するクリッピングの手順を説明する。
多角形301は頂点の列P,P,Pとして入力される。
まず2点P,Pはクリッピング境界302に対してとも
に内部308にあるので2点P,Pはそのままクリッピ
ング結果の多角形309の頂点として出力される。
次に2点P,PのうちPは外部307にあるので、線
とクリッピング境界302の交点Pが出力される。最後
にP,PのうちPは外部307に、Pは内部308にあ
るので線分 とクリッピング境界302の交点Pが出力される。以上
の結果、頂点の列P,P,P,Pで示される多角形30
9がクリッピング境界302に対するクリッピング結果とな
る。以下同様に、順次クリッピング境界303に対するク
リッピング結果を第3図cに、クリッピング境界304に
対するクリッピング結果を第3図dに、クリッピング境
界305に対するクリッピング結果を第3図eにそれぞれ
示す。第3図eの306が最終的に得られた多角形P,P
,P,P,P,P,P10を示す。
発明が解決しようとする問題点 しかしながら、以上で説明したアルゴリズムのハードウ
ェア化を考える場合、ある点がクリッピング境界に対し
て内部にあるか外部にあるかを判定するには、その点の
座標値とクリッピング境界を表わす何らかの値との大小
比較などの簡単な処理でよいが、クリッピングの対象と
なる多角形の隣接する2点のうち一方がクリッピング境
界内部に、他方が外部にあるときのクリッピング境界と
2点を結ぶ線分の交点を求めるためには、乗算や除算が
必要でありハードウェア化には不利である。また、直線
的に交点を計算する代わりに、2点の中点を求め、漸近
的に交点を探索して行く「中点分割法」が、アール・エ
フ・スプロールとアイ・イー・サザーランド(R.F.Spro
ull and I.E.Sutherland)による「ア・クリッピング
・ディバイダ」,エフ・ジェー・シー・シー,トンプソ
ンブックス発行(“Clipping Divider",FJCC,Thompson
Books)pp765〜775,1968において提案されている。
「中点分割法」は通常座標系で表わされている2点の中
点の算出は加算とシフト演算という簡単なハードウェア
で実現できるため有力な方法であるといえる。しかしな
がら、クリッピングに先立つ座標変換処理においては、
変換の表現が容易であり、変換の合成が変換行列の積で
記述できるなどの理由から、一般に通常座標系ではなく
同次座標系での座標表現が用いられている。また、演算
の精度の問題(前記「リエントラント・ポリゴン・クリ
ッピング」による)などから、同次座標系においてクリ
ッピングを行うことが望ましい。ところが後記の発明の
実施例の項において説明するように、同次座標系におけ
る座標値で与えられる2点の中点は単純な加算では求ま
らないため、ハードウェア化における前記の「中点分割
法」の利点がなくなるという問題があった。
本発明はかかる点に鑑み、簡単な加減算やシフト演算の
みを用いて、同次座標系で表わされた2つの点を結ぶ線
分とクリッピング境界との交点を求めるようなクリッピ
ング回路を提供することを目的とする。
問題点を解決するための手段 本発明は前記問題点を解決するために、クリッピング境
界と交差する線分の2つの端点のうち前記クリッピング
境界に対して内部にある第1の端点の同次座標系におけ
る座標値を格納する第1のレジスタ群と、前記クリッピ
ング境界に対して外部にある第2の端点の同次座標系に
おける座標値を格納する第2のレジスタ群と、前記第1
のレジスタ群に格納されている第1の端点の座標値と前
記第2のレジスタ群に格納されている第2の端点の座標
値のW座標の絶対値を比較して両方または一方の座標デ
ータに適当な値を乗じて両者の絶対値の桁が等しくなる
ようにする桁合わせ回路と、前記桁合わせ回路によって
桁合わせされた前記第1及び第2の端点の各々の座標値
の対応する要素を加算する加算回路と、前記加算回路の
出力値を同次座標系における座標値としてもつ第3の点
が、前記クリッピング境界に対して境界上にあるか、境
界の内部にあるかまたは境界の外部にあるかのいずれか
を判定する判定回路と、前記判定回路の出力に基づき、
前記第3の点が前記クリッピング境界に対して境界上に
あるときには前記加算回路の出力値をクリッピング境界
と前記の線分との交点の座標値として出力し、境界の内
部にあるときには前記加算回路の出力値を前記第1のレ
ジスタ群に格納し、境界の外部にあるときには前記加算
回路の出力値を前記第2のレジスタ群に格納する制御回
路とを備えたクリッピング回路である。
作用 本発明は前記の構成により、クリッピング境界と交差す
る線分の2つの端点の同次座標系における座標値を入力
データとして受けとり第1及び第2のレジスタ群に格納
し、桁合わせ回路により各々のレジスタ群に格納された
座標値に適当な数を乗じ(例えば加算またはシフト演算
を行う)て各々のw座標(2次元の場合には座標値の第
3次元の要素、3次元の場合には座標値の第4次元の要
素)の絶対値の桁合わせを行い、桁合わせした座標値を
加算回路によって単純に加算して得られた値を「擬似的
な中点」の座標値と見なし「中点分割法」と同様の処理
を行う。すなわち、前記の判定回路によって前記の点と
クリッピング境界との位置関係を判定し、前記の制御回
路は前記の点がクリッピング境界の内部にあるときは加
算回路の出力を前記第1のレジスタ群に格納し、この値
と既に前記第2のレジスタ群に格納されている値とを新
らたな線分の2つの端点の座標値として前記の処理を繰
り返し、また前記の点がクリッピング境界の外部にある
ときは加算回路の出力を前記第2のレジスタ群に格納
し、この値と既に前記第1のレジスタ群に格納されてい
る値とを新らたな線分の2つの端点の座標値として前記
の処理を繰り返し、また前記の点がクリッピング境界上
にあるときには加算回路の出力を求めている交点の座標
値として出力し、1つの線分に対するクリッピング処理
を終える。
実施例 本発明の実施例を図面を用いて説明する前に、本発明の
依るところの原理についての説明並らびに証明を行う。
以下の説明で用いる座標値はすべて3次元空間上の点を
示しているが、2次元平面上のクリッピングを考える場
合には座標値の次元を1つ減らせる(すなわちz座標を
省略する)ことにより容易に類推できる。なお座標値と
してアルファベット小文字を用いて表現されたもの〔例
えば(x,y,z)〕を通常座標系の座標値とし、アルファ
ベット大文字を用いて更に第4の座標wを付加して表現
されたもの〔例えば(x,y,z,w)〕を同次座標系の座標
値とする。
クリッピング境界の条件は一般に次式 で表現されるが説明を簡単にするため次式 で考える。通常座標系における点(x,y,z)は同次座標
系において(X,Y,Z,w)と表現される。但し、wは0で
ないものとし、 なる関係を満足する。従ってクリッピング境界の条件を
示す式(2)は同次座標系では次のように表わされる。
または、 同次座標系における座標値に0でないスカラーを乗じて
も対応する通常座標は変化しないので式(4)の場合のみ
を考えるものとする。式(4)からわかるようにクリッピ
ング境界は次式(6)に示す6つの平面からなる。
いま、1つのクリッピング境界w−X=0に対して2点
(X,Y,Z,w)とP(X,Y,Z,w
を結ぶ線分をクリッピングを行う場合を考える。但し、
,w>0とする。
式(4)よりXかつXのときは2点P
とPはともにクリッピング境界の内部にあり、従って
線分 もまたクリッピング境界の内部にある。またx>w
かつX>wのときは2点PとPはともにクリッ
ピング境界の外部にあり、従って線分 もまたクリッピング境界の外部にある。またX>w
かつXのときまたはXかつX>w
のときは2点のうち一方がクリッピング境界の内部に、
他方が外部にあるので線分 のうちクリッピング境界の外部にある部分を切りとらな
ければならない。いま点Pがクリッピング境界の内部
にあり、点Pが外部にあるものとする。線分 とクリッピング境界w−X=0との交点をP(X,Y
,Z,w)とすると、点Pは次式(7)で与えられ
る。
前記の同次座標系の座標値の性質から式(7)は、 とも表わせる。しかしながら式(8)を用いても交点P
の算出には少なくとも6回の乗算が必要となる。一方、
前記の通常座標系における「中点分割法」を適用する場
合を考える。2点P及びPに対応する通常座標系に
おける座標値は各々(X/w,Y/w,Z
)と(X/w,Y/w,Z/w)であるこ
とから中点P(X,Y,Z,w)に対応する通常座
標系における座標値は、次式(9)で与えられる。
前記の同次座標系におる座標値の性質から式(9)は、 とも表わせる。しかしながら式(10)を用いても中点P
の算出には少なくとも7回の乗算が必要となり、式(8)
に従って直接的に交点Pを求めるよりも処理が複雑と
なり、「中点分割法」を適用することは無意味となる。
そこで中点Pに代わる点として次式(11)で表わされる
点P(X,Y,Z,w)を考える。
いま通常座標系において2点PとPを結ぶベクトル は次式(12)で表わされる。
一方、2点PとPを結ぶベクトル は次式(13)で表わされる。
従って式(12)及び式(13)より、次式が導かれる。
いまwとwはともに正であるから、 なる関係が成立する。以上から点Pは線分 上の端点P及びPの間にある点となる。従って式(1
1)に従って点Pの座標値を求め、得られた座標値に対
して式(4)を用いてクリッピング境界との位置関係を判
定し点Pがクリッピング境界の内部にある(X<w
)ときは点Pの座標値を点Pの座標値で置き換え
て線分 に対して前記と同様の処理を、また点Pがクリッピン
グ境界の外部にある(X>w)ときは点Pの座標
値を点Pの座標値で置き換えて線分 に対して前記と同様の処理を点Pがクリッピング境界
上に来るまで繰り返す。
第1図は以上に説明した本発明のクリッピング処理を行
うクリッピング回路の実施例を示す図である。
第1図において101はあるクリッピング境界と交差する
線分の2つの端点のうちクリッピング境界の内部にある
第1の端点の座標値データを、102は座標値データ101の
要素を格納する第1のレジスタ群を、103はクリッピン
グ境界の外部にある第2の端点の座標値データを、104
は座標値データ103の要素を格納する第2のレジスタ群
を、105はレジスタ群102とレジスタ群104に格納されて
いる座標値データのw座標の桁合わせを行う桁合わせ回
路を、106は桁合わせ回路105によって補正された座標値
データの対応する要素の加算を行う加算回路を、107は
加算回路106の出力を座標値にもつ点と与えられたクリ
ッピング境界との位置関係を判定する判定回路を、108
は判定回路107の結果に応じて加算回路106の出力を第1
のレジスタ群102に格納したり、第2のレジスタ群104に
格納したり、最終結果109として出力する制御回路を示
す。
加算回路106、判定回路107、制御回路108の働きについ
ては前記の説明と重複するため再度の説明は省略し、桁
合わせ回路105の働きについてのみ補足説明をする。
レジスタ群102及び104に格納されている座標値データの
w座標の値の絶対値が非常に大きく異なる場合(例えば
≪wのとき)、前記式(14)は、 となり、加算回路106から出力される点Pの座標値
は、もとの端点Pの座標値に非常に近い値となる。従
って、点Pがなかなかクリッピング境界との交点に収
束しないという現象が生じる。極端な場合、加算回路10
6における加算の際に「情報落ち」が生じ、点Pが永
久に最初の2つの端点のいずれかに留まり処理が終了し
ないことも起りうる。そこで、前記の同次座標系におけ
る座標値の性質を利用して、桁合わせ回路105によりレ
ジスタ群102及び104に格納されている座標データのw座
標の絶対値を比較し、絶対値の桁がほぼ等しくなるよう
にいずれか一方または両方の座標値データに対して適当
な値を乗じて桁合わせを行う。これにより式(15)のw
/(w+w)も1/2に近づき点Pも真の中点に近
くなる。この桁合わせ処理は、座標値データが固定小数
点数で表現されているときには座標値データのシフト演
算により、また座標値データが浮動小数点数で表現され
ているときには座標値データの指数部に対する加減算で
実現できるため、実際には乗算回路を必要としない。
なお、実施例の説明においてはクリッピング境界として
w−X=0を用いたが、判定回路107における判定条件
を変えることにより他のクリッピング境界に対しても容
易に適用できることは言うまでもない。
発明の効果 以上のように本発明によれば、同次座標系におけるクリ
ッピング処理が乗除算回路を用いずに実現でき、ハード
ウェア化、特にLSI化に適しており、グラフィック・デ
ィスプレイ装置における画像生成の高速化並びにハード
ウェア・コストの低減に対する寄与が大である。
【図面の簡単な説明】
第1図は本発明のクリッピング回路の実施例の構成を示
すブロック図、第2図はクリッピングのアルゴリズムの
説明図、第3図は2つの端点を結ぶ線分とクリッピング
境界との位置関係図である。 102,104…レジスタ群、105…桁合わせ回路、106…加算
回路、107…判定回路、108…制御回路。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】クリッピング境界と交差する線分の2つの
    端点のうち前記クリッピング境界に対して内部にある第
    1の端点の同次座標系における座標値を格納する第1の
    レジスタ群と、前記クリッピング境界に対して外部にあ
    る第2の端点の同次座標系における座標値を格納する第
    2のレジスタ群と、前記第1のレジスタ群に格納されて
    いる第1の端点の座標値と前記第2のレジスタ群に格納
    されている第2の端点の座標値のW座標の絶対値を比較
    して両方または一方の座標データに適当な値を乗じて両
    者の絶対値の桁が等しくなるようにする桁合わせ回路
    と、前記桁合わせ回路によって桁合わせされた前記第1
    及び第2の端点の各々の座標値の対応する要素を加算す
    る加算回路と、前記加算回路の出力値を同次座標系にお
    ける座標値としてもつ第3の点が、前記クリッピング境
    界に対して境界上にあるか、境界の内部にあるかまたは
    境界の外部にあるかを判定する判定回路と、前記判定回
    路の判定に基づき前記第3の点が前記クリッピング境界
    に対して境界上にあるときには前記加算回路の出力値を
    クリッピング境界と前記線分との交点の座標値として出
    力し、前記第3の点が境界の内部にあるときには前記加
    算回路の出力値を前記第1のレジスタ群に格納し、前記
    第3の点が境界の外部にあるときには前記加算回路の出
    力値を前記第2のレジスタ群に格納する制御回路とを具
    備することを特徴とするクリッピング回路。
JP2636486A 1986-02-07 1986-02-07 クリツピング回路 Expired - Lifetime JPH0664618B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2636486A JPH0664618B2 (ja) 1986-02-07 1986-02-07 クリツピング回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2636486A JPH0664618B2 (ja) 1986-02-07 1986-02-07 クリツピング回路

Publications (2)

Publication Number Publication Date
JPS62184576A JPS62184576A (ja) 1987-08-12
JPH0664618B2 true JPH0664618B2 (ja) 1994-08-22

Family

ID=12191443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2636486A Expired - Lifetime JPH0664618B2 (ja) 1986-02-07 1986-02-07 クリツピング回路

Country Status (1)

Country Link
JP (1) JPH0664618B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4439060B2 (ja) 1999-12-17 2010-03-24 株式会社ルネサステクノロジ 浮動小数点加算器

Also Published As

Publication number Publication date
JPS62184576A (ja) 1987-08-12

Similar Documents

Publication Publication Date Title
US5363479A (en) System and method for rendering bezier splines
US7277096B2 (en) Method and apparatus for surface approximation without cracks
US5973705A (en) Geometry pipeline implemented on a SIMD machine
US5808619A (en) Real-time rendering method of selectively performing bump mapping and phong shading processes and apparatus therefor
US7764285B2 (en) Computer graphics systems and methods for encoding subdivision triangular surfaces
JPH01124077A (ja) 画素生成方法及びシステム
JPH0927039A (ja) オブジェクトにテクスチャを表示するためにテクセル値を計算する方法及び装置
JP2670875B2 (ja) 適応前進差分および整数算術を用いてパラメトリツク関数を表示する装置および整数算術を用いて実現する方法
JPH1049665A (ja) 画像処理装置および方法
US5892516A (en) Perspective texture mapping circuit having pixel color interpolation mode and method thereof
US7636095B2 (en) Pixel delta interpolation method and apparatus
US5579459A (en) Method for clipping a line segment against an arbitrary polygon in the floating point domain
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
US6742008B2 (en) Accurate and cost effective linear interpolators
US7397483B1 (en) Image data conversion using interpolation
Milovanović et al. Designing of processor-time optimal systolic arrays for band matrix-vector multiplication
US20030117399A1 (en) Image processing apparatus and method, storage medium, and program
US6380936B1 (en) System and method for inferring projective mappings
JP4089728B2 (ja) 多次元補間装置
JPH1049652A (ja) 3次元cadにおけるb−スプライン曲線と直線との交点算出方法
JPS62184576A (ja) クリツピング回路
JPS6114514B2 (ja)
JP2713400B2 (ja) 投影情報生成装置
TW479207B (en) Elimination method and module for 3D graphics
JPH0344773A (ja) 画像補間装置