JP2902799B2 - How to clip shapes - Google Patents

How to clip shapes

Info

Publication number
JP2902799B2
JP2902799B2 JP4695991A JP4695991A JP2902799B2 JP 2902799 B2 JP2902799 B2 JP 2902799B2 JP 4695991 A JP4695991 A JP 4695991A JP 4695991 A JP4695991 A JP 4695991A JP 2902799 B2 JP2902799 B2 JP 2902799B2
Authority
JP
Japan
Prior art keywords
clipping
trapezoid
active table
intersection
sides
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 - Fee Related
Application number
JP4695991A
Other languages
Japanese (ja)
Other versions
JPH04282784A (en
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.)
Toshiba TEC Corp
Original Assignee
Toshiba TEC 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 Toshiba TEC Corp filed Critical Toshiba TEC Corp
Priority to JP4695991A priority Critical patent/JP2902799B2/en
Publication of JPH04282784A publication Critical patent/JPH04282784A/en
Application granted granted Critical
Publication of JP2902799B2 publication Critical patent/JP2902799B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、画像処理において描画
経路からクリッピング経路に含まれる部分のみを切出し
て描画する図形のクリッピング方に関する。
The present invention relates to a clipping how the graphics to be drawn cut out in the image processing from the drawing path only partially included in the clipping path.

【0002】[0002]

【従来の技術】図形のクリッピング方は、図12及び
図13に示すように図形に対してリスト構造を持つ辺デ
ータリストを作成し、先頭の辺データのアドレスをバケ
ットにセットしていた。すなわち、バケットには辺デー
タを格納するメモリのアドレスが格納され、これにより
辺データを求めることができる。また辺データのアドレ
スが格納されていない部分にはNULLを代入しておく。バ
ケットには辺のyの最小値でエントリし、すでにそこに
辺が存在する場合にはリンク情報によってデータを連鎖
させる。
Clipping how BACKGROUND OF THE INVENTION graphic creates an edge data list with the list structure relative shapes as shown in FIGS. 12 and 13, the address of the head of the edge data has been set to the bucket. That is, the address of the memory that stores the side data is stored in the bucket, and the side data can be obtained by this. In addition, NULL is assigned to a portion where the address of the side data is not stored. An entry is made in the bucket with the minimum value of y of the side, and if the side already exists, the data is linked by link information.

【0003】辺データは図11に示すように、傾きm、
始点座標xS,yS 、終点座標xE,yE 、方向フラグ「+
1」、クリップフラグ「−1」、リンクしている辺情報
のポインタで構成されている。
As shown in FIG. 11, the edge data has a slope m,
Start point coordinates xS, ys, end point coordinates xE, yE, direction flag "+
1 ", a clip flag" -1 ", and a pointer to linked side information.

【0004】そして特開平1−154293号公報にお
いては、バケットを順にサーチして、バケットから辺デ
ータを取出し、辺同士の交差処理をし、交差する場合に
は交点で辺を分割して新しい辺として辺データリストに
入れ、この交差処理をバケットの終了まで繰り返す。次
に再びバケットを最初からサーチし、注目するバケット
にリンクしている辺データをアクティブテーブルに入れ
る。このアクティブテーブルにエントリされた辺を順に
注目辺として、その注目辺が描画経路かクリッピング経
路かの判定、制御規則方式の判定と処理、注目辺が実際
に描画する辺として有効か否かの判定を順次行う。そし
て再びアクティブテーブルにエントリされた辺を順に注
目辺として有効辺の始りか終りかの判定をして実際に描
画する辺を求めて台形を切出し描画していた。
In Japanese Patent Application Laid-Open No. 1-154293, a bucket is searched in order, edge data is extracted from the bucket, edges are intersected, and if they intersect, the edge is divided at the intersection to form a new edge. In the side data list, and this intersection processing is repeated until the end of the bucket. Next, the bucket is searched again from the beginning, and the edge data linked to the bucket of interest is put into the active table. The sides entered in this active table are sequentially set as a noticed side, and whether the noticed side is a drawing path or a clipping path, a control rule method is determined and processed, and whether or not the noticed side is valid as a side to be actually drawn is determined. Are sequentially performed. Then, again, the sides entered in the active table are sequentially set as the noticed sides, and the start or end of the effective side is determined, and the sides to be actually drawn are obtained, and the trapezoid is cut out and drawn.

【0005】[0005]

【発明が解決しようとする課題】しかしこのように辺が
交差する場合に交点で新しい辺としているため、辺デー
タ作成処理が無駄になる問題があった。またバケットの
サーチ、アクティブテーブルのサーチの重複が発生し、
クリッピング経路から外れる描画経路の制御規則方式の
判定と処理、有効か否かの判定、有効辺の始りか終りか
の判定など無駄な処理が発生し、この結果クリッピング
処理に時間が掛かる問題があった。
However, when the sides intersect as described above, a new side is set at the intersection, so that there is a problem that the side data creation processing is wasted. In addition, duplication of bucket search and active table search occurred,
Unnecessary processing such as determination and processing of the control rule method for the drawing path deviating from the clipping path, determination of validity, determination of the start or end of the valid side occurs, and as a result, there is a problem that the clipping processing takes time. Was.

【0006】そこで本発明は、辺が交差する場合におい
ても新たな辺の作成処理を行う必要が無く、またバケッ
トのサーチ、アクティブテーブルのサーチの重複やクリ
ッピング経路から外れる描画経路の制御規則方式の判定
と処理、有効か否かの判定、有効辺の始りか終りかの判
定など無駄な処理が発生することがなくクリッピング処
理の高速化を図ることができる図形のクリッピング方
を提供しようとするものである。
Accordingly, the present invention eliminates the need to perform a new edge creation process even when edges intersect, and provides a control method for a drawing route that overlaps a search of a bucket, a search of an active table, and a drawing route that deviates from a clipping route. determining a treatment effective for determining whether or not, clipping how <br/> of figures useless processing such as determining whether start Rika end of active edges can increase the speed of the clipping process without generating It is something to offer.

【0007】[0007]

【課題を解決するための手段と作用】本発明は、描画経
及びクリッピング経路の各頂点から出ている辺におけ
始点、終点、傾き等の辺データを辺の順序を決めて格
納した辺データリストを作成し、この辺データリストを
辺データを索引するためのバケットにエントリする第1
ステップと、バケットから注目辺をサーチしその注目
辺と描画経路及びクリッピング経路の各辺の頂点あるい
は交点を通る各Y座標スキャンライン毎の辺データを所
定の順序で格納したアクティブテーブル内の辺とで交点
処理を行い、交点があれば交点情報を作成する第2の
テップと、辺の頂点あるいは交点を通る隣接した二つの
Y座標スキャンラインの間に含まれる辺のうちで注目辺
をクリッピング辺としてクリッピング領域を構成する一
組の辺を順次取出す第3のステップと、この第3のステ
ップにより取出された一組の辺の間でアクティブテーブ
ル内から描画領域を構成する一組の辺を取出し、有効辺
を決定する第4のステップと、この第4のステップによ
り決定された有効辺で台形を塗潰す第5のステップと、
隣接した二つのY座標スキャンラインの間に交点が存在
する場合において第5のステップにより台形の塗潰しが
行われると、この二つのY座標スキャンラインの間に含
まれる辺で切出されたアクティブテーブルの辺の順序を
入れ替える第6のステップからなるものである。
Means for Solving the Problems and effects of the present invention is put to the side coming out of each vertex of the drawing path and the clipping path
That the starting point, first an endpoint, create an edge data list the edge data storing decide the order of the edges, such as tilt, entry to a bucket for indexing the <br/> edge data of the edge data list
Walking vertices of each side of the steps of, attention sides from the bucket and attention sides of search perilla drawing path and the clipping path
Indicates the side data for each Y coordinate scan line passing through the intersection.
A second step for performing intersection processing with sides in the active table stored in a fixed order and creating intersection information if there is an intersection, and two adjacent vertices passing through the vertices or intersections of the side .
A third step of sequentially retrieving a set of sides of the clipping region as a clipping side attention sides among the sides included between the Y coordinate scan lines, extracting this third stearyl <br/>-up A fourth step of taking out a set of sides constituting the drawing area from the active table between the set of sides thus determined, and determining an effective side; and forming a trapezoid with the effective side determined by the fourth step. A fifth step of painting,
Intersection exists between two adjacent Y coordinate scan lines
5th step, the trapezoidal fill
When this is done, it is included between these two Y coordinate scan lines.
This step comprises a sixth step of changing the order of the sides of the active table cut out at the sides to be inserted .

【0008】すなわち、図1に示すように先ず描画経路
データ、クリッピング経路データから辺データリストを
作成しバケットにエントリする。続いてアクティブテー
ブル内の辺の交差処理を行う。そしてアクティブテーブ
ル内のクリッピング経路辺を注目辺として、クリッピン
グ台形の右側辺、左側辺を決定する。続いてクリッピン
グ台形の左側辺と右側辺の間に位置する描画経路の辺を
注目辺として制御規則に基づき実際に描画する台形の左
側辺、右側辺を決定する。こうして有効辺を決定し台形
を塗潰す。
That is, as shown in FIG. 1, first, a side data list is created from drawing path data and clipping path data, and the list is entered into a bucket. Subsequently, intersection processing of sides in the active table is performed. Then, the right side and the left side of the clipping trapezoid are determined with the clipping path side in the active table as the target side. Subsequently, the left side and the right side of the trapezoid to be actually drawn are determined based on the control rule using the side of the drawing path located between the left side and the right side of the clipping trapezoid as the attention side. Thus, the valid side is determined and the trapezoid is painted.

【0009】これによりクリッピング経路の辺がアクテ
ィブテーブル内に存在しない場合の描画経路の制御規則
処理及びクリッピング台形の右側辺よりも右側に位置す
る描画経路の制御規則処理が省略されることになる。
As a result, the control process for the drawing path when the side of the clipping path does not exist in the active table and the control rule processing for the drawing path located on the right side of the right side of the clipping trapezoid are omitted.

【0010】[0010]

【実施例】以下、本発明の実施例を図面を参照して説明
する。
Embodiments of the present invention will be described below with reference to the drawings.

【0011】経路の制御規則には非ゼロ番号規則と奇数
偶数規則の経路規則が定められている。非ゼロ番号規則
では各Y座標スキャンライン上で初期値を「0」とし、
Y座標スキャンラインが経路と交差する際、経路のY増
加方向が正のとき値を+1加算し、負のときは値を−1
加算する。値「0」である区間を外部とし、値「0」以
外の区間を内部とする。そして内部が有効な領域とな
る。
In the route control rules, non-zero number rules and odd-even rule rules are defined. In the non-zero number rule, the initial value is set to "0" on each Y coordinate scan line,
When the Y coordinate scan line intersects the route, the value is incremented by +1 when the Y increasing direction of the route is positive, and is decreased by -1 when the Y increasing direction of the route is negative.
to add. The section having the value “0” is defined as the outside, and the section other than the value “0” is defined as the inside. And the inside becomes an effective area.

【0012】また奇数偶数規則では各スキャンライン上
で初期値を「0」とし、Y座標スキャンラインが経路と
交差する毎に値を+1加算する。そして値が奇数値のと
き内部、偶数値のとき外部とする。そして内部が有効な
領域となる。
In the odd-even rule, the initial value is set to "0" on each scan line, and the value is incremented by one every time the Y coordinate scan line crosses the path. When the value is an odd value, it is determined as internal, and when the value is even, it is determined as external. And the inside becomes an effective area.

【0013】クリッピング経路、描画経路のいずれも上
述したどちらかの規則に従い、描画経路の場合は内部が
塗潰し領域となり、クリッピング経路の場合は内部がク
リッピング領域となる。
Both the clipping path and the drawing path comply with one of the rules described above, and the inside is a filled area in the case of a drawing path, and the inside is a clipping area in the case of a clipping path.

【0014】図3に示すようにC0 ,C1 ,C2 のクリ
ッピング経路よりなる多角形と、l0 ,l1 ,l2 の描
画経路よりなる多角形を重ねて塗潰す場合にはクリッピ
ング経路及び描画経路は共に非ゼロ番号規則に従う。ま
たアクティブテーブル1には各スキャンライン毎の辺デ
ータが所定の順序(図中左側から現れる順序)に基づい
て格納されている。
As shown in FIG. 3, when the polygon consisting of the clipping paths of C0, C1, and C2 and the polygon consisting of the drawing paths of l0, l1, and l2 are overlaid and painted, both the clipping path and the drawing path are used. Follow non-zero numbering rules. The active table 1 stores side data for each scan line based on a predetermined order (order appearing from the left side in the figure).

【0015】この一連処理の基本的流れ図は、図5に示
すように先ずステップS1 にてクリッピング経路の辺及
び描画経路の辺から辺データリスト2を作成しバケット
3にエントリする。(第1のステップ)こうして図4に
示す辺データリスト2とバケット3が作成される。また
辺データのないバケット3にはNULLが格納される。(図
中「/」の部分)続いてステップS2 にて注目するバケ
ットに辺データがあるか否かをサーチする。そして辺デ
ータがあればステップS3 にて辺データを取り出す。
The basic flow chart of this series of processing is as shown in FIG. 5. First, in step S1, a side data list 2 is created from the sides of the clipping path and the sides of the drawing path, and is entered in the bucket 3. (First Step) Thus, the side data list 2 and the bucket 3 shown in FIG. 4 are created. NULL is stored in the bucket 3 having no side data. ("/" Part in the figure) Then, in step S2, it is searched whether there is edge data in the bucket of interest. If there is edge data, edge data is extracted in step S3.

【0016】続いてステップS4 にて取り出した辺デー
タとアクティブテーブル1内の辺とで交点があるか否か
をチェックする。そして交点があればステップS5 にて
交点を交点情報エリアに格納する。すなわち図2に示す
ように交点情報エリア4には交点を通るスキャンライン
の値、交差する辺データのアドレスが格納され、その交
点情報エリア4のアドレスを交点情報スタック5により
指定するようになっている。また交点が無ければ交差処
理は行わない。続いてステップS6 にて取り出した辺を
アクティブテーブル1に格納しソートする。
Subsequently, it is checked whether or not there is an intersection between the side data extracted in step S4 and the side in the active table 1. If there is an intersection, the intersection is stored in the intersection information area in step S5. That is, as shown in FIG. 2, the value of the scan line passing through the intersection and the address of the intersecting side data are stored in the intersection information area 4, and the address of the intersection information area 4 is designated by the intersection information stack 5. I have. If there is no intersection, the intersection processing is not performed. Subsequently, the sides extracted in step S6 are stored in the active table 1 and sorted.

【0017】続いてステップS7 にて辺データがリンク
しているか否かをチェックする。そしてリンクしていれ
ば再度ステップS3 の処理に戻る。またリンクしていな
ければステップS8 にて次に注目するバケット3をサー
チする。なお、ステップS2〜S7 は第2のステップを
形成している。
Then, in step S7, it is checked whether or not the edge data is linked. If the link has been made, the process returns to step S3. If there is no link, the bucket 3 of interest is searched in step S8. Steps S2 to S7 correspond to the second step.
Has formed.

【0018】続いてステップS9 にて注目するバケット
3と次に注目するバケット3のスキャンラインの間を、
アクティブテーブル1内の有効辺によって切出される台
形を塗潰す。
Next, in step S9, the interval between the bucket 3 of interest and the scan line of the bucket 3 of interest is
The trapezoid cut out by the effective side in the active table 1 is painted.

【0019】続いてステップS10にてアクティブテーブ
ル1内の辺においてその辺のy座標の最大値が次に注目
するバケット3のスキャンラインよりも小さい辺をアク
ティブテーブル1から削除しアクティブテーブル1をソ
ートする。そして再度ステップS2 に戻り次に注目する
辺をサーチし一連の処理を繰り返し、最終的に注目する
バケット3に辺データが無くなると処理を終了する。前
記ステップS9 の処理を詳細に述べると図6に示すよう
になる。
Subsequently, in step S10, the side in the active table 1 in which the maximum value of the y coordinate of the side is smaller than the scan line of the bucket 3 of interest next is deleted from the active table 1 and the active table 1 is sorted. I do. Then, the process returns to step S2 to search for the next side of interest, and repeats a series of processing. When there is finally no side data in the bucket 3 of interest, the processing is terminated. FIG. 6 shows the details of the processing in step S9.

【0020】先ずステップS11にて注目するバケット3
のスキャンラインと次に注目するバケット3のスキャン
ラインの間に交点があるかをチェックする。そして交点
が無ければステップS12にて注目するバケット3のスキ
ャンラインと次に注目するバケット3のスキャンライン
の間で台形を切出し塗潰す。
First, the bucket 3 of interest in step S11
It is checked whether there is an intersection between the scan line of the bucket 3 and the scan line of the bucket 3 of interest next. If there is no intersection, a trapezoid is cut out and painted between the scan line of the bucket 3 of interest and the scan line of the bucket 3 of interest in step S12.

【0021】また交点があればステップ13にて注目する
バケット3のスキャンラインと交点を通るスキャンライ
ンの間で台形を切出し塗潰す。そしてステップ14にてア
クティブテーブル1の辺の順序を入れ替える。(第6の
ステップ)続いてステップ15にて別の交点が存在するか
をチェックし、在ればステップ16にて交点を通るスキャ
ンラインの間で台形を切出し塗潰す。そしてステップ17
にてアクティブテーブル1の辺の順序を入れ替える。
(第6のステップ)この処理を別の交点が存在しなくな
るまで繰り返す。別の交点が存在しなければステップ18
にて交点を通るスキャンラインと次に注目するバケット
3のスキャンラインの間で台形を切出し塗潰す。前記ス
テップS12,S13,S16,S18の各処理を詳細に述べる
と図7に示すようになる。
If there is an intersection, a trapezoid is cut out and painted in step 13 between the scan line of the bucket 3 of interest and the scan line passing through the intersection. Then, in step 14, the order of the sides of the active table 1 is changed. (Sixth
Step) Subsequently, in Step 15, it is checked whether another intersection exists, and if there is, in Step 16, a trapezoid is cut out and painted between scan lines passing through the intersection. And step 17
The order of the sides of the active table 1 is changed.
(Sixth Step) This process is repeated until another intersection does not exist. Step 18 if another intersection does not exist
A trapezoid is cut out and painted between the scan line passing through the intersection and the scan line of the bucket 3 of interest next. FIG. 7 shows the details of the processes in steps S12, S13, S16, and S18.

【0022】先ずステップS21にて描画経路カウンタ、
クリッピング経路カウンタ、クリッピング台形左側辺番
号CL 、クリッピング台形右側辺番号CR 、塗潰し台形
左側辺番号PL 、塗潰し台形右側辺番号PRをそれぞれ
「0」にする。
First, at step S21, a drawing path counter,
The clipping path counter, the clipping trapezoid left side number CL, the clipping trapezoid right side number CR, the painted trapezoid left side number PL, and the painted trapezoid right side number PR are each set to "0".

【0023】続いてステップS22にてクリッピング台形
右側辺番号CR 以降のアクティブテーブル1からクリッ
ピング領域を構成する1組のクリッピング辺をサーチ
し、番号の小さい方をクリッピング台形左側辺番号CL
にセットし、番号の大きい方をクリッピング台形右側辺
番号CR にセットする。(第3のステップ)続いてステ
ップS23にてクリッピング辺が存在するか否かをチェッ
クし、もし存在しなければ処理を終了する。
Then, in step S22, a set of clipping sides constituting the clipping area is searched from the active table 1 after the clipping trapezoid right side number CR, and the smaller number is searched for the clipping trapezoid left side number CL.
, And the larger number is set to the right side number CR of the clipping trapezoid. (Third Step) Subsequently, in step S23, it is checked whether or not a clipping side exists, and if not, the process ends.

【0024】また存在すればステップS24にて塗潰し台
形右側辺番号PR 以降クリッピング台形右側辺番号CR
までのアクティブテーブル1から描画領域を構成する1
組の描画辺をサーチし、番号の小さい方を塗潰し台形左
側辺番号PL にセットし、番号の大きい方を塗潰し台形
右側辺番号PR にセットする。
If there is, the right side number PR of the trapezoid after the painted trapezoid right side number PR in step S24.
1 that constitutes a drawing area from the active table 1 up to
The drawing side of the set is searched, and the smaller number is set as the painted trapezoid left side number PL, and the larger number is set as the painted trapezoid right side number PR.

【0025】続いてステップS25にて塗潰し台形左側辺
番号PL 、塗潰し台形右側辺番号PR の1組の辺が存在
するか否かをチェックし、存在しなければ図8の処理へ
移行する。また存在すれば続いてステップS26にて塗潰
し台形右側辺番号PR がクリッピング台形左側辺番号C
L よりも小さいか否かをチェックする。そして小さけれ
ば前記ステップS24の処理に戻る。また大きければ続い
てステップS27にて塗潰し台形左側辺番号PL がクリッ
ピング台形左側辺番号CL よりも小さいか否かをチェッ
クする。
Subsequently, in step S25, it is checked whether or not there is a pair of sides of the painted trapezoid left side number PL and the painted trapezoid right side number PR. If not, the process proceeds to the processing in FIG. . If it exists, then in step S26, the painted trapezoid right side number PR is replaced with the clipping trapezoid left side number C
Check if it is less than L. If it is smaller, the process returns to step S24. If it is larger, then in step S27, it is checked whether the painted trapezoid left side number PL is smaller than the clipping trapezoid left side number CL.

【0026】そして小さければステップS28にてクリッ
ピング台形左側辺番号CL をマッピング台形の左辺にセ
ットし、塗潰し台形右側辺番号PR をマッピング台形の
右辺にセットする。また大きければステップS29にて塗
潰し台形左側辺番号PL をマッピング台形の左辺にセッ
トし、塗潰し台形右側辺番号PR をマッピング台形の右
辺にセットする。なお、ステップS24〜S29は第4のス
テップを形成している。続いてステップS30にて台形を
マッピングする。(第5のステップ)そしてこのマッピ
ングが終了するとステップS24の処理に戻る。図8の処
理ではステップS31にて塗潰しの辺PL ,PR が共に存
在しないか否かをチェックし、存在しなければ図7のス
テップS22の処理に戻る。また存在すれば続いてステッ
プS32にて塗潰し台形左側辺番号PL がクリッピング台
形左側辺番号CL よりも小さいか否かをチェックする。
If it is smaller, the clipping trapezoid left side number CL is set to the left side of the mapping trapezoid, and the painted trapezoid right side number PR is set to the right side of the mapping trapezoid in step S28. If it is larger, in step S29, the left side number PL of the filled trapezoid is set to the left side of the mapping trapezoid, and the right side number PR of the filled trapezoid is set to the right side of the mapping trapezoid. Steps S24 to S29 are performed in the fourth step.
Forming a step. Subsequently, a trapezoid is mapped in step S30. (Fifth step) When this mapping is completed, the process returns to step S24. In the process of FIG. 8, it is checked in step S31 whether both sides PL and PR of the paint do not exist. If not, the process returns to the process of step S22 in FIG. If there is, then in step S32, it is checked whether or not the painted trapezoid left side number PL is smaller than the clipping trapezoid left side number CL.

【0027】そして小さければステップS33にてクリッ
ピング台形左側辺番号CL をマッピング台形の左辺にセ
ットし、クリッピング台形右側辺番号CR をマッピング
台形の右辺にセットする。また大きければステップS34
にて塗潰し台形左側辺番号PL をマッピング台形の左辺
にセットし、クリッピング台形右側辺番号CR をマッピ
ング台形の右辺にセットする。そして図7のステップS
30の処理を行う。図7におけるステップS22及びS24の
処理を詳細に示すと図9に示すようになる。
If it is smaller, in step S33, the clipping trapezoid left side number CL is set to the left side of the mapping trapezoid, and the clipping trapezoid right side number CR is set to the right side of the mapping trapezoid. If it is larger, step S34
, The left side number PL of the filled trapezoid is set on the left side of the mapping trapezoid, and the right side number CR of the clipping trapezoid is set on the right side of the mapping trapezoid. And step S in FIG.
Perform step 30. FIG. 9 shows details of the processing of steps S22 and S24 in FIG.

【0028】先ずステップS41にて指定された種類の経
路カウンタを内部カウンタにセットする。続いてステッ
プS42にてアクティブテーブル1の中に指定された種類
の経路が存在するか、存在すればその辺を注目するかを
判断する。そして指定された種類の経路が存在しない場
合、経路が存在してもその辺を注目しない場合は最初に
戻る。
First, in step S41, the designated type of path counter is set in the internal counter. Subsequently, in step S42, it is determined whether a path of the specified type exists in the active table 1 and, if so, whether to pay attention to the side. Then, when there is no route of the specified type, and when the route is present and attention is not paid to that side, the process returns to the beginning.

【0029】また指定された種類の経路が存在し、かつ
その辺を注目する場合は、ステップS43にて制御規則が
非ゼロ番号規則か否かをチェックする。そして制御規則
が非ゼロ番号規則であればステップS44にて内部カウン
タに方向フラグの値を加算する。そしてステップS45に
て内部カウンタが「0」か否かをチェックする。内部カ
ウンタが「0」でなければ続いてステップS46にて前の
辺の内部カウンタが「0」か否かをチェックする。そし
て前の辺の内部カウンタが「0」であれば図10のEの
処理へ移行し、また前の辺の内部カウンタが「0」で無
ければステップS42の処理に戻る。
If a route of the specified type exists and attention is paid to its side, it is checked in step S43 whether the control rule is a non-zero number rule. If the control rule is a non-zero number rule, the value of the direction flag is added to the internal counter in step S44. Then, in a step S45, it is checked whether or not the internal counter is "0". If the internal counter is not "0", then it is checked in step S46 whether the internal counter of the previous side is "0". If the internal counter of the previous side is "0", the process proceeds to the process of FIG. 10E, and if the internal counter of the previous side is not "0", the process returns to the step S42.

【0030】またステップS45にて内部カウンタ「0」
が判断されると、続いてステップS47にて前の辺の内部
カウンタが「0」か否かをチェックする。そして前の辺
の内部カウンタが「0」で無ければ図10のFの処理へ
移行し、また前の辺の内部カウンタが「0」であればス
テップS42の処理に戻る。
In step S45, the internal counter "0" is set.
Is determined, it is checked in step S47 whether the internal counter of the previous side is "0". If the internal counter of the previous side is not “0”, the process shifts to the process of F in FIG. 10. If the internal counter of the previous side is “0”, the process returns to step S42.

【0031】前記ステップS43にて制御規則が非ゼロ番
号規則で無ければステップS48にて内部カウンタが偶数
か否かをチェックする。そして内部カウンタが奇数であ
ればステップS49にて内部カウンタをインクリメントし
た後ステップS50にて前の辺の内部カウンタが偶数か否
かをチェックする。そして前の辺の内部カウンタが偶数
であればであれば図10のEの処理へ移行し、また前の
辺の内部カウンタが奇数であればステップS42の処理に
戻る。
If the control rule is not the non-zero number rule in step S43, it is checked in step S48 whether the internal counter is an even number. If the internal counter is an odd number, the internal counter is incremented in a step S49, and in a step S50, it is checked whether or not the internal counter of the previous side is an even number. If the internal counter of the previous side is an even number, the process shifts to the processing of E in FIG. 10, and if the internal counter of the previous side is an odd number, the process returns to step S42.

【0032】また前記ステップS48にて内部カウンタの
偶数が判断されるとステップS51にて内部カウンタをイ
ンクリメントした後ステップS52にて前の辺の内部カウ
ンタが偶数か否かをチェックする。そして前の辺の内部
カウンタが奇数であればであれば図10のFの処理へ移
行し、また前の辺の内部カウンタが偶数であればステッ
プS42の処理に戻る。
If it is determined in step S48 that the internal counter is even, the internal counter is incremented in step S51, and in step S52 it is checked whether the internal counter of the previous side is even. If the internal counter of the previous side is an odd number, the process shifts to the process of F in FIG. 10. If the internal counter of the previous side is an even number, the process returns to step S42.

【0033】図10のEの処理は先ずステップS53にて
クリッピング経路か否かをチェックする。そしてクリッ
ピング経路であればステップS54にてアクティブテーブ
ル番号をクリッピング台形左側辺番号CL にセットす
る。続いてステップS55にて内部カウンタをクリッピン
グ経路カウンタにセットし図9のステップS42の処理に
戻る。またクリッピング経路で無ければステップS56に
てアクティブテーブル番号を塗潰し台形左側辺番号PL
にセットする。続いてステップS57にて内部カウンタを
描画経路カウンタにセットし図9のステップS42の処理
に戻る。
In the process of FIG. 10E, first, at step S53, it is checked whether or not the path is a clipping path. If it is a clipping path, the active table number is set to the clipping trapezoid left side number CL in step S54. Subsequently, in step S55, the internal counter is set to the clipping path counter, and the process returns to step S42 in FIG. If it is not the clipping path, the active table number is painted in step S56 and the trapezoid left side number PL
Set to. Subsequently, in step S57, the internal counter is set to the drawing path counter, and the process returns to step S42 in FIG.

【0034】また図10のFの処理は先ずステップS58
にてクリッピング経路か否かをチェックする。そしてク
リッピング経路であればステップS59にてアクティブテ
ーブル番号をクリッピング台形右側辺番号CR にセット
する。続いて前記ステップS55にて内部カウンタをクリ
ッピング経路カウンタにセットし図9のステップS42の
処理に戻る。またクリッピング経路で無ければステップ
S60にてアクティブテーブル番号を塗潰し台形右側辺番
号PR にセットする。続いて前記ステップS57にて内部
カウンタを描画経路カウンタにセットし図9のステップ
S42の処理に戻る。
The processing of F in FIG. 10 is performed first in step S58.
Check whether it is a clipping route or not. If it is a clipping path, the active table number is set to the clipping trapezoid right side number CR in step S59. Subsequently, in step S55, the internal counter is set to the clipping path counter, and the process returns to step S42 in FIG. If it is not a clipping path, the active table number is set to the painted right side number PR in step S60. Subsequently, in step S57, the internal counter is set to the drawing path counter, and the process returns to step S42 in FIG.

【0035】以上のような処理を行う本実施例におい
て、図3に示すC0 ,C1 ,C2 のクリッピング経路よ
りなる多角形と、l0 ,l1 ,l2 の描画経路よりなる
多角形を重ねて塗潰す場合を考えると、先ずステップS
1 にて辺C0 ,C1 ,C2 ,l0 ,l1 ,l2 の経路の
辺データ2を作成する。この辺データ2は図11と同一
の構成を持つ。
In this embodiment which performs the above-described processing, the polygon consisting of the clipping paths of C0, C1, and C2 shown in FIG. 3 and the polygon consisting of the drawing paths of l0, l1, and l2 are overlaid and painted. Considering the case, first, step S
At step 1, the side data 2 of the route of the sides C0, C1, C2, l0, l1, l2 is created. The side data 2 has the same configuration as that of FIG.

【0036】そして辺データ2を格納するメモリのアド
レスを対応するY座標のバケット3にエントリする。こ
のとき辺データのないバケット3にはNULLが入る。図4
中「/」の部分。
Then, the address of the memory storing the side data 2 is entered in the bucket 3 of the corresponding Y coordinate. At this time, NULL is entered in the bucket 3 having no side data. FIG.
The part of "/" in the middle.

【0037】次にステップS3 にて注目するバケットY
0 をサーチし、辺C0 の辺データを取り出す。そしてス
テップS4 のチェックにてアクティブテーブルには何も
存在しないので交差処理は行わない。そしてステップS
6 にて取り出した辺C0 をアクティブテーブルに入れ
る。続いて辺データC0 は辺データC2 とリンクしてい
るのでステップS3 にて辺C0 を取り出しアクティプテ
ーブル1に入っている辺C0 と交差処理を行う。
Next, the bucket Y of interest in step S3
Search for 0 and extract the side data of side C0. Since there is nothing in the active table in the check in step S4, no intersection processing is performed. And step S
Insert the side C0 taken out in step 6 into the active table. Subsequently, since the side data C0 is linked to the side data C2, the side C0 is taken out in step S3 and the intersection processing is performed with the side C0 in the active table 1.

【0038】辺C0 とC2 には交点が無いので、ステッ
プS6 にて取り出した辺C2 をアクティブテーブル1に
入れ、この辺データC2 はリンクしていないのでステッ
プS8 にて次に注目するバケットY1 をサーチする。
Since there is no intersection between the sides C0 and C2, the side C2 taken out in step S6 is put into the active table 1. Since the side data C2 is not linked, the next bucket Y1 of interest is searched in step S8. I do.

【0039】そしてステップS9 にて注目するバケット
Y0 と次に注目するバケットY1 のスキャンラインの間
をアクティブテーブル1内の有効辺によって切出される
台形を塗潰す。
In step S9, the trapezoid cut out by the effective side in the active table 1 is filled between the scan line of the bucket Y0 of interest and the scan line of the next bucket Y1 of interest.

【0040】バケットY0 、Y1 のスキャンラインの間
には交点が存在しないのでステップS12にてY1 を上底
とし、Y0 を下底としてアクティブテーブル1内の辺に
よって切出される台形を塗潰す。
Since there is no intersection between the scan lines of the buckets Y0 and Y1, the trapezoid cut out by the side in the active table 1 is filled with Y1 as the upper base and Y0 as the lower base in step S12.

【0041】この処理はクリッブ経路カウンタの値
「0」を内部カウンタにセットする。そしてアクティブ
テーブル内のクリップ経路の辺C0 を注目辺とする。制
御規則は非ゼロ番号規則であるためステップS44にて内
部カウンタの値に辺C0 のY方向フラグ+1を加算し、
内部カウンタを「1」とする。前の内部カウンタは
「0」なのでステップS54にてこの辺C0 のアクティブ
テーブル番号をクリッピング台形左側辺番号CL にセッ
トする。
In this process, the value "0" of the crib path counter is set in the internal counter. Then, the side C0 of the clip path in the active table is set as the target side. Since the control rule is a non-zero number rule, in step S44, the Y direction flag +1 of side C0 is added to the value of the internal counter, and
The internal counter is set to “1”. Since the previous internal counter is "0", the active table number of this side C0 is set to the clipping trapezoid left side number CL in step S54.

【0042】そしてステップS42に戻り次に注目する辺
C2 を取り出す。ステップS44にて内部カウンタに方向
フラグ「−1」を加算し内部カウンタを「0」にする。
前の内部カウンタは「0」でないのでステップS59にて
辺C2 のアクティブテーブル番号をクリッピング台形左
側辺番号CR にセットする。次にステップS24にて塗潰
し台形右側辺番号PR からクリッピング台形側辺番号
CR までのアクティブテーブル1から1組の描画辺をサ
ーチする。
Then, the process returns to step S42, and the side C2 of interest is taken out. In step S44, the direction flag "-1" is added to the internal counter, and the internal counter is set to "0".
Since the previous internal counter is not "0", the active table number of the side C2 is set to the clipping trapezoid left side number CR in step S59. Then search for a set of drawing sides from the active table 1 from the fill trapezoid right side number PR until clipping trapezoidal right sides number CR at step S24.

【0043】アクティブテーブル1中に指定された描画
辺が存在しないので、塗潰しは行わない。辺C0 、C2
の最大Y座標は共にスキャンラインY1 よりも大きいの
で辺C0 、C2 はアクティブテーブル1に入れたままに
する。
Since the designated drawing side does not exist in the active table 1, no painting is performed. Side C0, C2
Are larger than the scan line Y1, the sides C0 and C2 are kept in the active table 1.

【0044】Y1 を注目するバケットとして辺データl
1 を取り出す。そしてこの辺データl1 とアクティブテ
ーブル1内の辺で交差処理を行い、辺l1 は辺C0 と交
差するのでステップS5 にて交点情報エリア4に交点を
通るスキャンラインSC1 の値とスキャンラインY1 上
で小さいx座標を持つ方の辺データl1 のアドレスを入
れる。交点情報スタック5には交点情報エリア4のアド
レスを入れる。取り出した辺l0 をアクティブテーブル
1にいれソートする。次にステップS8 にて注目するバ
ケットY2 をサーチする。注目するバケットY1 と次に
注目するバケットY2 のスキャンラインの間をアクティ
ブテーブル1内の有効辺によって切出される台形を塗潰
す。
Let Y 1 be the bucket of interest and the edge data l
Take out 1. Then, the intersection processing is performed between the side data l1 and the side in the active table 1. Since the side l1 intersects with the side C0, the value of the scan line SC1 passing through the intersection in the intersection information area 4 and the small value on the scan line Y1 in step S5. The address of the side data l1 having the x coordinate is entered. The address of the intersection information area 4 is put in the intersection information stack 5. The extracted edge l0 is placed in the active table 1 and sorted. Next, in step S8, the bucket Y2 of interest is searched. The trapezoid cut out by the effective side in the active table 1 is filled between the scan line of the bucket of interest Y1 and the next bucket of interest Y2.

【0045】バケットY1 のスキャンラインとバケット
Y2 のスキャンラインの間に交点を通るスキャンライン
SC0 が存在するので、ステップS13にて注目するスキ
ャンラインY1 を下底とし、交点を通るスキャンライン
SC0 を上底とし、アクティブテーブル1の有効辺によ
って切出される台形を塗潰す。
Since there is a scan line SC0 passing through the intersection between the scan line of the bucket Y1 and the scan line of the bucket Y2, the target scan line Y1 is set to the lower bottom in step S13, and the scan line SC0 passing the intersection is set to the upper side. Fill the bottom with a trapezoid cut out by the active side of the active table 1.

【0046】具体的にはステッブS21にて各カウンタと
台形左、右側辺番号を「0」に初期化する。ステップS
22にてアクティブテーブル1からクリップ領域を構成す
る1組のクリッピング辺をサーチする。すなわちステッ
プS41にてクリッピング経路カウンタを内部カウンタに
セットし、ステップS42にてアクティブテーブル1の中
のクリッピング経路辺をサーチし辺C0 を注目辺とす
る。
Specifically, in step S21, the counters and the trapezoid left and right side numbers are initialized to "0". Step S
At 22, a search is made from the active table 1 for a set of clipping sides that make up the clip area. That is, in step S41, the clipping path counter is set to the internal counter. In step S42, the clipping path side in the active table 1 is searched, and the side C0 is set as the target side.

【0047】制御規則は非ゼロ番号規則であるので、内
部カウンタに辺データC0 の方向フラグ「+1」を加算
して「1」にする。前の辺の内部カウンタは「0」であ
り、クリッピング経路であるからステップS54にて辺C
0のアクティブテーブル番号「2」をクリッピング台形
左側辺番号CL にセットする。またステップS55にて内
部カウンタ「1」をクリッピング経路カウンタにセット
する。
Since the control rule is a non-zero number rule, the direction flag "+1" of the side data C0 is added to the internal counter to make it "1". Since the internal counter of the previous side is "0" and is a clipping path, the side C is determined in step S54.
The active table number "2" of 0 is set to the left side number CL of the clipping trapezoid. In step S55, the internal counter "1" is set to the clipping path counter.

【0048】アクティブテーブル1において注目辺C0
以降のクリッピング経路の辺をサーチし辺C2 を注目辺
とする。制御規則は非ゼロ番号規則で、内部カウンタは
「1」である。内部カウンタに辺データC2 の方向フラ
グ「−1」を加算して「0」にする。前の辺の内部カウ
ンタは「1」であり、クリッピング経路であるからステ
ップS59にて辺C2 のアクティブテーブル番号「3」を
クリッピング台形右側辺番号CR にセットする。またス
テップS55にて内部カウンタをクリッピング経路カウン
タにセットする。そしてアクティブテーブル1内にクリ
ッピング辺が無いのでサーチは終了する。
In the active table 1, the noted side C0
The side of the subsequent clipping path is searched, and the side C2 is set as the target side. The control rule is a non-zero number rule, and the internal counter is "1". The direction flag "-1" of the side data C2 is added to the internal counter to make it "0". Since the internal counter of the previous side is "1" and is a clipping path, the active table number "3" of the side C2 is set to the clipping trapezoid right side number CR in step S59. In step S55, the internal counter is set to the clipping path counter. Then, since there is no clipping side in the active table 1, the search ends.

【0049】次に塗潰し台形右側辺番号PR =0以降ク
リッピング台形右側辺番号CR =3までのアクティブテ
ーブル1から描画経路を構成する1組の描画辺をサーチ
し、PL =0、PR =1を得る。PR =1がクリッピン
グ台形側辺番号CL よりも小さいので台形塗潰しは行
わない。
Next, a set of drawing sides constituting a drawing path is searched from the active table 1 from the right side number PR = 0 of the filled trapezoid to the right side number CR = 3 of the clipping trapezoid, and PL = 0, PR = 1. Get. PR = 1 is trapezoidal fill is not performed is smaller than the clipping trapezoidal left sides number CL.

【0050】塗潰し台形右側辺番号PR 以降のアクティ
ブテーブル1に1組の描画辺が存在せず、クリッピング
台形右側辺番号CR 以降のアクティブテーブル1に1組
のクリッピング辺が存在しないので、アクティブテーブ
ル1のサーチは終了する。ステップS14にて交差する辺
l0 とアクティブテーブル1の中よりサーチして次に位
置する辺C0 とのアクティブテーブル1での位置を入れ
替える。
Since one set of drawing sides does not exist in the active table 1 following the filled trapezoid right side number PR and one set of clipping sides does not exist in the active table 1 following the clipping trapezoid right side number CR. The search for 1 ends. In step S14, a search is made in the active table 1 from the side l0 intersecting and the position of the next side C0 in the active table 1 is switched.

【0051】スキャンラインSC0 とスキャンラインY
2 の間に交点を通るスキャンラインSC1 が存在するの
で、スキャンラインSC0を下底、スキャンラインSC1
を上底としてアクティブテーブル1の有効辺によって
切出される台形を塗潰す。
Scan line SC0 and scan line Y
2, there is a scan line SC1 passing through the intersection, so that the scan line SC0 is located below the scan line SC1.
Is filled with a trapezoid cut out by the effective side of the active table 1 with.

【0052】具体的にはステッブS21にて各経路カウン
タと台形左、右側辺番号を「0」に初期化する。ステッ
プS22にてクリッピング台形右側辺番号CR 以降の辺か
らクリッピング領域を構成する1組のクリッピング辺を
サーチし、クリッピング台形側辺番号CL は辺C0 の
アクティブテーブル番号「1」となり、クリッピング台
形右側辺番号CR は辺C2 のアクティブテーブル番号
「3」を得る。
More specifically, in step S21, each path counter and the trapezoid left and right side numbers are initialized to "0". Searching a set of clipping sides of the clipping region from the clipping trapezoid right side number CR subsequent side in step S22, the active table number "1" of the clipping trapezoid left sides number CL is side C0, and the clipping trapezoidal right The side number CR obtains the active table number "3" of the side C2.

【0053】そしてステップS24にて塗潰し台形右側辺
番号PR =0以降クリッピング台形右側辺番号CR =3
までのアクティブテーブル1内の辺から描画領域を構成
する1組の描画辺をサーチし、塗潰し台形左側辺番号P
L には辺l1 のアクティブテーブル番号「0」をセット
し、塗潰し台形右側辺番号PR には辺l0 のアクティブ
テーブル番号「2」をセットする。
Then, in step S24, the right side number of the painted trapezoid right side PR = 0 and the right side number of the clipped trapezoid right side CR = 3
From the sides in the active table 1 up to a set of drawing sides constituting the drawing area, and a filled trapezoid left side number P
The active table number "0" of the side l1 is set to L, and the active table number "2" of the side l0 is set to the right side number PR of the painted trapezoid.

【0054】塗潰し台形右側辺番号PR がクリッピング
台形左側辺番号CL よりも大きく、塗潰し台形左側辺番
号PL がクリッピング台形左側辺番号CL よりも小さい
ので、クリッピング台形左側辺番号CL の辺C0 をマッ
ピング台形の左側辺にセットする。塗潰し台形右側辺番
号PR の辺l0 を右側辺にセットして台形を塗潰す。
Since the filled trapezoid right side number PR is larger than the clipped trapezoid left side number CL and the filled trapezoid left side number PL is smaller than the clipped trapezoid left side number CL, the side C0 of the clipped trapezoid left side number CL is Set on the left side of the mapping trapezoid. The trapezoid is painted out by setting the side l0 of the painted trapezoid right side number PR to the right side.

【0055】PR =2以降CR =3までのアクティブテ
ーブル1に1組の描画辺が存在しないので、クリッピン
グ台形右側辺番号CR 以降のアクティブテーブル1内の
辺からクリッピング領域を構成する1組のクリッピング
辺をサーチする。クリッピング辺が存在しないのでアク
ティブテーブル1内の辺からの台形の切出しは終了す
る。
Since one set of drawing sides does not exist in the active table 1 from PR = 2 to CR = 3, one set of clipping forming a clipping region from the sides in the active table 1 after the right side number CR of the clipping trapezoid. Search for an edge. Since there is no clipping side, the extraction of the trapezoid from the side in the active table 1 ends.

【0056】交差する辺l1 をアクティブテーブル1の
中からサーチして辺l1 と次に位置する辺C0 の順序を
入れ替える。スキャンラインY2 とスキャンラインSC
1 の間には交点を通るスキャンラインは存在しないの
で、スキャンラインSC1 を下底、スャンラインY2 を
上底としてアクティブテーブル1の有効辺によって切出
される台形を塗潰す。
The intersecting side l1 is searched from the active table 1 and the order of the side l1 and the next side C0 is exchanged. Scan line Y2 and scan line SC
Since there is no scan line passing through the intersection between 1, the trapezoid cut out by the effective side of the active table 1 is painted with the scan line SC1 at the bottom and the scan line Y2 at the top.

【0057】具体的にはステッブS21にて各経路カウン
タと台形左、右側辺番号を「0」に初期化する。ステッ
プS22にてクリッピング台形右側辺番号CR 以降の辺か
らクリッピング領域を構成する1組のクリッピング辺を
サーチし、クリッピング台形右側辺番号CL は辺C0 の
アクティブテーブル番号「0」となり、クリッピング台
形右側辺番号CR はアクティブテーブル番号「3」を得
る。
More specifically, at step S21, the path counters and the trapezoid left and right side numbers are initialized to "0". In step S22, a set of clipping sides constituting the clipping region is searched from the sides subsequent to the clipping trapezoid right side number CR. The clipping trapezoid right side number CL becomes the active table number "0" of the side C0, and the clipping trapezoid right side. The number CR obtains the active table number "3".

【0058】そして塗潰し台形右側辺番号PR =0以降
クリッピング台形右側辺番号CR =3までのアクティブ
テーブル1の辺から描画領域を構成する1組の描画辺を
サーチし、塗潰し台形左側辺番号PL には辺l1 のアク
ティブテーブル番号「1」をセットし、塗潰し台形右側
辺番号PR には辺l0 のアクティブテーブル番号「2」
をセットする。
Then, a set of drawing sides constituting the drawing area is searched from the sides of the active table 1 from the right side number PR = 0 of the filled trapezoid to the right side number CR = 3 of the clipped trapezoid, and the left side number of the filled trapezoid is searched. The active table number "1" of the side l1 is set in PL, and the active table number "2" of the side l0 is set in the right side number PR of the filled trapezoid.
Is set.

【0059】塗潰し台形右側辺番号PR がクリッピング
台形左側辺番号CL よりも大きく、塗潰し台形左側辺番
号PL がクリッピング台形左側辺番号CL よりも小さい
ので、塗潰し台形左側辺番号PL の辺l1 をマッピング
台形の左側辺にセットする。塗潰し台形右側辺番号PR
の辺l0 を右側辺にセットして台形を塗潰す。
Since the filled trapezoid right side number PR is larger than the clipping trapezoid left side number CL and the filled trapezoid left side number PL is smaller than the clipped trapezoid left side number CL, the side l1 of the filled trapezoid left side number PL is larger. Is set on the left side of the mapping trapezoid. Filled trapezoid right side number PR
Is set to the right side, and the trapezoid is painted.

【0060】PR =2以降CR =3までのアクティブテ
ーブル1に1組の描画辺が存在しないので、クリッピン
グ台形右側辺番号CR 以降のアクティブテーブル1内の
辺からクリッピング領域を構成する1組のクリッピング
辺をサーチする。クリッピング辺が存在しないのでアク
ティブテーブル1内の辺からの台形の切出しは終了す
る。
Since one set of drawing sides does not exist in the active table 1 from PR = 2 to CR = 3, one set of clipping forming a clipping area from the sides in the active table 1 after the right side number CR of the clipping trapezoid. Search for an edge. Since there is no clipping side, the extraction of the trapezoid from the side in the active table 1 ends.

【0061】アクティブテーブル1内の辺において、辺
C0 の最大Y座標値が次に注目するバケットスキャンラ
インY2 以下なのでステップS10にて辺C0 をアクティ
ブテーブル1から除去しアクティブテーブル1をソート
する。次に注目する辺をサーチし、上述した一連の処理
を繰り返す。このような処理を行うことにより図3に斜
線で示す部分の図形が切出されて描画されるようにな
る。
In the side of the active table 1, the maximum Y coordinate value of the side C0 is equal to or less than the bucket scan line Y2 of interest next. Therefore, the side C0 is removed from the active table 1 in step S10, and the active table 1 is sorted. Next, the side of interest is searched, and the above-described series of processing is repeated. By performing such a process, the figure shown by the hatched portion in FIG. 3 is cut out and drawn.

【0062】このように複雑な形状の領域を単純な台形
に分割し、しかもクリッピング領域から外れる描画辺の
有効辺の判断処理は省略できる。また辺が交差する場合
においても新たな辺の作成処理を行う必要が無く、交点
においてのアクティブテーブル1のソートを省略でき
る。さらにバケット3のサーチ、アクティブテーブル1
のサーチに重複が発生することはない。従って図形の切
出し描画処理を高速に行うことができる。
As described above, the region having a complicated shape is divided into simple trapezoids, and the process of determining the effective side of the drawing side outside the clipping region can be omitted. Further, even when the sides intersect, there is no need to perform a new side creation process, and the sorting of the active table 1 at the intersection can be omitted. Further search for bucket 3 and active table 1
Does not occur in the search for. Therefore, the drawing and drawing processing of the figure can be performed at high speed.

【0063】[0063]

【発明の効果】以上詳述したように本発明によれば、辺
が交差する場合においても新たな辺の作成処理を行う必
要が無く、またバケットのサーチ、アクティブテーブル
のサーチの重複やクリッピング経路から外れる描画経路
の制御規則方式の判定と処理、有効か否かの判定、有効
辺の始りか終りかの判定など無駄な処理が発生すること
がなくクリッピング処理の高速化を図ることができる図
形のクリッピング方を提供できるものである。
As described above in detail, according to the present invention, it is not necessary to perform a new edge creation process even when edges intersect, and it is also necessary to search for a bucket, overlap an active table search, or perform a clipping path. A graphic that can speed up the clipping process without unnecessary processing such as determination and processing of the control rule method of the drawing path deviating from, determination of validity, determination of the start or end of the valid side, etc. clipping how of those that can offer.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の基本的な処理を説明するための流れ
図。
FIG. 1 is a flowchart for explaining basic processing of the present invention.

【図2】本発明の実施例における交点情報エリアと交点
情報スタックを示す図。
FIG. 2 is a diagram showing an intersection information area and an intersection information stack in the embodiment of the present invention.

【図3】本発明の実施例における描画経路、クリッピン
グ経路及びアクティブテーブルを示す図。
FIG. 3 is a diagram showing a drawing path, a clipping path, and an active table in the embodiment of the present invention.

【図4】本発明の実施例におけるバケット及び辺データ
を示す図。
FIG. 4 is a diagram showing bucket and side data according to the embodiment of the present invention.

【図5】本発明の実施例におけるクリッピング処理を示
す流れ図。
FIG. 5 is a flowchart showing clipping processing according to the embodiment of the present invention.

【図6】図5におけるアクティブテーブル内の有効辺に
よって切出される台形を塗潰す処理を詳細に示す流れ
図。
FIG. 6 is a flowchart showing in detail a process of painting a trapezoid cut out by an effective side in the active table in FIG. 5;

【図7】図6における2つのスキャンライン間で台形を
塗潰す処理を詳細に示す流れ図。
FIG. 7 is a flowchart showing in detail a process of filling a trapezoid between two scan lines in FIG. 6;

【図8】図6における2つのスキャンライン間で台形を
塗潰す処理を詳細に示す流れ図。
FIG. 8 is a flowchart showing in detail a process of filling a trapezoid between two scan lines in FIG. 6;

【図9】図7におけるクリップ領域或いは描画領域を構
成する1組の辺をサーチする処理を詳細に示す流れ図。
9 is a flowchart showing in detail a process of searching for a set of sides constituting a clip area or a drawing area in FIG. 7;

【図10】図7におけるクリップ領域或いは描画領域を
構成する1組の辺をサーチする処理を詳細に示す流れ
図。
FIG. 10 is a flowchart showing in detail a process of searching for a set of sides constituting a clip area or a drawing area in FIG. 7;

【図11】辺データの構成例を示す図。FIG. 11 is a diagram showing a configuration example of edge data.

【図12】図形、バケット及び辺データの関係を説明す
るための図。
FIG. 12 is a view for explaining the relationship among figures, buckets, and side data.

【図13】図形、バケット及び辺データの関係を説明す
るための図。
FIG. 13 is a view for explaining the relationship among figures, buckets, and side data.

【符号の説明】[Explanation of symbols]

1…アクティブテーブル、2…辺データリスト、3…バ
ケット、4…交点情報エリア、5…交点情報スタック。
1 active table, 2 side data list, 3 bucket, 4 intersection information area, 5 intersection information stack.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 描画経路及びクリッピング経路の各頂点
から出ている辺における始点、終点、傾き等の辺データ
を辺の順序を決めて格納した辺データリストを作成し
この辺データリストを辺データを索引するためのバケッ
トにエントリする第1のステップと、前記バケットから
注目辺をサーチしその注目辺と描画経路及びクリッピン
グ経路の各辺の頂点あるいは交点を通る各Y座標スキャ
ンライン毎の辺データを所定の順序で格納したアクティ
ブテーブル内の辺とで交点処理を行い、交点があれば交
点情報を作成する第2のステップと、辺の頂点あるいは
交点を通る隣接した二つのY座標スキャンラインの間に
含まれる辺のうちで注目辺をクリッピング辺としてクリ
ッピング領域を構成する一組の辺を順次取出す第3の
テップと、この第3のステップにより取出された一組の
辺の間で前記アクティブテーブル内から描画領域を構成
する一組の辺を取出し、有効辺を決定する第4のステッ
プと、この第4のステップにより決定された有効辺で台
形を塗潰す第5のステップと、隣接した二つのY座標ス
キャンラインの間に交点が存在する場合において前記第
5のステップにより台形の塗潰しが行われると、この二
つのY座標スキャンラインの間に含まれる辺で切出され
前記アクティブテーブルの辺の順序を入れ替える第6
ステップからなることを特徴とする図形のクリッピン
グ方
1. A created starting at the edges emanating from each vertex of the drawing path and the clipping path, ending, the edge data list storing edge data such as inclination determine the order of the edges,
A first step of entering this edge data list into a bucket for indexing edge data; searching for a target edge from the bucket, searching for the target edge, drawing path, and clipping;
Scan each Y vertex or vertex of each side of the
A second step of performing intersection processing with the side in the active table storing the side data for each line in a predetermined order and creating intersection information if there is an intersection; Between two adjacent Y coordinate scan lines
A third step for sequentially extracting a set of sides forming a clipping region with the target side as a clipping side among the included sides, and a third step for extracting a set of sides extracted in the third step. A fourth step of extracting a set of sides constituting the drawing area from the active table and determining an effective side, and filling a trapezoid with the effective side determined by the fourth step Fifth step and two adjacent Y coordinate
When there is an intersection between the scan lines,
When the trapezoidal painting is performed in step 5, this two
Is cut out on the side included between two Y coordinate scan lines
Sixth switching the order of the edges of the active tables
Clipping how shapes, characterized in that it consists of steps.
JP4695991A 1991-03-12 1991-03-12 How to clip shapes Expired - Fee Related JP2902799B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4695991A JP2902799B2 (en) 1991-03-12 1991-03-12 How to clip shapes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4695991A JP2902799B2 (en) 1991-03-12 1991-03-12 How to clip shapes

Publications (2)

Publication Number Publication Date
JPH04282784A JPH04282784A (en) 1992-10-07
JP2902799B2 true JP2902799B2 (en) 1999-06-07

Family

ID=12761823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4695991A Expired - Fee Related JP2902799B2 (en) 1991-03-12 1991-03-12 How to clip shapes

Country Status (1)

Country Link
JP (1) JP2902799B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005586A (en) * 1996-02-17 1999-12-21 Fuji Xerox Co., Ltd. Drawing processing apparatus
US8294731B2 (en) * 2005-11-15 2012-10-23 Advanced Micro Devices, Inc. Buffer management in vector graphics hardware

Also Published As

Publication number Publication date
JPH04282784A (en) 1992-10-07

Similar Documents

Publication Publication Date Title
US8543944B2 (en) Fast edge routing for interactive diagramming
US9275479B2 (en) Method, system and computer program product for creating collages that visually resemble a particular shape or group of shapes
US6882341B2 (en) Converting bitmap objects to polygons
US7870509B2 (en) Method and apparatus for improving the visibility of a treemap
US20010045952A1 (en) Presenting node-link structures with modification
CN104903935B (en) Stereoscopic vision map display system
JP3650355B2 (en) Computer system, method and computer program for accelerating rendering of geometric models
CN108985132A (en) A kind of face image processing process, calculates equipment and storage medium at device
JP2902799B2 (en) How to clip shapes
CN113033540B (en) Contour fitting and correcting method for scene characters, electronic equipment and storage medium
CN115063560A (en) Method and system for tracking three-dimensional target in motion state in real time
US5519821A (en) System and method for producing contour lines from a number of sample points by comparing contour height with mean height of surrounding sample points
JP3389388B2 (en) Drawing editing device
RU2364940C1 (en) Way of hachures arrangement on contour sheet, computer way of recognition of parts of horizontals which are passing through areas with small biases on contour sheet, and computer way of recognition of minimum outlines made by horizontals and frame of contour sheet
Cheng et al. Polynomial time approximation scheme for symmetric rectilinear steiner arborescence problem
JP3109585B2 (en) Method and apparatus for generating three-dimensional object data, and recording medium storing program for generating three-dimensional object data
CN112999658B (en) Path finding method, device and medium for game three-dimensional space flight
JPS6081683A (en) Expanding and contracting method of dot pattern
JP2000222449A (en) Method for graphic processing
JP2002208028A (en) Geometry clipping device for polygon
JP3635734B2 (en) 3D articulated structure shape generation method
JP3139805B2 (en) Image processing method and apparatus
JP2690657B2 (en) Layout pattern generator
JP3536894B2 (en) Graphic processing unit
JPH01166180A (en) Paint-out processing device for graphic

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees