JPH01304588A - クリッピング処理方式 - Google Patents

クリッピング処理方式

Info

Publication number
JPH01304588A
JPH01304588A JP63132848A JP13284888A JPH01304588A JP H01304588 A JPH01304588 A JP H01304588A JP 63132848 A JP63132848 A JP 63132848A JP 13284888 A JP13284888 A JP 13284888A JP H01304588 A JPH01304588 A JP H01304588A
Authority
JP
Japan
Prior art keywords
segment
area
clip
memory
vertex
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
JP63132848A
Other languages
English (en)
Inventor
Nobuhito Matsushiro
信人 松代
Ikuo Oya
大宅 伊久雄
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP63132848A priority Critical patent/JPH01304588A/ja
Priority to US07/354,978 priority patent/US4972330A/en
Priority to EP89109654A priority patent/EP0344686B1/en
Priority to DE68926263T priority patent/DE68926263T2/de
Publication of JPH01304588A publication Critical patent/JPH01304588A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Abstract

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

Description

【発明の詳細な説明】 「産業上の利用分野」 本発明は、任意形状の閉じたクリップ領域境界によって
図形・画像等の被クリップ対象の一部を取り出すクリッ
ピング処理方式に関し、各種の図形・画像処理システム
に適用できるものである。
[従来の技術] 従来、この種のクリッピング処理方式として、文献「コ
ンピュータ・グラフィックス」 (J、D。
FOLI兄Y(フォリー)/A、VAN  DAM(ヴ
アンダム)共著、今宮淳美訳、1984年、11本コン
ピュータ協会発行)に開示されているものがある。
これには、サザランlへ等の方式やウエイラー等の方式
によるクリッピング処理方式が記載されている。これら
は、被クリップ対象としての図形要素の境界と、クリッ
プ領域の境界との交点を計算し、得られた交点、図形要
素の境界及びクリップ領域の境界から、クリップ領域内
に存在する図形要素の部分境界を再構成するものであり
、サザランIへの方式及びウェイシーの方式は再構成す
る処理が異なっている。
クリップされた図形要素部分は、画素に展開されて描画
用メモリに格納され、その後、プリンタ装置や陰極線管
(CRT)表示装置等のラスタ状出力装置に与えられて
出力される。
なお、かかる処理において、必要に応じて座標系の変換
がなされる。
[発明が解決しようどする課題] しかしながら、上述の従来方式によれば、クリップ領域
の境界と、図形要素の境界との交点を計算することを要
するので、少なくとも一方の境界が、例えばコンピュー
タグラフィックスの分野で多く用いられているベジェ曲
線やスプライン曲線等の複雑な曲線で規定されている場
合、高次代数方程式を解いて交点を求めることになり、
クリップ処理に多大な時間を要し、また、クリッピング
処理部を専用ハードウェア化する場合の妨げとなってい
た。
そこで、境界がベジ飄曲線やスプライン曲線等の場合に
、これら曲線を線分列で近似させて交点をtl算するこ
とも考えられるが、一方の境界の全ての線分と、他方の
境界の全ての線分(又は境界自体)との全ての組み合わ
せについて交点の有無及び交点座標を演算しなければな
らず、近似線分の長さを短くした場合には、演算すべき
線分の組み合わせが非常に多くなり、このように近似さ
せてもクリッピング処理時間の短縮を期待できない。
近似線分の長さをある程度長くすると演算すべき線分の
組み合わせが少なくなり、多少処理時間を短縮すること
ができるが、長さを長くした分近似性が劣り、出力され
た図形要素の両肩が劣化してしまう。
また、上述の方式によれば、クリップ領域として、境界
の凹凸がはげしいものや、内部にクリップしない穴領域
を有するものを適用した場合には、交点が多くなり、そ
れら交点をはさんだクリップ領域の内外判定処理等を含
めた再構成処理が複雑になり、処理時間の長時間化等処
理性能が劣化する。
さらに、上述の従来方式によれば、クリッピング処理を
他の処理と無関係に行なっており、クリップされた部分
図形要素をラスタ状に展開したり、又は及び画素に展開
して描画用メモリに格納させる処理にも時間がかかる等
の問題があった。
本発明は、以上の点を考慮してなされたもので、簡易な
演算によって短時間のうちに被クリップ対象をクリップ
することができると共に、かかるクリップ処理が被クリ
ップ対象をラスタ状に変換する処理と親和性が高く、出
力処理を含めた処理性能に優れたクリッピング処理方式
を提供しようとするものである。
[課題を解決するための手段] かかる課題を解決するため、本発明においては、境界が
任意形状のクリップ領域によって、2次元的な被クリッ
プ対象のクリップ領域内に存在する部分情報を取り出し
、その取り出した被クリップ対象の部分情報をラスタ状
出力装置に引渡して出力させるクリッピング処理方式に
おいて、クリップ領域を、ラスタ状出力装置の走査線方
向に沿ったセグメントに分解し、分解されたセグメント
の情報でクリップ領域を規定して被クリップ対象の部分
情報を取り出すようにした。
[作用コ クリップ領域を走査線方向に沿ったセグメントに分解し
てセグメント情報に変換する。この場合、走査線方向と
クリップ領域境界との交点とを求めれば良く、被クリッ
プ対象境界とクリップ領域境界との交点を求めるような
複雑な演算処理を行なう必要はなく、簡易な演算によっ
て七グメンl−に分解できる。
また、走査線方向に沿ったセグメントでクリップしたの
で、クリップ後の被クリップ対象を再構成することなく
、そのセグメント毎に被クリップ対象のクリッピングを
実行でき、これによって被クリップ対象の全体のクリッ
ピングを実行する。
[実施例] 以下、本発明を図形要素をクリップする場合に適用した
一実施例を図面を参照しながら詳述する。
ここで、第1図は実施例のクリッピング処理方式の全体
処理手順を示すフローチャート、第2図はクリップ領域
のセグメント化の説明に供する路線図、第3図は実施例
の機能ブロック図、第4図はセグメントメモリ6の+1
4造を示ず路線図、第5図はセグメントデータ管理メモ
リ7の構造を示す路線図、第6図はセグメントデータ管
理メモリ7に対するデータの詳細な作成処理手順を示す
フローチャート、第7図はセフメン1〜メモリ6に対す
るデータの詳細な作成処理手順を示すフローチャー 1
−1第8図はセグメントデータの読出し及びクリップ処
理の詳細手順を示すフローチャー1・、第9図はセグメ
ント単位のクリップ処理の説明に供する路線図、第10
図はDDA法を用いた場合のセグメントデータの作成方
法の説明に供する路線図、第11図はイーブンオツド法
の説明図、第12図はノンゼロワインディング法の説明
図、第13図はイーブンオツド法とノンゼロワインディ
ング法とによって作成されるセグメント数が異なる場合
を示ず路線図、第14図は複数のクリップ領域を有する
場合のセグメントデータ管理メモリの構造を示ず路線図
、第15図はセグメントメモリの領域に対する異なる格
納例を示す図である。
夾施凹座詩虱 先ず、実施例の特徴について第2図を用いて説明する。
この実施例は、第2図に示すようなりリップ領域cpを
、ラスタ状出力装置(図示せず)の走査線上に沿ったセ
グメント1、S2、・・・に分解し、各セグメントS1
、S2、・・・の始点及び終点く又は始点及びセグメン
ト長)の情報にクリップ領域の情報を変換し、セグメン
トに変換後の情報を用いて図形要素をクリップすること
を特徴とするものである。
丈旌Am皿滅 次に、機能的にみた実施例の構成を第3図について説明
する。
第3図において、クリップ処理部1には、図形要素及び
クリップ領域が与えられ、クリップ処理部1は、図形要
素をクリップ領域によってクリップし、画素に展開した
後5.クリツプされた図形要素を描画用メモリ2に与え
て格納させるものである。描画用メモリ2に格納された
図形要素は、順次ラスタ状に読み出されてプリンタ装置
3に与えられ印字され、又はCRT表示装置4に与えら
れて表示される。
クリップ処理部1は、詳細には、走査変換部5、セグメ
ントメモリ6、セグメントデータ管理メモリ7、クリッ
プ処理本体部8、セグメント画素変換部9、演算処理(
ALU)部1o及び制御部11がバス12を介して接続
されて構成されている。
走査変換部5は、図形要素及びクリップ領域を走査線上
のセグメン1〜に分割してセグメントデータに変換する
ものである。
セグメントメモリ6は、第4図に示すデータ構造を有し
、走査変換部5によって得られたクリップ領域について
のセグメントータータを格納するものである。
セグメントデータ管理メモリ7は、第5図に示ずデータ
jM Mを有し、セスメンl−メモリ6をアクセスする
際に必要となる各種データを格納するものである。
クリップ処理本体部8は、走査変換部5から与えられる
図形要素のセグメントデータと、セフメン1〜メモリ6
に格納されているクリップ領域についてのセグメントデ
ータとの各走査線について共通のセグメント部分を取り
出すもの、すなわち、クリップされた図形要素について
のセグメントデータを得るものである。
セグメント画素変換部9は、クリップされた図形要素の
セグメントデータを画素に展開して描画用メモリ2に与
えるものである。
制御部11は、第1図、第6図〜第8図に示す処理プロ
グラムを格納するプログラムメモリを内蔵し、プログラ
ムメモリに内蔵されているプログラムに従い、上述した
各機能部の処理を制御するものである。なお、各機能部
がプログラムに従った処理を実行する際に演算が必要と
なったときには演算処理部10がその演算を実行するよ
うになされている。
セグメントメモリ6の 遣 次に、セグメントメモリ6のデータ構造を第4図につい
て説明する。
第4図において、1個のアドレスに対するメモリエリア
は、そのメモリエリアにセグメントデータ(ワード)が
格納されているか否かを表わすフラグと、X方向を走査
線方向とし、Y方向を走査線のインクリメント方向とし
た第2図に示すようなX−Y座標系を考えた場合のセグ
メン1へ始点のX座標値及びセグメント終点のX座標値
でなるワードとを格納する。このような1個のセグメン
トに対するデータを、クリップ領域を分割した全てのセ
グメントについて格納するようになされている。
セグメントメモリ6は、進入頂点及び退出頂点の組数に
等しい数の領域Ri (iは組数n)に区分されており
、各領域Riには進入頂点のY座標値と退出頂点のY座
標値の差分より1だけ多い数hiだけのセグメントデー
タが格納される。
ここで、進入頂点とは、走査線を順次インクリメンl−
していったとき処理中の走査線に進入してきた頂点であ
り、第2図の場合には頂点P1及び1)4が該当し、退
出頂点とは、走査線を順次インクリメントしていったと
き処理中の走査線から退出していった頂点であり、第2
図の場合には頂点1) 3及びP5が該当する。また、
クリップ領域の境界を、進入頂点から所定方向に稜線を
トレースして退出頂点に至るとき、これを進入頂点及び
退出頂点の組という。
第2図の場合には、反時計方向にトレースすると、進入
頂点P1及び退出頂点P3、並びに、進入頂点P4及び
退出頂点P5がそれぞれ組となり、また、時計方向にト
レースすると、進入頂点1〕1及び退出頂点P5、並び
に、進入頂点P4及び退出頂点P3がそれぞれ組となる
なお、後述する理論的根拠で説明するように、クリップ
領域をセグメントに変換した場合、各組について進入頂
点及び退出頂点のY座標値の差分)+1ずつのセグメン
トがあり、これらの総和か総セグメント数であるので、
かかるデータ構造によって全てのセグメントを格納する
ことができる。
なお、同一走査線上に複数のセグメントが存在する場合
、それぞれ、各領域の走査線Y座標値に対応するワード
位置に格納される。
タダメントデータ咬理メモ+7の′?遣次に、セグメン
トデータ管理メモリ7のデータ構造について第5図を参
照しながら詳述する。
このセグメントデータ管理メモリ7は、セグメントメモ
リ6の各領域Riを管理するデータを格納するものであ
り、与えられた走査線Y座標値に応じて、その走査線上
の全てのセグメントデータをセグメントメモリ6からア
クセスする際に、このメモリ7に格納されたデータが用
いられるものである。
格納されるデータとしては、ルートポインタrp、進入
頂点ポインタvpi、進入頂点Y座標値yi、領域のワ
ード数hi、セグメントメモリポインタsmpiがあり
、ルートポインタrp以外のデータは、セグメントータ
モリ6の各領域R1海に1−ブロックのデータとして格
納される。 進入頂点ポインタvpiは、進入頂点をY
座標値の小さい順に結ぶポインタであり、走査線Y座標
値の増加に対して次に進入する進入頂点を知るに用いる
ものである。
進入頂点Y座標値yiは、進入頂点から順にY増加方向
に発生されているセグメントの座標値を計算するのに用
いるものである。
ワード数hiは、セグメントメモリ6の領域R1の大き
さを知るのに用いるものである。
セグメントメモリポインタsmp iは、セグメントメ
モリ6の各領域Riの最初のアドレスを知るのに用いる
ものである。
ルーI・ポインタl−pは、進入頂点ポインタvpiの
始点を示すポインタである。
クリッピング 1里の全゛自<tJ几丁里;用■次に、
この実施例によるクリッピング処理の全体的な処理手順
を第1図を参照しながら詳述する。
先ず、入力されたクリップ領域からセグメントデータ管
理メモリ7に対するデータを作成してセグメン1へデー
タ管理メモリ7に格納する(ステップ100)。なお、
かかる処理の詳細を第6図のフローチャートに示す。
次に、入力されたクリップ領域からクリップ領域に対す
るセグメントデータを作成してセグメン1へメモリ6に
格納する(ステップ1−01)。なお、かかる処理の詳
細を第7図のフローチャートに示す。
このようにして、クリップ領域についてのセグメントデ
ータ及びそのデータをアクセスするために必要とする管
理データを作成して格納すると、走査線Y座標値ysを
最も値が小さい進入頂点のY座標値に初期化する(ステ
ップ102)。
その後、走査線Y座標値ysが指示する走査線上の入力
された図形要素のセグメントを求める(ステップ103
)。この段階でセフメン1〜メモリ6に格納されている
その走査線上のクリップ領域についてのセグメントデー
タをセグメントデータ管理メモリ7のデータを用いなが
ら読出し、第9図に示すように図形要素のセグメンl−
8G(第9図(A)実線)とクリップ領域のセグメント
SC(第9図(A)破線)とのX座標値の共通部分(第
9図(B))を取り出し、クリップした図形要素SGC
をセグメント画素変換部9に出力するくステップ104
)。
なお、セグメントメモリ6からクリップ領域についての
セグメントデータを読出してクリップする処理の詳細フ
ローチャートを第8図に示す。
このようにして1つの走査線について図形要素セグメン
トのクリップ処理を終了すると、クリップ領域と交わる
全ての走査線についてセグメント単位のクリップ処理が
終了したか否かを判断し、終了していない場合、走査線
Y座標値ysを次の座標値に更新して上述のステップ1
03に戻り、終了している場合には一連のクリップ処理
を終了させる(ステップ105.106)。
このようにしてクリップされた図形要素のセグメントデ
ータは、セグメント画素変換部9によって画素に展開さ
れて描画用メモリ2に格納され、このメモリ2から順次
ラスタ状に読み出されてプリンク装置3又はCRT表示
装置4に与えられて出力される。
次に、第1図に示す全体処理のステップ100において
実行されるセグメントデータ管理メモリ7に対するデー
タの作成処理について第6図を参照しながら詳述する。
先ず、入力されたクリップ領域の境界データを後処理に
適合するような形に構造化して取込む(ステップ120
)。例えば、クリップ領域が線分でなり、頂点列で与え
られる場合、その頂点列の並びを後処理に適合する時計
方向回り又は反時計方向回りに並び換えたりしながら取
込む。
次いで、セグメントメモリ6の領域Riに対応した領域
パラメータiを1に初期化すると共に、セグメントメモ
リポインタパラメータsmpを0に初期化する(ステッ
プ121)。
次に、クリップ領域境界を、例えば反時計方向にたどり
、退出頂点でない頂点を処理対象の始点の頂点としてセ
ットする(ステップ122)。
このような初期化処理が終了すると、処理対象の頂点が
進入頂点か否かを判断する(ステップ123)。否定結
果を得ると、その頂点から境界を反時計方向にたどった
次の頂点を取り出し、取り出した頂点が始点の頂点でな
いことを確認してステップ123に戻る(ステップ12
4.125)。
ステップ123〜125を実行することで、処理対象の
頂点とi〜で進入頂点が見つけ出され、ステップ123
において肯定結果が得られる。なお、ステップ125に
おいて肯定結果を得ると、後述するステップ135に進
む。
このようにして進入頂点が見つかると、その進入頂点の
Y座標値を、i番目の領域Riの進入頂点Y座標値yi
としてセグメントデータ管理メモリ7に格納すると共に
、後述するワード数hiの算出に供する始点Y値パラメ
ータVIとして一旦格納し、また、そのときのセグメン
トメモリポインタパラメータS ITI pを、領域R
iのセグメンI−)メモリポインタsmp iとしてセ
グメンl〜データ管理メモリ7に格納する(ステップ1
26)。
次に、処理対象の頂点が退出頂点か否かを判断する(ス
テップ127)。否定結果を得ると、この頂点から反時
計方向に境界をたどった次の1頁点を取り出し、ステッ
プ127に戻る(ステップ]28)。このような処理を
繰り返すことにより、上述のステップ123で取り出さ
れた進入頂点と組をなす退出頂点が見つけ出され、ステ
ップ127において聞定結果が得られる。
このときには、先ず、その退出頂点のY座標値を、後述
するワード数hiの算出に供する終点Y値パラメータV
Oとして格納する(ステップ129)。その後、上述し
た始点Y値パラメータVI及びこの終点Y値パラメータ
V○から次式%式%(1) に従い、ワード数hiを算出してセグメントデータ管理
メモリ7に格納し、また、セグメントメモリポインタパ
ラメータsmpにこのワード数h iを加算して、次の
進入頂点及び退出頂点の組用にセグメントメモリポイン
タパラメータsmpの値を更新する(ステップ130)
このようにして、領域Riについて、進入頂点のY座標
値yi、ワード数hi、セグメントメモリポインタsm
p iがセグメントデータ管理メモリ7に格納されると
、クリップ領域を反時計方向にたどった次の頂点を取出
し、処理対象の頂点が上述したステップ122において
セラ1−された始点を越えて一巡した頂点になっている
が否かを判断する(ステップ131.132)。
その結果、否定結果を得ると、領域パラメータiをイン
クリメントしてステップ123に戻り、次の領域Riに
ついての進入頂点及び退出頂点を見つけ出してその領域
Riについての管理データをセグメントデータ管理メモ
リ7に格納する処理に戻る(ステップ133)。
これに対して、トレースがクリップ領域境界を一巡する
と、各領域Riについての進入頂点のY座標値を小さい
順に結ぶ進入頂点ポインタvpl〜vpnを形成し、同
時に最初の進入頂点ポインタvplのアドレスをルーI
・ポインタrpに格納してセグメントデータ管理メモリ
7に対するデータの作成を終了する(ステップ134)
セグメン[・メモリ6に差 −るデータの均゛次に、ク
リップ領域をセフメンl−データに分解して作成し、そ
のセグメントデータをセグメン(・メモリ6に格納する
処理(第1図ステップ101参照)を第7図に基づいて
詳述する。
先ず、走査線Y座標値ysを、セグメントデータ管理メ
モリ7内の進入頂点ポインタvpl及びそのY座標値y
1に基づいて、クリップ領域の最小のY座標値にセット
する(ステップ140)。
次いで、領域パラメータiを初期値1にする(ステップ
141)。
次に、その走査線上の1一つのセグメントのデータ、す
なわち始点X座標値及び終点X座標値を生成する(ステ
ップ142)。
ここで、そのセグメントが点(頂点〉であれば、始点及
び終点X座標値として同゛−のものを生成し、また、直
線線分の稜線によって定まる有限長のセグメントであれ
ば、例えばその1つ上の走査線のセグメントデータ(x
s、xe)から第10図に示すように増分△xs、△x
eを加減算することでセフメン1ヘデータを作成する。
すなわち、デジタル微分解析機構(DDA: Digi
tal Differential Analyzcr
)法によって生成する。稜線がベジェ曲線やスプライン
曲線に従う場合には、DDA法の一種である前進増分(
Fowerd Difference)法によって増分
を適宜変化させていくことで生成する。
なお、この際、必要となるクリップ領域についての内外
判定法としては、後述するイーブンオツド([ven−
odd )法又はノンゼロワインデインク(N O+1
− zero winding)法のいずれかを適用す
る。
その後、このときの領域パラメータiによって規定され
る組の進入頂点のY座標値yiより走査線Y座標値ys
が小さくないこと、及びその領域Rjについての退出頂
点のY座標値(yi+hi)より走査線Y座標値ysが
大きくないこと、すなわち、そのセグメントメモリ6の
領域Riにセグメントデータを格納できるエリアを確保
できるか否かを判断しくステップ143)、否定結果を
得ると、領域パラメータiをインクリメントシて再度ス
テップ143に戻り、格納できるエリアを確保できる領
域fljを見つけ出す(ステップ144)このようにし
て確保できる領域Riを見つけ出すと、そのときの走査
線Y座標値ys、その領域Riの進入頂点Y座標値yi
、及びセグメン1〜メモリポインタsmp iから次式 %式%(2) に従い、定まるアドレスadを求め、そのアドレスad
のメモリエリアにセグメン1へデータを格納し、同時に
そのエリアのフラグをセラ(へする(ステップ145)
次いで、領域パラメータiをインクリメントした後、対
象となっている走査線上の全てのセグメンlへに対して
上述の生成処理を実行したか否かを判断し、否定結果を
得た場合には、上述のステップ142に戻り、その走査
線上の次のセグメントについて上述と同様な処理を繰り
返すことになる)(ステップ146.147)。
このようにして対象となっている走査線上の全てのセグ
メントについてデータの生成及び格納処理が終了したと
判断すると、クリップ領域を横切る全ての走査線につい
て上述した処理を終了したか否かを判断し、終了してい
ない場合には、走査線Y座標値ysを次の値に更新して
上述のステップ141に戻り、次の走査線に対するセグ
メントの生成、格納処理に進む(ステップ148.14
つ)。
このようにして全てのセグメントについて、そのセグメ
ントデータをセグメントメモリ6に格納すると、一連の
セグメントデータの生成、格納処理を終了する。
次に、クリップ領域を走査線方向に分解して得た全ての
セグメントデータを゛、上述の処理によってセグメント
メモリ6に格納できる理論的根拠を説明する。
先ず、進入頂点と退出頂点の数について考えて見る。ク
リップ領域境界を例えば反時計方向にたどっていくとす
る。ある点に進入頂点がある場合その後境界をたどって
いくと、境界が閉じた曲線になっていることにより、進
入頂点から下方に延びた稜線はやがて頂点を介して上方
に折曲されることになる。また、ある頂点を介して−F
方に折曲された場合であってその後の頂点を介して再度
下方に折曲された場合、曲線を閉じるためには、再度上
方に境界を折曲しなければならない。従って、進入頂点
の次に進入頂点がくることはなく、また、退出頂点の次
に退出頂点がくることはなく、進入頂点と退出頂点とは
境界を所定方向にたどった場合交互に現れる。
その結果、クリップ領域境界の進入頂点数及び退出頂点
数は等しいと言うことかでき、かつ交互に現れるので、
上述したような組として取り扱うことができる。
ところで、クリップ領域の内外判定の方式として、第1
1図に示すようなりリップ領域の絶対的に外部にある基
準点から半直線を引いたときクリップ領域の境界との交
点を基準点から数えてその値が奇数になった境界位置と
次の値の偶数になった境界位置との間がクリップ領域の
内部と判定するイーブンオツド法がある。
半直線の方向を走査線方向としてこのイーブンオツド法
に従い、セグメントを発生する場合、ある走査線上に対
する既存稜線が2n個あった場合交点数が2n個である
ので、セグメントはn個ある。この走査線位置より1個
の進入頂点を挾んで下方にある走査線を考えると、交差
する稜線は2木増えるのでその走査線位置のセグメント
数は1個増える。同様に考えると、走査線をインクリメ
ントして退出頂点を越えると、退出頂点より下側に位置
する走査線上のセグメント数は退出頂点より上方の走査
線上のセグメント数より1だけ減少する。
上述した進入頂点及び退出頂点数が等しいこと、並びに
進入頂点及び退出頂点前後の走査線上でのセグメント数
の変化を考慮すると、イーブンオツド法に従って内外判
定してセグメンl−を生成する場合、1組の進入頂点及
び退出頂点によってその進入頂点及び退出頂点のY座標
値の差分+1藺のセグメントができ、総数は各組による
セグメント化数の総和になることが分る。
従って、上述のように各組に応じてセグメントメモリ6
を領域化するようなセグメントデータ管理メモリ7のデ
ータを作成し、そのデータによって領域化されたセグメ
ントメモリ6に進入頂点側からセグメントデータを格納
することによって全てのセグメントデータを格納できる
ことが判る。
ところで、クリップ領域の内外判定方式としては、イー
ブンオツド法の外にノンゼロワインディング法がある。
これは、第12図に示すようにクリップ領域の絶対的な
外部の基準点から延びる半直線を考え、その基準点にお
ける判定パラメータを0とし、半直線とクリップ領域の
境界とが外債が負の方向に交わるとき判定パラメータを
例えば−1し、半直線とクリップ領域の境界との外債が
正の方向に交わるとき判定パラメータを例えば+1し、
交点以外の半1ヴ線上では判定パラメータの値を変えな
いようにし、半直線上の各点における判定パラメータを
求め、その判定パラメータが0でない部分を内部と判定
し、0の部分を外部と判定するようにしたものである。
このノンゼロワインディング法によっても、以下のよう
な特殊な場合を除き、イーブンオツド方式と同様な判定
結果を得ることができ、上述のデータtjl =によっ
て全てのセグメントデータ管理メモリ7のデータによっ
て規定される全てのメモリエリアに対してセグメントデ
ータを格納することができる。
しかし、第13図に示すような稜線が頂点以外で交差す
るようなりリップ領域内場合、例えば走査線I−Xに対
するセグメンlへとしてノンゼロワインディング法の場
合には、点p1〜p4を一つのセグメントとして捕らえ
るが、イーブンオツド法の場合、このような例外的な場
合の処理の仕方によって異なるが点p1〜p3のセグメ
ン1とp2〜p4のセグメントとの2個のセグメントと
してとらえる。従って、イーブンオツド法による場合、
ノンゼロワインディング法よりセグメント数が多くなる
ことはあるが、少なくなることはない。
上述のように、イーブンオツド法の場合、セグメントメ
モリ6に対して管理メモリ7のデータによって規定され
る全てのエリアにセグメントデータか格納されるが、ノ
ンゼロワイディング法の場合には、このような例外的な
りリップ境界に対してはセフメン1ヘメモリの幾つかの
エリアは空きエリアとなるが、上述の管理メモリ7のデ
ータ構造によって生成された全てのセグメントデータを
格納することができることに変りはない。
次に、セグメントメモリ6がらクリップ領域のセグメン
トデータ夕を読出して、このセグメントデータによって
図形要素のセグメントをクリップする処理(第1図ステ
ップ104参照)について、第8図を参照しながら詳述
する。
なお、かかる処理は、第1図について説明したように、
ある走査線の図形要素をセグメント化した後(ステップ
103)になされるものであり、第8図は一つの走査線
についての処理を示すものである。
先ず、セグメントデータ管理メモリ7がらルートポイン
タrpを取り出し、領域パラメータiをそのルートポイ
ンタrpの値にする(ステップ160)。次いで、その
領域パラメータiに一致する進入頂点ポインタvpiを
有するセグメントデータ管理メモリ7のブロックから進
入頂点のY座標値yiを取り出し、走査線Y座標値ys
が進入頂点のY座標値yi以上であるが否かを判断する
(ステップ161)。否定結果を得ると、後述するステ
ップ167に進み、’+5F定結果を得ると、セグメン
トデータ管理メモリ7に格納されているワード数hiを
も用いてその領域Riに関する退出頂点のY座標値y 
i 十h iより走査線Y座標値ySが小さくなってい
るか否かを判断する(ステップ162)。この場合にも
、否定結果を得ると、後述するステップ167に進む。
ffeって、ステップ161及び162を実行すること
により、セグメントメモリ6の領域Riに、その走査線
Y座標値ysに等しいY座標値を有するセフメン1〜デ
ータのエリアがあるか否かを判断していることになり、
ステップ162において行定結果を得ることは走査線Y
座標値ysに等しいY座標値を有するセグメントデータ
のエリアがあることを表わす。
このようにして走査線Y座標値ysに等しいY座標値を
有するセグメントデータのエリア領域R1があると判断
すると、セグメントデータ管理メモリ7に格納されてい
るセグメンl−メモリポインタsmp iを用いて、次
式 %式%(3) に従い、セグメン1へメモリ6に対するX売出しアドレ
スacjを形成し、そのアドレスのエリアのフラグかセ
ットされていることを確認してそのアドレスのエリアか
らセグメントデータ夕を取り出す(ステップ163〜1
65)。なお、フラグがセットされていない場合には、
直ちに後述するステップ167に進む。
このようにしてセグメントメモリ6から、処理対象とな
っている走査線上のクリップ領域についての一つのセグ
メントータータを得ると、第1図のステップ103にお
いて得られた図形要素のセグメントデータ夕が表わすセ
グメントと読出されたクリップ領域についてのセグメン
トデータが表わずセグメントとの共通部分を取り出しく
第9図参照)、図形要素のセグメントをクリップしてセ
グメント画素変換部9に出力する(ステップ166)。
かかる処理を終了すると、また、上述したステップ16
1.1.62及び164において否定結果を得ると、い
ままで処理に供していた領域パラメータiが示すブロッ
クのルートポインタVpiの値が最後のブロックを示す
ものになっているか否かを判断し、否定結果を得ると、
そのブロックのルートポインタvpiに格納されている
値に領域パラメータiの値を更新して上述のステップ1
61に戻り、処理対象となっている走査線上の次のセグ
メントに対する処理に移行する(ステップ167.16
8)。
他方、ステップ167において肯定結果を得ると、現在
処理対象となっている走査線についての処理を終了し、
第1図におけるステップ105に進む。
このような処理を繰り返すことにより、各走査線につい
ての全てのセグメン1へデータを読出し、図形要素に対
するクリッピング処理を実行することができる。
叉旌倒久力釆 上述の実施例によれば、クリップ領域をセグメントに分
解してクリッピングするようにしたので、図形要素をセ
グメントに分解する処理との親和性が良く、図形要素を
セグメントに分解する処理部をほぼそのまま利用でき、
わずかな機能要素の追加によってクリップ処理を実現す
ることができる。
また、セスメンl−データを用いてクリッピングするよ
うにしたので、従来方法とは異なり、領域境界がベジェ
曲線やスプライン曲線であっても高次代数方程式を解<
氾・要がない。その結果、構成を簡易なものとすること
ができ、専用ハードウェア化するのに好適なものとなっ
ている。また、処理速度も高速化することが期待できる
なお、セグメントータータにする場合、走査線とクリッ
プ領域との交点を14)る必要があるが、境界稜線が直
線の場合には、一つ上のセグメントの始点又は終点に対
して所定の増分を加減算することで次の走査線のセフメ
ン1〜データを得ることができ、DDA法を適用するこ
とができ、稜線がベジェ曲線やスプライン曲線であって
もDDA法の一種である前進増分法を適用でき、高次代
数方程式を解く場合に比べて格段的に簡易な計算方法を
適用できる。
また、上述の実施例によれば、セグメントデータとして
クリップ領域を規定するようにしたので、内部に穴領域
があるクリップ領域や凹凸が激しいクリップ領域に対し
ても容易にクリッピング処理することができ、この点か
と、も従来に比して処理の簡易化及び高速化を実現でき
、専用ハードウェア化するのに好適であるということが
できる。
さらに、1ユ述の実施例GFよれば、クリ・ツブ領域は
、セメメン1〜データとして情報圧縮されていることに
なり、クリップ領域をピッ1へマツプ情報として持つ場
合に比較してメモリとして小容量のもので済む。
肱ム実施側 (1)上述の実施例においては、クリップ領域が1個の
ものについて説明したが、クリップ領域が2個以上ある
場合にも適用することができる。この場合において、2
個以上のクリップ領域が重複部分を有していても良い。
このときには、第14図に示すようにセグメントデータ
管理メモリ7は、それぞれのクリップ領域に対応した複
数個のルーl−ポインタrpl、rp2、・・・を持つ
ようにし、かつ各クリップ領域毎に管理データの格納エ
リアをまとめることで容易に対応することができる。
(2)同一走査線上のセグメントデータをセグメントメ
モリ6に格納する順序は、第15図のように入れ換えて
も良い。同一走査線上のセグメントの取出し順序をX座
標値の小さい方から行なう場合と、大きい方から行なう
場合とでこのように格納するメモリエリアが異なるが、
上述した理論的根拠から明らかなようにこの場合におい
ても全てのセグメントデータを格納することができる。
(3)上述の実施例においては、走査変換部が1個のも
のを示したので、クリップ領域のセグメントデータ変換
を最初に行なってセグメントメモリ6に格納した後、図
形要素をセグメントに変換し、クリッピングするものを
示したが、走査変換部を複数個設けてクリップ領域のセ
グメント化と、図形要素のセグメンlへ化とを並行して
実行し、セグメントメモリを省略又は簡易化しても良い
(4)」−述の実施例においては、セグメントデータを
セグメントの始点と終点で規定したが、セグメントの始
点とその長さ等地の規定の方法を用いても良い。
(5)上述の実施例では、図形要素をクリッピングする
ものを示したが、他の被クリップ対象をクリッピングす
るものて′あっても良い。ピッl−マツプ展開された文
字フォントをクリッピングするものであっても良い。こ
の場合、クリップ領域のセグメントにあるピッI〜情報
を取り出して出力することになる。また、画像矩形領域
をクリッピングする場合にも適用でき、情報の存在を示
す仮想的な直線区間でなる領域をクリッピングする場合
にも適用できる。
(6)なお、上述の実施例においては、入力されてくる
クリップ領域及び図形要素の座標系がラスタ状出力装置
(3,4)の座原糸に従ったものを示したが、クリッピ
ング処理をユーザ座標系で行ない、描画用メモリ2に格
納する前段に座標系の変換処理を行なうようなものであ
っても良い。
[発明の効果] 以上のように、本発明によればクリップ領域をラスタ状
出力装置の走査線方向に沿ったセグメン1〜に分解し、
そのセグメントデータに基づいて被クリップ対象をクリ
ッピングするようにしたので、簡易な演算処理によって
クリッピングすることができ、しかも、ラスタ状出力装
置への出力に対する親和性が高い、処理性能の優れたク
リッピング処理方式を得ることができる。
【図面の簡単な説明】
第1−図は本発明によるクリッピング処理方式の一実施
例の全体処理手順を示すフローチャー1−5第2図はク
リップ領域のセグメント化の説明に供する路線図、第3
図は上記実施例の機能的構成を示すブロック図、第4図
はセグメントメモリ6の横道を示ず路線図、第5図はセ
グメンlへデータ管理メモリ7の構造を示す路線図、第
6図はセグメントデータ管理メモリ7に対するデータの
詳細な作成処理手順を示すフローチャート、第7図はセ
グメントータモリ6に対するデータの詳細な作成処理手
順を示すフローチャート、第8図はセグメントデータの
読出し及びクリップ処理の詳細手順を示すフローチャー
ト、第9図はセグメント単位のクリップ処理の説明に供
する路線図、第10図はDDA法を用いた場合のセグメ
ントデータの作成方法の説明に供する路線図、第11−
図はイーブンオツド法の説明図、第12図はノンゼロワ
インディンク”法の説明図、第13図はイーブンオツド
法とノンゼロワインディング法とによって作成されるセ
グメント数が異なる場合を示ず路線図、第1−4図は複
数のクリップ領域を有する場合のセグメントデータ管理
メモリの構造を示す路線図、第1−5図はセグメントメ
モリの領域に対する異なる格納例を示す図である。 1・・・クリップ処理部、2・・・描画用メモリ、3・
・・プリンタ装置、4・・・CRT表示装置、5・・・
走査変換部、6・・・セグメントメモリ、7・・・セグ
メン1へデータ管理メモリ、8・・・クリップ処理本体
部、9・・・セグメント画素変換部、10・・・演算処
理部、11・・・制御部。 プと施例のクリフピンク゛処Jlブjデ(のメイノフト
チャート第1図 R1,R2・・・、領域 hl、h2・・・、各領域の7一ト′敗七り゛メントメ
モリ6の構造を示す図 第4図 セグメントテ゛−タ管理メモリ7のテ゛−タ作litり
4理の70−チキート七り゛メツトメモリ6のテ゛−タ
作成処理の7トチヤ一ト第7図 七り゛メカメモリ6からの読出し、及びクリブ7°処理
のフトfrト第8図 七り゛メントメモリ6 複数のクリフッ°領域を示す場合の管理メモリ7の構造
第14図 七り゛メントと七り゛メントメモリの格納場所との陸ト
玉性を示す図第15図

Claims (2)

    【特許請求の範囲】
  1. (1)境界が任意形状のクリップ領域によって、2次元
    的な被クリップ対象の上記クリップ領域内に存在する部
    分情報を取り出し、その取り出した被クリップ対象の部
    分情報をラスタ状出力装置に引渡して出力させるクリッ
    ピング処理方式において上記クリップ領域を、上記ラス
    タ状出力装置の走査線方向に沿ったセグメントに分解し
    、分解されたセグメントの情報でクリップ領域を規定し
    て上記被クリップ対象の部分情報を取り出すようにした
    ことを特徴とするクリッピング処理方式。
  2. (2)上記2次元的な被クリップ対象を走査線方向に沿
    った情報に分解し、この分解された被クリップ対象の情
    報のうち、走査線方向が同一の上記クリップ領域のセグ
    メント情報区間にある情報をそのまま取り出すことによ
    って被クリップ対象の部分情報を取り出すようにしたこ
    とを特徴とする特許請求の範囲第1項に記載のクリッピ
    ング処理方式。
JP63132848A 1988-06-01 1988-06-01 クリッピング処理方式 Pending JPH01304588A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP63132848A JPH01304588A (ja) 1988-06-01 1988-06-01 クリッピング処理方式
US07/354,978 US4972330A (en) 1988-06-01 1989-05-22 Clipping process and processor
EP89109654A EP0344686B1 (en) 1988-06-01 1989-05-29 Clipping process and processor
DE68926263T DE68926263T2 (de) 1988-06-01 1989-05-29 Abschneidungsverfahren und -verarbeitungsgerät

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63132848A JPH01304588A (ja) 1988-06-01 1988-06-01 クリッピング処理方式

Publications (1)

Publication Number Publication Date
JPH01304588A true JPH01304588A (ja) 1989-12-08

Family

ID=15090931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63132848A Pending JPH01304588A (ja) 1988-06-01 1988-06-01 クリッピング処理方式

Country Status (4)

Country Link
US (1) US4972330A (ja)
EP (1) EP0344686B1 (ja)
JP (1) JPH01304588A (ja)
DE (1) DE68926263T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011108113A (ja) * 2009-11-19 2011-06-02 Sumitomo Rubber Ind Ltd 任意の実数群から探索点の最近傍値を探索する方法
JP2011215823A (ja) * 2010-03-31 2011-10-27 Sumitomo Rubber Ind Ltd 流体シミュレーションにおける境界位置決定方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989009975A1 (en) * 1988-04-07 1989-10-19 Matsushita Electric Industrial Co., Ltd. Solid modelling method
US5297240A (en) * 1989-01-13 1994-03-22 Sun Microsystems, Inc. Hardware implementation of clipping and intercoordinate comparison logic
GB2267803B (en) * 1989-01-13 1994-03-02 Sun Microsystems Inc Hardware implementation of clipping and inter-coordinate comparison logic
US5175809A (en) * 1989-09-22 1992-12-29 Ampex Corporation Pipeline architecture for generating video signal
JPH07111742B2 (ja) * 1991-10-01 1995-11-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 図形の変形方法及び装置
US5414524A (en) * 1992-01-14 1995-05-09 Digital Equipment Corporation Image rendering clip registers
JP3332165B2 (ja) * 1992-08-08 2002-10-07 株式会社リコー 画像処理装置
US5418897A (en) * 1993-09-30 1995-05-23 Hewlett-Packard Company Method for elimination of extraneous lines generated by rectangular polygon clipping process
US6730862B1 (en) * 1995-12-27 2004-05-04 Lsi Logic Corporation Erase feature in pen-based computing
US6172682B1 (en) * 1996-01-24 2001-01-09 Hewlett-Packard Co. Detecting insideness of a rectangle to an arbitrary polygon
US7511719B2 (en) 2000-09-18 2009-03-31 Honeywell International Inc. Method, system, and computer product for performing trapezoidal reduction of polygons and interrupted polygons
US20070216696A1 (en) * 2006-03-16 2007-09-20 Toshiba (Australia) Pty. Limited System and method for document rendering employing bit-band instructions
CN108389154B (zh) * 2018-03-27 2022-12-02 长沙景嘉微电子股份有限公司 Gpu中一种用于并行绘制的裁剪区域分割技术的实现方法
CN112581583B (zh) * 2020-12-24 2024-08-23 西安翔腾微电子科技有限公司 一种基于SysML视图的GPU三维剪裁模块的TLM装置及操作方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58189780A (ja) * 1982-04-30 1983-11-05 Fuji Electric Co Ltd 多角形近似による任意ウインド発生方式

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412296A (en) * 1981-06-10 1983-10-25 Smiths Industries, Inc. Graphics clipping circuit
FR2600185B1 (fr) * 1985-12-13 1988-08-19 Sintra Procede de surfacage de zones d'images delimitees par des contours pour processeur graphique et processeur de surfacage pour la mise en oeuvre de ce procede
US4888712A (en) * 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58189780A (ja) * 1982-04-30 1983-11-05 Fuji Electric Co Ltd 多角形近似による任意ウインド発生方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011108113A (ja) * 2009-11-19 2011-06-02 Sumitomo Rubber Ind Ltd 任意の実数群から探索点の最近傍値を探索する方法
JP2011215823A (ja) * 2010-03-31 2011-10-27 Sumitomo Rubber Ind Ltd 流体シミュレーションにおける境界位置決定方法

Also Published As

Publication number Publication date
DE68926263T2 (de) 1996-11-28
US4972330A (en) 1990-11-20
DE68926263D1 (de) 1996-05-23
EP0344686A3 (en) 1992-01-22
EP0344686A2 (en) 1989-12-06
EP0344686B1 (en) 1996-04-17

Similar Documents

Publication Publication Date Title
EP1004988B1 (en) Method, apparatus and computer program product for generating perspective corrected data from warped information
JPH0251786A (ja) 走査変換方法
JPH01304588A (ja) クリッピング処理方式
US4620287A (en) Method and apparatus for representation of a curve of uniform width
JP2806961B2 (ja) 画像符号化方法
EP0095501A4 (en) METHOD AND APPARATUS FOR REPRESENTING A TWO-DIMENSIONAL FIGURE.
US7916141B2 (en) Image processing system using vector pixel
US6859553B1 (en) Flattening images with abstracted objects
US5261032A (en) Method for manipulation rectilinearly defined segmnts to form image shapes
JP3266905B2 (ja) 図形処理装置
EP0775976A2 (en) Method for resizing an image
JPS63305478A (ja) パタ−ン情報復元装置
JPH09106453A (ja) 画像の変形方法
JP2642374B2 (ja) 図形クリツピング方法
JPH06282658A (ja) 曲線データ生成方法および装置
JP3843794B2 (ja) 図形処理装置
AU624137B2 (en) Method and apparatus for image manipulation
JPWO2011092954A1 (ja) 文字作成方法、文字作成装置、および書体データ
JPH0350686A (ja) 図形処理方式
JPH1153578A (ja) 形状変換方法、該方法の処理手順を記録した記録媒体、および形状変換装置
JP2854588B2 (ja) ラスタベクタ変換方法及び線図形入力装置
JP2714114B2 (ja) グラフィック処理方法及びグラフィックシステム
JPH0535912B2 (ja)
JP2001034772A (ja) 図形処理装置および図形処理方法
JP2000082150A (ja) 画像処理装置