JP2001067487A - Drawing processor - Google Patents
Drawing processorInfo
- Publication number
- JP2001067487A JP2001067487A JP23897899A JP23897899A JP2001067487A JP 2001067487 A JP2001067487 A JP 2001067487A JP 23897899 A JP23897899 A JP 23897899A JP 23897899 A JP23897899 A JP 23897899A JP 2001067487 A JP2001067487 A JP 2001067487A
- Authority
- JP
- Japan
- Prior art keywords
- edge
- data
- value
- slit
- processing
- 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
Links
Landscapes
- Image Generation (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、PDL(ページ記
述言語)等のベクター形式の図形指定を含む入力データ
から、プリンタ、印刷装置、ディスプレイ装置などの装
置へ出力するためのデータフォーマットに変換するため
の描画処理装置に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention converts input data including a graphic designation in vector format such as PDL (Page Description Language) into a data format for output to a device such as a printer, a printing device, or a display device. And a drawing processing apparatus for the same.
【0002】[0002]
【従来の技術】PDLなどのベクター形式で表現される
データから、ページプリンタなどのラスタ出力デバイス
に適するデータに変換する処理には、従来から各種の方
法が提案されている。例えば典型的な例として、記述さ
れている描画図形の一つずつに対して、図形の分解、
(分解図形の収集、)バンドバッファまたはページバッ
ファへの重ね塗りによる図形同士の重なりの処理を行
い、ラスタデータへの変換を行っていた。2. Description of the Related Art Various methods have been proposed for converting data expressed in a vector format such as PDL into data suitable for a raster output device such as a page printer. For example, as a typical example, for each of the drawn graphics described,
(Collecting of disassembled figures, overlapping processing of figures by overpainting the band buffer or page buffer, and converting to raster data.
【0003】このような方法では、ページバッファなど
のバッファメモリが必要である上、近年みられるような
重ね書きが多い複雑なページの指定においては、バッフ
ァメモリへのメモリアクセスがボトルネックとなって、
処理速度の面でも問題があった。In such a method, a buffer memory such as a page buffer is required. In addition, in the specification of a complicated page with a large number of overwrites, a memory access to the buffer memory becomes a bottleneck in recent years. ,
There was also a problem in terms of processing speed.
【0004】このような方法に対して、例えば特開平1
0−79038号公報に記載されているように、ベクタ
ー表現の図形を走査線単位でまとめてラスタデータに相
当するデータに変換する機構も提案されている。この特
開平10−79038号公報に記載されている構成で
は、走査線単位で処理が独立しているため、走査線に平
行な領域ごとに並列処理を容易に行うことができ、か
つ、負荷を分配する調整を行うことも容易であるという
特性を備えている。[0004] In contrast to such a method, for example,
As described in Japanese Patent Application Laid-Open No. 0-79038, a mechanism has been proposed in which graphics in a vector expression are combined in units of scanning lines and converted into data corresponding to raster data. In the configuration described in Japanese Patent Application Laid-Open No. Hei 10-79038, since the processing is independent for each scanning line, parallel processing can be easily performed for each area parallel to the scanning line, and the load is reduced. It has the characteristic that it is easy to make adjustments to distribute.
【0005】しかし、この特開平10−79038号公
報に記載されている構成のように、図形の境界線を表す
データ(例えば多角形近似した場合にはベクターデータ
等のデータ)を複数の図形の分をまとめて一度に走査線
変換する手法をとると、走査線変換の微調整を図形ごと
に変更することが難しかった。特に、境界線と塗りつぶ
すドットの位置関係の定義(以降、説明の簡単のため、
単に「ドット位置対応」と呼ぶ)を変更することが難し
かったため、1ページ中に異なるドット位置対応に従う
図形が入り交じって貼り付けられているような場合に問
題が生じることがあった。However, as shown in Japanese Patent Application Laid-Open No. 10-79038, data representing a boundary of a figure (for example, data such as vector data in the case of approximating a polygon) is used for a plurality of figures. If the scanning line conversion is performed at once for each part, it is difficult to change the fine adjustment of the scanning line conversion for each figure. In particular, the definition of the positional relationship between the border and the dot to be filled (hereinafter, for simplicity,
Since it is difficult to change the "dot position correspondence"), a problem may occur when graphics conforming to different dot position correspondences are mixed and pasted in one page.
【0006】図30〜図32は、ドット位置対応の規則
の具体例の説明図である。ドット位置対応にはさまざま
なものがあり得るが、ここでは、3種類の例を示してい
る。図30に示すドット位置対応の具体例では、ドット
の中心点が図形の内側に含まれるドットを塗りつぶすド
ットとする規則を用いた場合を示している。図30にお
いて、黒丸で示した位置がドットの中心点である。図3
0(A)に太線で示すような図形の境界線を表すデータ
が与えられたとき、図30(B)において黒く示したド
ットが塗りつぶされる。この規則を用いた場合には、処
理が単純で高速に処理することができる。しかし、図3
0に示した例のように、非常に細い部分を持つ図形にお
いては、ドット抜けが生じるという問題がある。FIGS. 30 to 32 are explanatory diagrams of specific examples of rules for dot position correspondence. There can be various dot position correspondences, but here, three types of examples are shown. The specific example of the dot position correspondence illustrated in FIG. 30 illustrates a case where a rule is used in which the center point of the dot is a dot that fills a dot included inside the figure. In FIG. 30, the position indicated by a black circle is the center point of the dot. FIG.
When data representing a boundary of a figure as shown by a thick line is given to 0 (A), a dot shown in black in FIG. 30 (B) is painted out. When this rule is used, processing can be performed simply and at high speed. However, FIG.
As in the example shown in FIG. 0, there is a problem that a missing dot occurs in a graphic having a very thin portion.
【0007】図31に示したドット位置対応の具体例で
は、図形の境界線が通ったドットと、図形の内側に含ま
れるドットを全て塗りつぶすという規則を用いた場合を
示している。図31(A)に太線で示すような図形の境
界線を表すデータが与えられたとき、図31(B)に示
すような塗りつぶし結果が得られる。この規則を用いた
場合には、ドットが抜けることはなくなる。しかし、図
30に示した規則を用いる場合に比べて処理が複雑にな
り、また、多少塗りつぶす領域が太めになるという特徴
がある。A specific example of the dot position correspondence shown in FIG. 31 shows a case where a rule is used in which all the dots passing through the boundary of the figure and the dots included inside the figure are painted. When data representing a boundary of a graphic as shown by a bold line in FIG. 31A is given, a painting result as shown in FIG. 31B is obtained. When this rule is used, no dot is lost. However, compared with the case where the rule shown in FIG. 30 is used, the processing is complicated, and the region to be painted out is somewhat thick.
【0008】図32に示したドット位置対応の具体例で
は、各ドットの内側に内接する菱形の領域を想定し、そ
の菱形を境界線が通過したドットと、完全に図形の内側
に含まれるドットを塗りつぶすという規則を用いた場合
を示している。図32(A)に太線で示すような図形の
境界線を表すデータが与えられたとき、同じく図32
(A)においてハッチングを施した菱形の領域を境界線
が通過するか否かの判定を行って、図32(B)に示す
ような塗りつぶし結果が得られる。この規則を用いた場
合には、図30や図31に示した規則を用いる場合に比
べて処理が複雑になるが、幅のない領域の塗りつぶしの
際に、斜めの線でも1ドット幅の線を描画することがで
きるという特徴を有している。In a specific example corresponding to the dot positions shown in FIG. 32, a rhombic region inscribed inside each dot is assumed, and a dot whose boundary line passes through the rhombus and a dot which is completely contained inside the figure The case where the rule of painting is used is shown. When data representing a boundary of a graphic as shown by a bold line in FIG.
In FIG. 32A, it is determined whether or not the boundary line passes through the hatched diamond-shaped area, and a painting result as shown in FIG. When this rule is used, the processing is more complicated than when the rules shown in FIGS. 30 and 31 are used. However, when filling an area having no width, even a diagonal line having a width of one dot is used. Can be drawn.
【0009】このように、ドット位置対応の規則によっ
て、それぞれの利点および欠点を有している。そのた
め、ある特定のドット位置対応のみでは処理の負荷が重
く、処理に時間がかかったり、あるいは良好な画像が再
現されない。例えば細線のドット抜けを改善するのみで
あれば、例えば特開平10−188012号公報などに
記載されている方法を適用できるが、この場合にも図形
ごとあるいは図形を構成する境界ベクトルごとに処理方
法(ドット位置対応)を変更することは困難である。そ
のため、図形や図形の境界線に応じて、適宜、適用する
ドット位置対応を変更し、利用できることが望まれる。
しかし上述のように、ドット位置対応を変更することが
難しいため、1ページ中に異なるドット位置対応に従う
図形が入り交じって貼り付けることができなかったり、
あるいはドット位置対応を変更するために非常に時間が
かかり、実用的ではないなどの問題があった。このた
め、さまざまなドット位置対応に対して柔軟にかつ統一
的に処理できる機構が求められていた。As described above, there are respective advantages and disadvantages depending on the rules for the dot positions. Therefore, the processing load is heavy only for a specific dot position, and the processing takes a long time or a good image is not reproduced. For example, a method described in, for example, Japanese Patent Application Laid-Open No. H10-188012 can be applied if only the dot omission of a thin line is to be improved. In this case, too, a processing method for each figure or each boundary vector constituting the figure is applicable. It is difficult to change (corresponding to the dot position). Therefore, it is desired that the dot position correspondence to be applied can be appropriately changed and used according to the figure or the boundary line of the figure.
However, as described above, since it is difficult to change the dot position correspondence, figures according to different dot position correspondences cannot be mixed and pasted in one page,
Alternatively, there is a problem that it takes a very long time to change the correspondence of dot positions, which is not practical. For this reason, there has been a demand for a mechanism that can flexibly and uniformly process various dot positions.
【0010】[0010]
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、複数のドット位置対応に対
して統一的に処理でき、さらに、走査線単位の処理を行
う際に、ドット位置関係を図形や図形の要素ごとに変更
することを可能とした描画処理装置を提供することを目
的とするものである。SUMMARY OF THE INVENTION The present invention has been made in view of the above-described circumstances, and can uniformly process a plurality of dot positions. It is an object of the present invention to provide a drawing processing apparatus capable of changing a dot positional relationship for each figure or each element of the figure.
【0011】[0011]
【課題を解決するための手段】本発明は、図形の形状デ
ータからラスタデータあるいはラスタデータに基づくデ
ータを生成する描画処理装置において、図形の形状デー
タを走査線スリットに対応づけて加工する形状加工手段
と、形状加工手段で加工された形状データからエッジ情
報を発生させるとともに、エッジ情報に基づいてラスタ
データあるいはラスタデータに基づくデータを生成する
走査変換手段を有するものである。走査変換手段で発生
させるエッジ情報は、塗りつぶし種別とエッジの特性に
応じた情報を含んでおり、それぞれのエッジ情報につい
てドット位置対応が異なっていてもそれらを統一的に扱
うことができる。そのため、このようなエッジ情報に基
づいてラスタデータあるいはラスタデータに基づくデー
タを生成することにより、それぞれ図形や形状データを
構成する個々の要素形状データごとにドット位置対応が
異なる場合の描画処理を容易に行うことができる。SUMMARY OF THE INVENTION The present invention relates to a drawing processing apparatus for generating raster data or data based on raster data from figure data of a figure. Means and scan conversion means for generating edge information from the shape data processed by the shape processing means and generating raster data or data based on the raster data based on the edge information. The edge information generated by the scan conversion means includes information corresponding to the type of paint and the characteristics of the edge, and even if the edge information has a different dot position correspondence, it can be handled uniformly. Therefore, by generating raster data or data based on raster data based on such edge information, it is easy to perform a drawing process when the correspondence between dot positions is different for each of the element shape data constituting the figure or shape data. Can be done.
【0012】エッジ情報は、例えば塗りつぶし種別とエ
ッジの特性に応じた情報を1つの値あるいは複数の値と
して有するように、走査変換手段で発生させることがで
きる。このとき、塗りつぶし時に図形の内外判定を行う
ための1つあるいは複数の判定値との演算を行うことに
よって、容易に図形の内外判定を行うことが可能であ
る。このような構成により、ドット位置対応が異なって
いても、エッジ情報と判定値との簡単な演算によって統
一的に図形の内外判定を行うことができる。The edge information can be generated by the scan conversion means so as to have, as one value or a plurality of values, information corresponding to the type of paint and the characteristics of the edge, for example. At this time, the inside / outside determination of the figure can be easily performed by performing an operation with one or a plurality of determination values for performing the inside / outside determination of the figure at the time of painting. With such a configuration, even if the correspondence between the dot positions is different, the inside / outside determination of the figure can be uniformly performed by a simple calculation of the edge information and the determination value.
【0013】[0013]
【発明の実施の形態】図1は、本発明の描画処理装置の
実施の一形態を示す構成図である。図中、1は描画命令
解釈部、2は属性処理部、3は属性データ格納部、4は
形状処理部、5は形状加工部、6は形状データ蓄積部、
7は走査変換部、8は出力部である。FIG. 1 is a block diagram showing an embodiment of a drawing processing apparatus according to the present invention. In the drawing, 1 is a rendering command interpreting unit, 2 is an attribute processing unit, 3 is an attribute data storage unit, 4 is a shape processing unit, 5 is a shape processing unit, 6 is a shape data storage unit,
Reference numeral 7 denotes a scan conversion unit, and reference numeral 8 denotes an output unit.
【0014】描画命令解釈部1は、PDLなどの描画図
形の指定を含む入力データを処理し、色の指定など、描
画図形の形状以外のデータは描画オブジェクトの属性値
として属性処理部2へ送信し、描画図形の形状を示すデ
ータは形状処理部4へ送信する。ここで、描画図形と表
現しているものは、形状を持つもの全てを指しており、
必ずしも幾何学図形に限定するものではない。ドット位
置対応の情報は、説明の簡単のため、描画オブジェクト
ごとに指定されるものとし、属性処理部2へ送信されて
属性データ格納部3に格納されるものとして、以下の説
明を行う。形状の一部に特別なドット位置対応関係が指
定されているものは、形状データとともに形状処理部4
へ送信されることにより期待する効果を得ることができ
る。The drawing command interpreting unit 1 processes input data including designation of a drawing figure such as PDL, and transmits data other than the shape of the drawing figure such as color designation to the attribute processing unit 2 as attribute values of the drawing object. Then, data indicating the shape of the drawing figure is transmitted to the shape processing unit 4. Here, what is expressed as a drawing figure refers to everything having a shape,
It is not necessarily limited to geometric figures. The information corresponding to the dot position is specified for each drawing object for simplicity of description, and is described below as being transmitted to the attribute processing unit 2 and stored in the attribute data storage unit 3. If a specific dot position correspondence is specified for a part of the shape, the shape processing unit 4
The expected effect can be obtained by transmitting to.
【0015】属性処理部2では、色空間の変換などをは
じめとしたさまざまな処理が行われ、その結果が属性デ
ータ格納部3に送信される。なお、この属性処理部2に
おける多くの機能についての説明は省略する。The attribute processing unit 2 performs various processes such as color space conversion and the like, and sends the result to the attribute data storage unit 3. Note that description of many functions in the attribute processing unit 2 will be omitted.
【0016】属性データ格納部3は、属性処理部2によ
り処理された結果を格納する。この属性データ格納部3
は、その格納領域全体あるいは、その一部をページ単
位、ジョブ単位ごとに初期化することが行われる場合も
ある。The attribute data storage unit 3 stores the result processed by the attribute processing unit 2. This attribute data storage unit 3
In some cases, the entire storage area or a part of the storage area may be initialized for each page or each job.
【0017】形状処理部4は、描画オブジェクトの形状
の指定を、例えば直線近似を行うなどして簡単化する処
理を行う。実際には、簡単化した後の形状が曲線を含ん
でいてもよいが、ここでは説明を簡単にするために直線
化された例についてのみ説明を行う。また、フォントな
ど特別な機構で別途ビットマップ相当のデータが作成さ
れるものについても、説明を省略する。ビットマップに
相当するデータについては、ビットマップの外形を表す
矩形を形状データとして処理を行ってもよいし、ビット
マップの内容をランレングスの形に変更して、処理を行
うことも可能である。The shape processing unit 4 performs a process for simplifying the specification of the shape of the drawing object by, for example, performing linear approximation. Actually, the shape after simplification may include a curve, but here, for simplicity of description, only a linearized example will be described. In addition, description of a bitmap or other data that is separately created by a special mechanism such as a font is also omitted. For data corresponding to a bitmap, a rectangle representing the outer shape of the bitmap may be processed as shape data, or the content of the bitmap may be changed to a run-length form for processing. .
【0018】形状加工部5は、形状処理部4で簡単化さ
れた形状データを、走査線スリットに対応づけて加工す
る。図2は、ドットと座標系および走査線スリットの関
係の説明図、図3は、スリット境界線とスリット基準線
の説明図である。図2(A)に示すように図の右側方向
を主走査方向とし、この方向にX軸をとる。そして、図
の下側方向に副走査方向をとり、この方向にY軸をと
る。この図2(A)中の規則的に並んだ四角のそれぞれ
が、塗りつぶし時の1ドットに相当する。図2(B)に
太線で囲んで示すように、主走査線方向に1列にならん
だ、ラスタイメージ上のドット列の占有する領域をまと
め、この主走査方向に細長い領域を走査線スリットと呼
んでいる。この走査線スリットの境界をスリット境界線
と呼ぶ。このスリット境界線を図3においても太線で示
している。また図3において一点鎖線で示しているスリ
ット基準線は、各走査線スリットにおいて、特定のドッ
ト位置対応の場合に内外判定の基準線となるものであ
る。このスリット基準線は、後述の説明中で用いる。簡
単のために、スリット基準線は各走査線スリットにおい
て一つとし、各走査線スリットの中心線としている。し
かしこれに限らず、各ドット対応規則毎に異なっていて
もよく、さらに、描画オブジェクトごとに異なっていて
もよい。The shape processing unit 5 processes the shape data simplified by the shape processing unit 4 in association with the scanning line slit. FIG. 2 is an explanatory diagram of a relationship between a dot, a coordinate system, and a scanning line slit. FIG. 3 is an explanatory diagram of a slit boundary line and a slit reference line. As shown in FIG. 2A, the right direction in the figure is the main scanning direction, and the X axis is taken in this direction. Then, the sub-scanning direction is set in the lower direction in the figure, and the Y axis is set in this direction. Each of the regularly arranged squares in FIG. 2A corresponds to one dot when painted. As shown by a thick line in FIG. 2 (B), areas occupied by dot rows on the raster image arranged in one row in the main scanning line direction are collected, and an elongated area in the main scanning direction is defined as a scanning line slit. Calling. The boundary between the scanning line slits is called a slit boundary line. This slit boundary line is also shown by a thick line in FIG. The slit reference line indicated by a dashed line in FIG. 3 is a reference line for the inside / outside determination in each scanning line slit when a specific dot position is supported. This slit reference line will be used in the following description. For simplicity, the number of slit reference lines is one for each scanning line slit, and the center line of each scanning line slit. However, the present invention is not limited to this, and may be different for each dot correspondence rule, and may be different for each drawing object.
【0019】形状加工部5では、形状データに対し、加
工の必要のあるものについて、例えば走査線スリットご
とのデータあるいはいくつかの走査線スリットにまたが
ったデータ等に加工し、スリットエッジデータへの変換
を行う。The shape processing unit 5 processes the shape data that needs to be processed into, for example, data for each scanning line slit or data over several scanning line slits, and converts the data into slit edge data. Perform the conversion.
【0020】形状データ蓄積部6は、形状加工部5で加
工された形状データを一時的に蓄積する。特に以下の例
では、形状加工部5で変換されたスリットエッジデータ
を、例えば各走査線スリットごとに蓄積しておくことが
できる。The shape data storage section 6 temporarily stores the shape data processed by the shape processing section 5. In particular, in the following example, the slit edge data converted by the shape processing unit 5 can be accumulated, for example, for each scanning line slit.
【0021】走査変換部7は、走査線ごとに形状データ
蓄積部6に蓄積されている形状データ(ここではスリッ
トエッジデータ)を参照しながら、塗りつぶし種別とエ
ッジの特性に応じた情報などを含んだエッジ情報を発生
させる。さらに、このエッジ情報をもとに、処理対象の
走査線に対応するラスタデータあるいはラスタデータに
相当するデータ(以下、単に出力データと呼ぶ)を生成
する。このようにエッジ情報を用いて出力データを生成
することにより、ドット位置対応が異なる図形が混在し
ていても、容易に、しかも統一的に図形の内外判定を行
って出力データを生成することができる。この出力デー
タの生成処理において、実際に走査線に対応するラスタ
データ生成するほか、ラスタデータに相当するデータと
して、ランレングス圧縮されたデータを生成してもよ
い。The scan conversion unit 7 refers to the shape data (here, slit edge data) stored in the shape data storage unit 6 for each scanning line, and includes information corresponding to the paint type and edge characteristics. Generate edge information. Further, based on the edge information, raster data corresponding to the scanning line to be processed or data corresponding to the raster data (hereinafter, simply referred to as output data) is generated. By generating output data using edge information in this way, even if graphics having different dot position correspondences coexist, it is possible to easily and unifiedly determine the inside and outside of graphics and generate output data. it can. In this output data generation processing, run-length-compressed data may be generated as data corresponding to the raster data in addition to actually generating raster data corresponding to the scanning line.
【0022】出力部8は、走査変換部7により生成され
た出力データを受け取った順に、あるいは、一時蓄積し
て、あるいは、蓄積したデータを圧縮等の変換を加えて
から出力し、出力装置等に送信する。The output unit 8 outputs the output data generated by the scan conversion unit 7 in the order in which they are received, or temporarily stores the data, or applies a conversion such as compression to the stored data, and outputs the data. Send to
【0023】以下、上述の形状処理部4,形状加工部
5,形状データ蓄積部6,走査変換部7における動作に
ついて、具体例を用いながら順に説明してゆく。図4
は、形状処理部4の動作の一例を示すフローチャートで
ある。上述のように、形状処理部4では、描画命令解釈
部1から送信されてきた、描画オブジェクトの形状デー
タを簡単化する。ここでは、S11において、図形の形
状データの座標系を、走査変換する座標系に変換する。
そしてS12において、座標系の変換後の形状データに
対して、簡単化の処理を施す。簡単化の処理としては、
例えば曲線を直線近似する処理などが行われる。S11
およびS12のいずれの処理も、公知のよく知られた方
法で実現することができる。ここでは詳細な説明は省略
する。特に、入力データが走査変換する座標系で記述さ
れていた場合には、S11は省略可能である。Hereinafter, the operations of the above-described shape processing unit 4, shape processing unit 5, shape data storage unit 6, and scan conversion unit 7 will be described in order using a specific example. FIG.
5 is a flowchart showing an example of the operation of the shape processing unit 4. As described above, the shape processing unit 4 simplifies the shape data of the drawing object transmitted from the drawing command interpreting unit 1. Here, in S11, the coordinate system of the shape data of the figure is converted into a coordinate system for scan conversion.
Then, in S12, simplification processing is performed on the shape data after the transformation of the coordinate system. The simplification process includes:
For example, a process of linearly approximating a curve is performed. S11
Any of the processes of S12 and S12 can be realized by a known and well-known method. Here, detailed description is omitted. In particular, when the input data is described in the coordinate system for scan conversion, S11 can be omitted.
【0024】図5は、形状加工部5の動作の一例を示す
フローチャートである。まずS21において、属性デー
タ格納部3にドット位置対応の情報について問い合わせ
る。S22において、この問い合わせの結果から、形状
データに対する加工が必要か否かを判定する。形状デー
タに対する加工が必要であれば、S23において形状デ
ータの加工処理を行う。ここでは後述のような処理によ
って、形状データをもとに、走査線スリットの境界等を
基準として形状データを加工し、スリットエッジデータ
への変換を行う。そして変換後のスリットエッジデータ
を、S24において形状データ蓄積部6に格納する。な
お、加工が必要なければ、S24において形状データを
そのままあるいは適当な属性値を付加してスリットエッ
ジデータとして形状データ蓄積部6に格納する。FIG. 5 is a flowchart showing an example of the operation of the shape processing section 5. First, in S21, an inquiry is made to the attribute data storage unit 3 for information corresponding to the dot position. In S22, it is determined from the result of this inquiry whether or not the processing on the shape data is necessary. If the processing of the shape data is necessary, the processing of the shape data is performed in S23. Here, the shape data is processed based on the shape data on the basis of the boundary of the scanning line slit or the like and converted into slit edge data by the processing described later. Then, the converted slit edge data is stored in the shape data storage unit 6 in S24. If processing is not required, the shape data is stored in the shape data storage section 6 as slit edge data in S24 as it is or with an appropriate attribute value added.
【0025】形状データに対する加工が必要か否かは、
ドット位置対応の種別にしたがって、あらかじめ定めて
おけばよい。例えば後述の例においては、対応規則Aで
は加工なし、対応規則B,Cでは加工が必要となる例が
示される。これら対応規則A、対応規則B,対応規則C
はドット位置対応の例であるので、説明は後述する。Whether or not it is necessary to process the shape data is as follows.
It may be determined in advance according to the type of dot position correspondence. For example, in an example described later, an example is shown in which no processing is performed in the corresponding rule A, and processing is required in the corresponding rules B and C. The corresponding rule A, the corresponding rule B, and the corresponding rule C
Is an example corresponding to the dot position, and will be described later.
【0026】図6は、形状加工部5において行われる形
状データの加工処理の一例を示すフローチャートであ
る。なお、以降の説明において、座標系は図2(A)に
示したように取ることとする。ここで、走査線スリット
は図2(B)で太線で示したように、主走査線方向に1
列に並んでいるラスタイメージ上のドット列の占有する
細長い領域である。さらに、図形の形状データは、1以
上の要素形状データ(以下の説明ではエッジと呼ぶ)に
よって構成されているものとする。例えば矩形であれば
4つのエッジによって構成される。また、例えば形状処
理部4において曲線を直線近似した場合には、多数の短
い直線のエッジによって構成される。FIG. 6 is a flowchart showing an example of the processing of the shape data performed in the shape processing section 5. In the following description, the coordinate system is assumed to be as shown in FIG. Here, as shown by the thick line in FIG. 2 (B), the scanning line slit is one in the main scanning line direction.
This is an elongated area occupied by dot rows on a raster image arranged in a row. Further, it is assumed that the shape data of the figure is constituted by one or more element shape data (hereinafter, referred to as edges). For example, if it is a rectangle, it is constituted by four edges. Further, for example, when the curve is linearly approximated by the shape processing section 4, the curve is constituted by a large number of short straight edges.
【0027】S31において、まず図形の副走査方向の
極値となる図形の頂点を探す。この処理は、図形の頂点
(エッジの始終点)を順に調べてY座標値の最大値、最
小値を持つ頂点を選択することで容易に実現できる。ま
た、必ずしも全ての頂点を調べなくとも、連続する頂点
列の中で、極値を持つ頂点を選択することが可能であ
る。In step S31, first, a vertex of the figure which is an extreme value in the sub-scanning direction of the figure is searched for. This processing can be easily realized by sequentially examining the vertices of the figure (the start and end points of the edge) and selecting the vertices having the maximum and minimum values of the Y coordinate value. Further, it is possible to select a vertex having an extreme value in a continuous vertex sequence without necessarily examining all the vertices.
【0028】このようにして得られた図形の極値の頂点
をもとに、S32において図形の開始点、および終了点
を決める。例えば図形の極値の頂点を開始点とし、連続
する頂点列をたどってゆくことにより終了点を決定する
ことができる。例えば閉じた図形では、開始点と終了点
が同じ頂点となる。On the basis of the vertexes of the extremum of the figure thus obtained, the starting point and the ending point of the figure are determined in S32. For example, the end point can be determined by tracing a series of vertices with the vertex of the extreme value of the figure as the start point. For example, in a closed figure, the start point and the end point are the same vertex.
【0029】次にS33において、開始点の位置座標か
ら、処理位置となる走査線スリットを決定する。このと
き、最初に選択されるエッジと、必要ならそのエッジに
連続して選択されるエッジを先に参照して、1スリット
エッジデータの初期化を行う。ここで1スリットエッジ
データとは、X方向の幅と向きに相当するデータを持つ
1スリットだけに有効なスリットエッジデータである。
図7は、1スリットエッジデータのデータ構造の一例の
説明図である。1スリットエッジデータは、例えば図7
に示すように、含まれる走査線スリットを示すためのY
座標と、左側の端を示す座標値、右側の端を示す座標値
と、向きを示すフラグ、そして、1スリットエッジであ
ることを示すタイプ記述を有していればよい。このタイ
プ記述には、図形の内外判定を行う際のルール、例えば
非ゼロ巻線ルールに従うのか奇偶則に従うのか等といっ
た情報を含めてもよい。向きは、ここでは、走査線スリ
ットを上から下に通過する際に「下向き」、走査線スリ
ットの下端から上端に抜ける時に「上向き」、それ以外
の場合「向き無し」として説明する。もちろん、これに
限られるものではない。また、Y座標の情報は、エッジ
を登録するデータ構造によっては必要が無いこともあ
る。このほか、もし複数の描画図形をまとめて走査変換
を行う場合には、このエッジが外形を表している描画図
形固有の情報(例えばIDやポインタ等)を含む。ま
た、他のデータにリンクを張るためのポインタなどを持
つこともある。説明の簡単のため、ここでは1スリット
エッジデータは、無効なデータとして初期化されている
ものとする。Next, in S33, a scanning line slit to be a processing position is determined from the position coordinates of the starting point. At this time, the first slit edge data is initialized by first referring to the edge selected first and, if necessary, the edge selected successively to the edge. Here, one slit edge data is slit edge data that is effective only for one slit having data corresponding to the width and direction in the X direction.
FIG. 7 is an explanatory diagram of an example of the data structure of one slit edge data. One slit edge data is, for example, as shown in FIG.
As shown in FIG.
It is only necessary to have coordinates, coordinate values indicating the left end, coordinate values indicating the right end, a flag indicating the direction, and a type description indicating one slit edge. This type description may include a rule for determining whether the figure is inside or outside, for example, information such as whether to follow a non-zero winding rule or an odd / even rule. Here, the direction is described as "downward" when passing through the scanning line slit from top to bottom, "upward" when passing from the lower end to the upper end of the scanning line slit, and as "no direction" otherwise. Of course, it is not limited to this. Further, the information of the Y coordinate may not be necessary depending on the data structure for registering the edge. In addition, if scan conversion is performed for a plurality of drawing figures collectively, information (for example, ID and pointer) specific to the drawing figure whose edge represents the outer shape is included. In addition, it may have a pointer for linking to other data. For simplicity of description, it is assumed here that one slit edge data has been initialized as invalid data.
【0030】S34において、エッジを1つ選択する。
そしてS35において、S34で選択したエッジが1つ
の走査線スリット内に収まっているか否かを判定する。
収まっている場合には、S36において、選択している
エッジにより1スリットエッジデータを更新する。例え
ばエッジの始点、終点により左側座標値や右側座標値な
どを更新する。ここでは、1スリットエッジデータの更
新を行うのみであり、出力は行われずにS34へ戻り、
次のエッジの処理に移る。これは、選択中のエッジに続
くエッジにより、さらに1スリットエッジデータが更新
される場合を想定している。複数のエッジが1つの走査
線スリット内で収まっている場合には、これらのエッジ
がまとめられ、1つの1スリットエッジデータとなる。In S34, one edge is selected.
Then, in S35, it is determined whether or not the edge selected in S34 falls within one scanning line slit.
If it is, in S36, one slit edge data is updated with the selected edge. For example, the left coordinate value and the right coordinate value are updated based on the start point and end point of the edge. Here, only one slit edge data is updated, and the process returns to S34 without output, and
Move on to processing of the next edge. This assumes a case in which one slit edge data is further updated by an edge following the selected edge. If a plurality of edges fall within one scanning line slit, these edges are put together and become one slit edge data.
【0031】エッジが1つの走査線スリット内に収まっ
ていない場合には、S37において、それまでの1スリ
ットエッジデータを決定して形状データ蓄積部6に送
り、蓄積させる。そしてS38において、新たな走査線
スリットを設定する。例えばエッジの他端点を含む走査
線スリットを設定することができる。If the edge does not fall within one scanning line slit, the one-slit edge data so far is determined and sent to the shape data storage unit 6 in S37, where it is stored. Then, in S38, a new scanning line slit is set. For example, a scanning line slit including the other end point of the edge can be set.
【0032】S39において、S38で設定した走査線
スリットと、前の走査線スリットとの間に間隔が開いて
いるか否かを判定する。間隔が開いている場合には、S
40において、Nスリットエッジデータを決定し、形状
データ蓄積部6に送って蓄積させる。図8は、Nスリッ
トエッジデータのデータ構造の一例の説明図である。N
スリットエッジデータは、例えば図8に示すように、上
端のY座標値、上端のX座標値、Y座標値が1進む際の
X座標の変化分dX、またがるスリットの数、エッジの
向き、そして、Nスリットエッジデータであることを示
すタイプ記述などで構成することができる。タイプ記述
には、図形の内外判定を行う際のルール、例えば非ゼロ
巻線ルールに従うのか奇偶則に従うのか等といった情報
を含めてもよい。また、複数の描画図形をまとめて走査
変換を行う場合には、そのエッジが外形を表現していた
描画図形固有の情報、例えば描画図形のIDや固有情報
へのポインタ等を含めることも可能である。さらに、他
のデータをリンクするためのポインタを含めることもあ
る。図8に示したデータ構造は一例であり、さまざまな
表現で実現することができる。例えば、上端のスリット
Noと下端のスリットNoと、もとのエッジへの参照と
いう形でもよい。In S39, it is determined whether or not an interval is provided between the scanning line slit set in S38 and the preceding scanning line slit. If the interval is wide, S
At 40, N slit edge data is determined and sent to the shape data storage unit 6 for storage. FIG. 8 is an explanatory diagram of an example of the data structure of the N slit edge data. N
The slit edge data includes, for example, as shown in FIG. 8, the Y coordinate value at the upper end, the X coordinate value at the upper end, the change dX in the X coordinate when the Y coordinate value advances by 1, the number of slits to span, the direction of the edge, and , N slit edge data. The type description may include a rule for determining whether the figure is inside or outside, for example, information such as whether to follow a non-zero winding rule or an odd / even rule. In the case where a plurality of drawing figures are collectively subjected to scan conversion, information unique to the drawing figure whose edge represents the outer shape, such as the ID of the drawing figure and a pointer to the unique information, can be included. is there. In addition, it may include pointers to link other data. The data structure shown in FIG. 8 is an example, and can be realized by various expressions. For example, the upper slit number and the lower slit number and the reference to the original edge may be used.
【0033】S40でNスリットエッジデータを出力し
た後、あるいは、S38で設定した走査線スリットが前
の走査線スリットと隣接している場合には、S41にお
いて、S38で設定した走査線スリットに対応する1ス
リットエッジデータの初期化を行う。After outputting the N-slit edge data in S40, or when the scanning line slit set in S38 is adjacent to the previous scanning line slit, in S41, it corresponds to the scanning line slit set in S38. The initialization of one slit edge data to be performed is performed.
【0034】S42において、終了点に到着したか否か
を判定し、終了点に到着していなければ、S34へ戻
り、次のエッジについての処理を行う。このようにして
次々にエッジを処理してゆく。終了点に到達すると、S
43において、最後の1スリットエッジデータを決定し
て形状データ蓄積部6に送り、蓄積させる。In S42, it is determined whether or not the end point has been reached. If the end point has not been reached, the flow returns to S34 to perform the processing for the next edge. In this way, edges are processed one after another. When the end point is reached, S
At 43, the last one slit edge data is determined, sent to the shape data storage unit 6, and stored.
【0035】このようにして、1つの図形に対する形状
データの加工処理を行うことができる。処理結果は、1
スリットエッジデータおよびNスリットエッジデータと
して形状データ蓄積部6に蓄積される。In this way, it is possible to process the shape data for one figure. The processing result is 1
The shape data is stored in the shape data storage unit 6 as slit edge data and N slit edge data.
【0036】上述の形状加工部5における動作を、具体
例を用いて説明する。なお、以下の説明においては、ド
ット位置対応の規則として上述した図30〜図32で用
いた規則を用いることとする。ここで、図30に示し
た、中心点が図形の内側に含まれるドットを塗りつぶす
ドットとする規則を、対応規則Aとする。また、図31
に示した、図形の境界線が通ったドットと図形の内側に
含まれるドットを全て塗りつぶす規則を、対応規則Bと
する。さらに、図32に示した、各ドットの内側に内接
する菱形の領域を想定し、その菱形を境界線が通過した
ドットと完全に図形の内側に含まれるドットを塗りつぶ
す規則を、対応規則Cとする。このほかにもドット位置
対応には様々なものがあるが、ここではこの3種類の例
を取り上げることにする。もちろん本発明は、これらの
ドット位置対応に限定されるものではない。The operation of the above-mentioned shape processing section 5 will be described using a specific example. In the following description, the rule used in FIGS. 30 to 32 described above is used as the rule for the dot position. Here, the rule shown in FIG. 30 where the center point is a dot that fills a dot included inside the figure is referred to as a corresponding rule A. FIG.
Is a corresponding rule B in which all the dots passing through the boundary of the figure and the dots included in the inside of the figure are filled. Further, assuming a rhombic region inscribed inside each dot shown in FIG. 32, a rule for filling a dot whose boundary line has passed through the rhombus and a dot completely contained inside the figure is a corresponding rule C. I do. There are various other dot position correspondences, but these three types will be described here. Of course, the present invention is not limited to these dot position correspondences.
【0037】図9は、図形の具体例の説明図である。こ
こでは、図9に示すような図形を描画する場合について
説明する。図9に示す図形は、エッジVa〜Vfで示す
6つの方向付きエッジから構成されている。このような
エッジVa〜Vfからなる形状データが入力されたもの
とする。FIG. 9 is an explanatory diagram of a specific example of a figure. Here, a case where a figure as shown in FIG. 9 is drawn will be described. The graphic shown in FIG. 9 includes six directional edges indicated by edges Va to Vf. It is assumed that shape data including such edges Va to Vf has been input.
【0038】図10は、対応規則Aに従った場合の形状
加工部5の処理の一例の説明図である。ここでは、対応
規則Aに従う場合には、形状加工部5による形状データ
の加工を行わないものとする。すなわち、図9に示した
図形について対応規則Aに従って描画する場合には、形
状加工部5における形状データの加工処理を行わない。
その結果、図9に示すエッジVa〜Vfからなる形状デ
ータを、図10に示すスリットエッジデータEAa〜E
Afとして形状データ蓄積部6に格納する。FIG. 10 is an explanatory diagram of an example of the processing of the shape processing section 5 in the case of complying with the correspondence rule A. Here, when the correspondence rule A is followed, it is assumed that the processing of the shape data by the shape processing unit 5 is not performed. That is, when drawing the figure shown in FIG. 9 according to the correspondence rule A, the shape processing unit 5 does not perform the processing of the shape data.
As a result, the shape data consisting of the edges Va to Vf shown in FIG. 9 is replaced with the slit edge data EAa to Ea shown in FIG.
It is stored in the shape data storage unit 6 as Af.
【0039】図11は、対応規則Bに従った場合の形状
加工部5の処理の一例の説明図である。対応規則Bに従
う場合には、例えば図6に示したような形状データに対
する加工処理を行う。FIG. 11 is an explanatory diagram of an example of the processing of the shape processing unit 5 in accordance with the correspondence rule B. In the case of complying with the correspondence rule B, for example, processing is performed on the shape data as shown in FIG.
【0040】まず、図形の副走査方向の極値となる図形
の頂点を探す。これにより、図9に示した図形の場合に
は、エッジVaの始点(エッジVfの終点)とエッジV
cの終点(エッジVdの始点)が副走査方向の極値とな
る頂点である。これらから、ここではエッジVaの始点
を開始点、エッジVeの終点を終了点(同一の頂点)と
して決める。First, the vertices of the figure which is the extreme value in the sub-scanning direction of the figure are searched for. Thereby, in the case of the graphic shown in FIG. 9, the start point of the edge Va (end point of the edge Vf) and the edge V
The end point of c (the start point of the edge Vd) is the vertex at which the extreme value in the sub-scanning direction is reached. From these, here, the start point of the edge Va is determined as the start point, and the end point of the edge Ve is determined as the end point (the same vertex).
【0041】次に開始点(エッジVaの始点)の位置座
標から、処理位置となる走査線スリットを決定する。こ
のとき、最初に選択されるエッジと、必要ならそれに連
続されて選択されるエッジを先に参照して、1スリット
エッジのデータの初期化を行う。この例の場合、スリッ
トaが最初の処理対象となる走査線スリットとなる。そ
して、エッジを選択する。この場合、エッジVaが選択
される。このエッジVaはスリットa内で終了している
ため、1スリットエッジデータの更新だけが行われる。
1スリットエッジデータが図7に示したデータ構造の場
合、スリットaのY方向の座標値からY座標値は0とな
る。また、エッジVaが交わるドットを調べることによ
り左側座標値2、右側座標値3となる。ここで、各ドッ
トは左の境界と上の境界を含み、右の境界と下の境界を
含まないものとしている。また、向きのフラグの決定
は、この時点では保留される。なお、1スリットエッジ
データは、無効なデータとして初期化されているものと
し、各値が上述のように更新される。Next, from the position coordinates of the start point (start point of the edge Va), a scanning line slit to be a processing position is determined. At this time, the data of one slit edge is initialized by first referring to the edge selected first and, if necessary, the edge selected successively. In the case of this example, the slit a is the first scanning line slit to be processed. Then, an edge is selected. In this case, the edge Va is selected. Since this edge Va ends within the slit a, only the update of one slit edge data is performed.
In the case where one slit edge data has the data structure shown in FIG. 7, the Y coordinate value becomes 0 from the Y coordinate value of the slit a. By examining the dots where the edge Va intersects, the left coordinate value 2 and the right coordinate value 3 are obtained. Here, each dot includes a left boundary and an upper boundary, and does not include a right boundary and a lower boundary. The determination of the direction flag is suspended at this time. It is assumed that one slit edge data is initialized as invalid data, and each value is updated as described above.
【0042】次に、エッジVbが処理の対象となる。エ
ッジVbはスリットa内に止まっていないため、まず、
スリットaの1スリットエッジデータが更新されて出力
されることになる。ここで、エッジVbは、スリットa
内ではX座標値2、Y座標値0に対応づけられるドッ
ト:(2,0)(以降説明の簡単のため、各ドットはこ
の例と同様に左上の座標によりドット:(x,y)のよ
うに参照する)を通過するだけである。そのため、スリ
ットaの1スリットエッジデータは、エッジVbによっ
て座標値については変更を受けない。そして、向きが決
定される。向きは、ここでは一例として、上述のように
スリットを上から下に通過する際に「下向き」、スリッ
トの下端から上端に抜ける時に「上向き」、それ以外の
場合「向き無し」とする。従って、この場合には「向き
無し」として1スリットエッジデータEBaが出力され
る。図11では、この1スリットエッジデータEBaを
ハッチングを施した矩形で示している。Next, the edge Vb is to be processed. Since the edge Vb is not stopped in the slit a, first,
One slit edge data of the slit a is updated and output. Here, the edge Vb is the slit a
In the figure, the dots associated with the X coordinate value 2 and the Y coordinate value 0: (2, 0) (for the sake of simplicity, each dot is represented by the upper left coordinate of the dot: (x, y) as in this example). Just refer to it). Therefore, the coordinate value of one slit edge data of the slit a is not changed by the edge Vb. Then, the orientation is determined. Here, as an example, the direction is “downward” when passing through the slit from above to below as described above, “upward” when passing from the lower end to the upper end of the slit, and “otherwise” in other cases. Therefore, in this case, one slit edge data EBa is output as "no orientation". In FIG. 11, the one slit edge data EBa is indicated by a hatched rectangle.
【0043】次に、エッジVbの終点が入る走査線スリ
ットを調べる。この場合、エッジVbの終点はスリット
cに含まれる。このとき、スリットaとスリットcの間
に間隔が開くことが分かる。このため、Nスリットエッ
ジデータが出力される。Nスリットエッジデータが図8
に示したデータ構造の場合、上端のY座標は1、上端の
X座標値はエッジVbとY=1の直線との交点のX座標
値である。ここでは仮に上端のX座標値をXbuとして
おく。また、Y=2の直線とエッジVbの交点のX座標
値をXblとすると、dXの値は(Xbl−Xbu)/
(2−1)となる。向きは、エッジVbの向きを反映し
て下向きとなる。このようにして、エッジVbに対応す
るNスキャンエッジデータEBbが確定して出力され
る。なお、図11ではNスキャンエッジデータについて
は太い矢線によって示している。Next, the scanning line slit at which the end point of the edge Vb enters is examined. In this case, the end point of the edge Vb is included in the slit c. At this time, it can be seen that a gap is opened between the slit a and the slit c. Therefore, N slit edge data is output. Figure 8 shows N slit edge data
In the data structure shown in (1), the Y coordinate at the upper end is 1, and the X coordinate value at the upper end is the X coordinate value at the intersection of the edge Vb and the straight line of Y = 1. Here, it is assumed that the X coordinate value of the upper end is Xbu. When the X coordinate value of the intersection of the straight line Y = 2 and the edge Vb is Xbl, the value of dX is (Xbl-Xbu) /
(2-1). The direction is downward, reflecting the direction of the edge Vb. Thus, the N-scan edge data EBb corresponding to the edge Vb is determined and output. In FIG. 11, the N scan edge data is indicated by a thick arrow.
【0044】次に、処理対象の走査線スリットがスリッ
トcに移る。1ラインスリットエッジデータの初期化が
行われる。この場合、スリットcにおいてエッジVbは
ドット:(1,2)の1ドットだけ通過しているので、
Y座標が2、左側X座標値が1、右側X座標値が1とし
て初期化が行われる。またタイプ種別も設定される。向
きの決定は保留されるが、このスリットの上端から突入
したエッジを処理していることが一時的に記憶される。Next, the scanning line slit to be processed moves to the slit c. Initialization of one-line slit edge data is performed. In this case, since the edge Vb passes only one dot of the dot: (1, 2) in the slit c,
Initialization is performed with the Y coordinate being 2, the left X coordinate value being 1, and the right X coordinate value being 1. Also, the type type is set. Although the determination of the direction is suspended, it is temporarily stored that the edge entering from the upper end of the slit is being processed.
【0045】次に、エッジVcが選択され、このエッジ
Vcについての処理が行われる。エッジVcは処理対象
となっているスリットc内から他の走査線スリットにま
たがっているので、スリットcの1スリットエッジデー
タの決定処理が行われる。エッジVcはスリットc内
で、ドット:(0,2)とドット:(1,2)を通過し
ている。このため、1スリットエッジデータの左側座標
値が0に更新される。そして、スリットcの上端から入
って下端に抜けることが確定したので、向きは下向きと
決定される。図11では、ハッチングを施した矩形内に
下向きの矢印を記して示している。このようにして更新
された1スリットエッジデータEBcが出力される。Next, the edge Vc is selected, and the processing for this edge Vc is performed. Since the edge Vc extends from the slit c to be processed to another scanning line slit, determination processing of one slit edge data of the slit c is performed. The edge Vc passes through the dot: (0, 2) and the dot: (1, 2) in the slit c. Therefore, the left coordinate value of one slit edge data is updated to 0. Then, since it is determined that the slit c enters from the upper end and exits to the lower end, the direction is determined to be downward. In FIG. 11, a downward arrow is shown in a hatched rectangle. One slit edge data EBc updated in this manner is output.
【0046】そしてエッジVcの終点を含むスリットd
の処理に移る。スリットdとスリットcの間に間隔はな
いので、Nスリットエッジデータは生成されない。スリ
ットdについて、1スリットエッジデータの初期化が行
われ、以下、エッジVd,Ve,Vfについても同様の
処理が行われる。これによって、1スリットエッジデー
タEBd、NスリットエッジデータEBe、1スリット
エッジデータEBf、1スリットエッジデータEBg、
NスリットエッジデータEBhが順次出力される。Then, the slit d including the end point of the edge Vc
Move on to processing. Since there is no interval between the slit d and the slit c, no N slit edge data is generated. Initialization of one slit edge data is performed on the slit d, and the same processing is performed on the edges Vd, Ve, and Vf. Thereby, one slit edge data EBd, N slit edge data EBe, one slit edge data EBf, one slit edge data EBg,
The N slit edge data EBh is sequentially output.
【0047】エッジVfが終了した時点でスリットaの
1スリットエッジデータEBiが残っているので、これ
を最後に確定して出力する。この例ではエッジVfはス
リットaの上端に達することなく終わっているため、向
き無しのデータとなる。このようにして、図9に示す図
形のエッジVa〜Vfは、図11に示す1スリットエッ
ジデータあるいはNスリットエッジデータに加工され
る。When the edge Vf ends, one slit edge data EBi of the slit a remains, and this is finally determined and output. In this example, since the edge Vf ends without reaching the upper end of the slit a, the data has no direction. In this way, the edges Va to Vf of the figure shown in FIG. 9 are processed into one-slit edge data or N-slit edge data shown in FIG.
【0048】図12は、対応規則Cに従った場合の形状
加工部5の処理の一例の説明図である。対応規則Cに従
う場合についても、例えば図6に示したような形状デー
タに対する加工処理を行う。この場合、上述の対応規則
Bに従う場合とほぼ同様の処理を行うので、異なる点の
みを説明する。FIG. 12 is an explanatory diagram of an example of the processing of the shape processing unit 5 in accordance with the correspondence rule C. Also in the case of complying with the correspondence rule C, for example, processing processing is performed on the shape data as shown in FIG. In this case, almost the same processing is performed as in the case where the above-described correspondence rule B is followed, and only different points will be described.
【0049】対応規則Cに従う場合、出力する1スキャ
ンエッジデータやエッジデータに付加するタイプ種別と
して、対応規則Cに従うことを示すデータを格納するこ
とになる。そのほか、1スキャンエッジデータの座標値
の決定だけが異なることになる。上述の対応規則Bの場
合、エッジの走査線スリット内部での最小X座標と最大
X座標について考慮するだけでよかったが、対応規則C
の場合、内接する菱形に交差するか否かを判定する処理
が加わる。In the case of complying with the correspondence rule C, data indicating that the data complies with the correspondence rule C is stored as the type of one-scan edge data to be output or the type added to the edge data. In addition, only the determination of the coordinate value of one scan edge data is different. In the case of the above-described correspondence rule B, it is only necessary to consider the minimum X coordinate and the maximum X coordinate inside the scanning line slit of the edge.
In the case of, a process of determining whether or not to intersect the inscribed rhombus is added.
【0050】この処理は、例えば走査線スリット内の各
ドットに内接する菱形を一つずつ判定することにより実
現することができる。しかしこれは非効率的であるの
で、通常は様々な効率化を施して実現される。一例を挙
げると、例えば、スリット内でX座標方向に2ドット以
上の幅を持って走査線スリットを抜ける右方向のエッジ
である場合(例えばエッジVd)、floor(境界を
抜けたX座標値−0.5)が1スリットエッジデータの
右側の座標の候補となる。ここで、関数floor
(x)はxの整数部分を出力とする関数である。例え
ば、スリットdでのエッジVdの場合、スリットdの上
側の境界を抜けるX座標値は 2.5を若干上回ってい
るため、この値は2となる。仮にスリットdの上側の境
界を抜ける座標値が2.5を下回っている場合、この値
は1となる。This processing can be realized by, for example, determining one diamond at a time inscribed in each dot in the scanning line slit. However, since this is inefficient, it is usually realized with various efficiencies. As an example, for example, if the edge is a rightward edge that passes through the scanning line slit with a width of 2 dots or more in the X coordinate direction in the slit (eg, edge Vd), floor (X coordinate value minus the boundary− 0.5) is a candidate for the right coordinate of one slit edge data. Where the function floor
(X) is a function that outputs an integer part of x. For example, in the case of the edge Vd at the slit d, the X coordinate value passing through the upper boundary of the slit d is slightly larger than 2.5, so this value is 2. If the coordinate value passing through the upper boundary of the slit d is less than 2.5, this value is 1.
【0051】このように、対応規則Cに従う場合の形状
データに対する加工処理を行うことによって、図12に
示すような1スキャンエッジデータECa,ECc,E
Cd,ECf,ECg,ECiと、Nスキャンエッジデ
ータECb,ECe,EChが形状データ蓄積部6に格
納される。As described above, by performing the processing on the shape data in the case of complying with the correspondence rule C, the one-scan edge data ECa, ECc, E as shown in FIG.
Cd, ECf, ECg, ECi and N scan edge data ECb, ECe, ECh are stored in the shape data storage unit 6.
【0052】次に、走査変換部7の動作について説明す
る。形状加工部5によりスキャンエッジデータが形状デ
ータ蓄積部6にすべて格納された後、走査変換部7にお
いて走査線ごとに走査変換処理が行われる。Next, the operation of the scan converter 7 will be described. After all the scan edge data is stored in the shape data storage unit 6 by the shape processing unit 5, the scan conversion unit 7 performs a scan conversion process for each scan line.
【0053】図13は、走査変換部7における動作の一
例を示すフローチャートである。走査変換処理は、走査
線ごとにS51〜S54の処理を行い、この処理をすべ
ての走査線について繰り返して行う。FIG. 13 is a flowchart showing an example of the operation of the scan converter 7. In the scan conversion process, the processes of S51 to S54 are performed for each scan line, and this process is repeated for all scan lines.
【0054】各走査線では、まずS51において、走査
線スリットごとの初期化が行われる。この時、処理する
走査線の位置の設定、その走査線スリットに関係するス
キャンエッジデータの収集、そして、図示しないワーク
領域の初期化などが行われる。In each scanning line, first, in step S51, initialization is performed for each scanning line slit. At this time, setting of the position of the scanning line to be processed, collection of scan edge data related to the scanning line slit, initialization of a work area (not shown), and the like are performed.
【0055】処理対象の走査線スリットに関係するスキ
ャンエッジデータの収集処理は、例えば、走査線スリッ
ト毎に形状データ蓄積部6に問い合わせることによって
容易に実現することができる。これは例えば、形状デー
タ蓄積部6は、格納されている全てのスキャンエッジデ
ータについて、注目している走査線スリット内にデータ
を持つか否かを調べればよく、これは各エッジの頂点の
Y座標値を走査線スリット境界の座標値と比較すること
によって容易に実現することができる。しかし、通常は
走査線スリットごとに全てのエッジデータを形状データ
蓄積部6から得るのではなく、いったん形状データ蓄積
部6から読み込んだエッジデータを保持しておく方法が
使用される。この方法では、例えば、形状データ蓄積部
6に各スキャンエッジデータを例えばその最小Y座標値
をキーとして登録しておく。そして、走査線スリットご
との処理をY座標の小さい方から行う。走査線スリット
ごとのスキャンエッジデータの収集は、その走査線スリ
ットから始まるスキャンエッジデータを形状データ蓄積
部6に問い合わせるとともに、保持されているその走査
線スリットより以前から始まるスキャンエッジデータの
集合からも獲得される。保持されているスキャンエッジ
データの集合は、走査線スリットごとに更新が行われ
る。この更新は、例えば、保持されているそれぞれのス
キャンエッジデータについて、注目している走査線スリ
ットに一部でも含まれるか否かという判定を行えばよ
い。これはスリット境界線のY座標値とスキャンエッジ
データの端点を示すY座標値の比較により容易に実現す
ることができる。The process of collecting the scan edge data relating to the scanning line slit to be processed can be easily realized, for example, by inquiring the shape data storage unit 6 for each scanning line slit. This is because, for example, the shape data storage unit 6 only needs to check whether or not all the stored scan edge data has data in the scan line slit of interest. This can be easily realized by comparing the coordinate values with the coordinate values of the scanning line slit boundary. However, usually, a method is used in which not all edge data is obtained from the shape data storage unit 6 for each scanning line slit, but edge data once read from the shape data storage unit 6 is held. In this method, for example, each scan edge data is registered in the shape data storage unit 6 using, for example, its minimum Y coordinate value as a key. Then, processing for each scanning line slit is performed from the smaller Y coordinate. Collection of scan edge data for each scan line slit is performed by inquiring the shape data storage unit 6 of scan edge data starting from the scan line slit, and also from a set of scan edge data starting before the held scan line slit. Be acquired. The held set of scan edge data is updated for each scanning line slit. For this update, for example, it may be determined whether or not each of the held scan edge data is included even in a part of the scanning line slit of interest. This can be easily realized by comparing the Y coordinate value of the slit boundary line with the Y coordinate value indicating the end point of the scan edge data.
【0056】次にS52において、処理対象となってい
る走査線スリットに関係するスキャンエッジデータの集
合から、エッジ情報を生成する。以下の説明では、この
エッジ情報をエッジイベントと呼んでいる。このエッジ
イベントの生成処理については後述する。Next, in step S52, edge information is generated from a set of scan edge data relating to the scanning line slit to be processed. In the following description, this edge information is called an edge event. The generation process of the edge event will be described later.
【0057】S53において、S52で生成したエッジ
イベントを、X方向の例えば小さいほうから順に並び替
える。そしてS54において、エッジイベントを順にた
どりながら1走査線スリット単位での走査変換処理を行
う。このような1走査線スリットの走査変換処理は、複
数の図形の重なりを管理したり、クリップ処理を一度に
処理するといったことも可能である。例えば特開平10
−79038号公報に記載されている技術の一部または
全部を組み込めばよい。ここでは、説明の簡単のため、
重なり方向の処理とクリップの処理については省略す
る。In S53, the edge events generated in S52 are rearranged in the X direction, for example, in ascending order. In step S54, scan conversion processing is performed for each scanning line slit while sequentially tracing the edge events. In such scan conversion processing of one scanning line slit, it is also possible to manage overlapping of a plurality of figures or to perform clip processing at one time. For example, JP-A-10
A part or all of the technology described in US Pat. Here, for simplicity of explanation,
The processing of the overlapping direction and the processing of the clip are omitted.
【0058】S55において、未処理の走査線スリット
が残っているか否かを判定し、未処理の走査線スリット
が残っていればS51へ戻って、その未処理の走査線ス
リットについての処理を行う。すべての走査線スリット
についての処理が終了したら、この走査変換処理を終了
する。In S55, it is determined whether or not unprocessed scanning line slits remain. If unprocessed scanning line slits remain, the process returns to S51 to perform processing on the unprocessed scanning line slits. . When the processing for all the scanning line slits is completed, the scan conversion processing is completed.
【0059】図14は、エッジイベントの生成処理の一
例を示すフローチャートである。形状データ蓄積部6に
格納されているデータは、ここでは、対応規則Aに従う
エッジ(Nスキャンエッジデータ)、対応規則Bに従う
1スキャンエッジデータとNスキャンエッジデータ、対
応規則Cに従う1スキャンエッジデータとNスキャンエ
ッジデータの5種類であるとする。しかし1スキャンエ
ッジデータに対するエッジイベントの生成処理は、対応
規則B、対応規則Cのいずれでも同じであるため、ここ
では1スキャンエッジデータ、対応規則Aに従うNスキ
ャンエッジデータA,対応規則Bに従うNスキャンエッ
ジデータB、対応規則Cに従うNスキャンエッジデータ
Cの4種類について説明を行う。しかし、本発明はこれ
ら4種類に限定されるものではなく、説明の簡単のため
に4種類だけを例示したにすぎない。例えば他のドット
位置対応の規則を用いる場合には、他のエッジイベント
の生成処理が必要になる場合もある。FIG. 14 is a flowchart showing an example of an edge event generation process. Here, the data stored in the shape data storage unit 6 includes an edge (N scan edge data) according to the corresponding rule A, one scan edge data and N scan edge data according to the corresponding rule B, and one scan edge data according to the corresponding rule C. And N scan edge data. However, the process of generating an edge event for one scan edge data is the same in both the corresponding rule B and the corresponding rule C. Therefore, here, one scan edge data, N scan edge data A in accordance with the corresponding rule A, and N in accordance with the corresponding rule B are used. Four types of scan edge data B and N scan edge data C according to the corresponding rule C will be described. However, the present invention is not limited to these four types, but merely exemplifies the four types for simplicity of explanation. For example, when another rule corresponding to the dot position is used, another edge event generation process may be required.
【0060】図14において、まずS61でスキャンエ
ッジデータを1つ選択する。そしてS62において、S
61で選択したスキャンエッジデータの種別を判定す
る。スキャンエッジデータの種別は、ここでは上述の1
スキャンエッジデータ、対応規則Aに従うNスキャンエ
ッジデータA,対応規則Bに従うNスキャンエッジデー
タB、対応規則Cに従うNスキャンエッジデータCのい
ずれかとなる。In FIG. 14, first, one scan edge data is selected in S61. Then, in S62, S
The type of the scan edge data selected in 61 is determined. Here, the type of the scan edge data is 1
Either scan edge data, N scan edge data A according to the corresponding rule A, N scan edge data B according to the corresponding rule B, or N scan edge data C according to the corresponding rule C.
【0061】S61で選択したスキャンエッジデータが
1スキャンエッジデータであった場合、S63において
左側のX座標値の位置にエッジイベントを値Sと共に登
録する。そしてS64において、右側のX座標値の位置
にエッジイベントを値Tと共に登録する。この値S、値
Tについては後述する。複数の描画図形をまとめて走査
変換する場合には、このエッジイベントにも各描画図形
固有の値(描画図形のIDや、ワーク領域へのポインタ
の値など)が付与される。If the scan edge data selected in S61 is one scan edge data, an edge event and a value S are registered at the position of the left X coordinate value in S63. Then, in S64, an edge event and a value T are registered at the position of the X coordinate value on the right side. The values S and T will be described later. When a plurality of drawing figures are collectively scan-converted, a value unique to each drawing figure (such as the ID of a drawing figure and the value of a pointer to a work area) is also given to this edge event.
【0062】S61で選択したスキャンエッジデータが
NスキャンエッジデータAであった場合には、S65に
おいてスリット基準線との交差の有無が判定される。こ
れは、Nスキャンエッジデータの両端のY座標値と、こ
の走査線スリットのスリット基準線のY座標値の関係に
より容易に判定することが可能である。交差していない
場合には、そのNスキャンエッジデータAはこの走査線
スリットに影響を与えないものとされ、エッジイベント
は登録しない。交差している場合には、S66におい
て、その交点のX座標値に対応する位置にエッジイベン
トを値Uと共に登録する。この値Uについても後述す
る。If the scan edge data selected in S61 is the N scan edge data A, it is determined in S65 whether or not there is an intersection with the slit reference line. This can be easily determined from the relationship between the Y coordinate values at both ends of the N scan edge data and the Y coordinate value of the slit reference line of the scanning line slit. If they do not intersect, the N scan edge data A is determined not to affect the scanning line slit, and no edge event is registered. If they intersect, an edge event is registered with the value U at a position corresponding to the X coordinate value of the intersection in S66. This value U will also be described later.
【0063】S61で選択したスキャンエッジデータが
NスキャンエッジデータBであった場合には、まずS6
7において、その走査線スリットの上下のスリット境界
線との交点を求める。S68において、この2つ点のX
座標値の小さい側のX座標値に対応する位置に、エッジ
イベントを値Sと共に登録する。またS69において、
X座標値の大きい側のX座標値に対応する位置に、エッ
ジイベントを値Tと共に登録する。If the scan edge data selected in S61 is the N scan edge data B, first, in S6
At 7, the intersection of the scanning line slit with the upper and lower slit boundaries is determined. In S68, these two points X
An edge event is registered together with the value S at a position corresponding to the X coordinate value on the smaller coordinate value side. In S69,
An edge event and a value T are registered at a position corresponding to the X coordinate value on the side where the X coordinate value is larger.
【0064】S61で選択したスキャンエッジデータが
NスキャンエッジデータCであった場合には、まずS7
0において、その走査線スリットの上下の境界との交点
が求められる。そして、更にS71において、この2つ
の点の調整が行われる。この調整は、その点に対応する
ドットの位置において、ドットに内接する菱形にエッジ
が交差するか否かを判定し、交差がなければ交差する位
置までずらすという処理を行うものである。ここでは、
NスキャンエッジデータCは走査線スリットの上端から
下端まで達していることが保証されるので、2点のX座
標値の差が1より大きい場合には 右側の座標値はfl
oor(右側のX座標値−0.5)、左側の座標値はc
eil(左側のX座標値+0.5)の値を参考にして位
置を簡単に決めることができる。なお、関数ceil
は、小数部を切り上げる関数である。2点のX座標値の
差が1以下の場合には、走査線スリットの中央の線との
交点の位置などを参考にして、エッジイベントを登録す
べき位置を調整することになる。そしてS68におい
て、調整後のX座標値の小さい側のX座標値に対応する
位置に、エッジイベントを値Sと共に登録する。またS
69において、X座標値の大きい側のX座標値に対応す
る位置に、エッジイベントを値Tと共に登録する。If the scan edge data selected in S61 is the N scan edge data C, first, in S7
At zero, the intersection of the scan line slit with the upper and lower boundaries is determined. Then, in S71, these two points are adjusted. In this adjustment, at the position of the dot corresponding to the point, it is determined whether or not the edge intersects the rhombus inscribed in the dot, and if there is no intersection, the process is shifted to the intersection position. here,
Since the N scan edge data C is guaranteed to reach from the upper end to the lower end of the scanning line slit, if the difference between the X coordinate values of the two points is larger than 1, the right coordinate value is fl.
oor (X coordinate value on the right side -0.5), coordinate value on the left side is c
The position can be easily determined with reference to the value of eil (the left X coordinate value +0.5). The function ceil
Is a function that rounds up the decimal part. When the difference between the X coordinate values of the two points is 1 or less, the position where the edge event is to be registered is adjusted with reference to the position of the intersection with the center line of the scanning line slit. Then, in S68, the edge event and the value S are registered at a position corresponding to the X coordinate value on the smaller side of the adjusted X coordinate value. Also S
At 69, an edge event is registered together with the value T at a position corresponding to the X coordinate value on the side with the larger X coordinate value.
【0065】S72において、1走査線スリットに属す
るすべてのスキャンエッジデータについて処理を行った
か否かを判定し、未処理のスキャンエッジデータが残っ
ている場合には、その未処理のスキャンエッジデータに
ついて処理を行うべく、S61へ戻る。1走査線スリッ
トに属するすべてのスキャンエッジデータについて処理
を行ったら、その走査線スリットについてのエッジイベ
ントの生成処理を終了する。In S72, it is determined whether or not processing has been performed on all the scan edge data belonging to one scan line slit. If unprocessed scan edge data remains, the processing is performed on the unprocessed scan edge data. The process returns to S61 to perform the processing. When the processing has been performed for all the scan edge data belonging to one scanning line slit, the generation processing of the edge event for that scanning line slit is completed.
【0066】図15は、エッジイベントに組み込まれる
値S,値T、値Uの具体例の説明図である。なお、図1
5に示す値S,値T、値Uは16進数で示しており、先
頭に‘0x’を付している。以下の説明においても同じ
である。FIG. 15 is an explanatory diagram of a specific example of the values S, T, and U incorporated in the edge event. FIG.
5, the value S, the value T, and the value U are represented by hexadecimal numbers, and are prefixed with '0x'. The same applies to the following description.
【0067】図15に示す具体例においては、値S、値
T、値Uは2つのフィールドに分けることができる。例
えば下位16ビットの部分は、値Sはすべて0x000
1、値Tはすべて0x7fff、値Uはすべて0x00
00となっている。また、上位16ビットの部分は、値
Sと値Uにおいて、向きとNZ/EOの種別において決
まっている。ここで、NZ/EOの種別とは、その図形
が非ゼロ巻き線ルールに従って内外判定が行われるのか
(NZ)、奇偶則に従って内外判定が行われるのか(E
O)という種別を表現している。そしてNZで上向きの
時に0x0001、NZで下向きの時に0xffff、
EOの時に0x8000となっている。すなわち、上位
16ビットについては、NZの時は上向きの値0x00
01と下向きの値0xffffを足すと0x10000
になり、EOの時には2回足すとやはり0x10000
になる。この演算に加えて毎回0xffffとのマスク
演算を行うことにより、非ゼロ巻線ルールの時には上向
きのエッジの数と下向きのエッジの数が等しい場合に
0、奇偶則の時には偶数エッジをカウントした時に0に
なる。また、下位16ビットについては 値Sの下位1
6ビットと値Tの下位16ビットを加算して、0x7f
ffでマスクをかけることにより0になるようになって
いる。In the specific example shown in FIG. 15, the value S, the value T, and the value U can be divided into two fields. For example, in the lower 16 bits, the values S are all 0x000.
1, values T are all 0x7fff, values U are all 0x00
00. In the upper 16 bits, the value S and the value U are determined by the direction and the type of NZ / EO. Here, the type of NZ / EO refers to whether the inside / outside judgment of the figure is made according to the non-zero winding rule (NZ) or the inside / outside judgment is made according to the odd / even rule (E
O). And 0x0001 when facing up in NZ, 0xffff when facing down in NZ,
It is 0x8000 at the time of EO. In other words, for the upper 16 bits, when NZ, the upward value 0x00
01 plus the downward value 0xffff is 0x10000
It becomes 0x10000 when adding twice in EO
become. In addition to this operation, by performing a mask operation with 0xffff every time, when the number of upward edges is equal to the number of downward edges in the case of the non-zero winding rule, when the number of upward edges is equal to 0, and in the case of an odd-even rule, even edges are counted. It becomes 0. For the lower 16 bits, the lower 1 of the value S
By adding 6 bits and the lower 16 bits of the value T, 0x7f
The value is set to 0 by masking with ff.
【0068】各値のビット数や、エッジの向きやNZ/
EOの影響を値Sに入れるか値Tに入れるかなどの点は
容易に変更することができる。また、上位のフィールド
と下位のフィールドの値の入れ替えや値Sと値Tの入れ
替え、ビット数の変更など様々な変形がありうる。ま
た、極端な場合には、この二つのフィールドに対して別
々の値としてエッジイベントに付加し、別々のカウンタ
を用意してもよい。The number of bits of each value, the direction of the edge, NZ /
Points such as whether to include the influence of EO in the value S or the value T can be easily changed. In addition, there may be various modifications such as replacement of the values of the upper and lower fields, replacement of the values S and T, and change of the number of bits. In an extreme case, separate values may be added to these two fields as different values to the edge event to prepare different counters.
【0069】図13でも説明したように、エッジイベン
トが登録されると、次に図13のS53において、登録
されたエッジイベントをX座標の順に取り出せることを
保証する処理を必要に応じて行う。この処理は、単純に
はエッジイベントごとに登録する位置の値(X座標値に
相当する値)を持たせておき、この段階でその値の小さ
い順や大きい順に並び替えを行なえばよい。また、例え
ば走査線上の各ドットに対応するエントリを持ったテー
ブルを用意し、その各エントリに対してエッジイベント
を登録する場合には、この段階において特に必要な処理
は発生しない。As described with reference to FIG. 13, when an edge event is registered, a process for guaranteeing that the registered edge event can be taken out in the order of the X coordinate is performed as necessary in S53 of FIG. In this process, simply, a value of a position to be registered (a value corresponding to the X coordinate value) is provided for each edge event, and at this stage, the values may be rearranged in ascending or descending order. Also, for example, when a table having entries corresponding to each dot on the scanning line is prepared and an edge event is registered for each entry, no particularly necessary processing occurs at this stage.
【0070】図16は、走査線スリットの走査変換処理
の一例を示すフローチャートである。この処理は図13
のS54で行われる処理である。まずS81において、
図示しないワーク領域の初期化が行われる。この初期化
とは、処理済位置を例えば左端の位置にすることと、少
なくともその走査線スリットに関係する図形ごとのエッ
ジカウンタの領域を0に初期化することである。ここで
処理済位置は、走査線の処理に対して一つだけ設け、例
えば特開平10−79038号公報に記載されているよ
うに重なり処理を行えば、重なり処理まで終わった1走
査線分のラスタ情報を得ることができる。また、処理済
位置を図形ごとに持てば、図形ごとに重なり処理を行わ
ない形でのラスタ情報を得ることができる。なお、図形
ごとのエッジカウンタを動的に用意する構成では、カウ
ンタが用意されていないことが示されるようにワーク領
域を初期化する。FIG. 16 is a flowchart showing an example of the scan conversion processing of the scanning line slit. This processing is shown in FIG.
This is the process performed in S54. First, in S81,
A work area (not shown) is initialized. This initialization is to set the processed position to, for example, the left end position, and to initialize at least the edge counter area for each figure related to the scanning line slit to zero. Here, only one processed position is provided for the processing of the scanning line. For example, if the overlapping processing is performed as described in Japanese Patent Application Laid-Open No. H10-79038, one processed scanning line is completed. Raster information can be obtained. Further, if the processed position is held for each graphic, raster information can be obtained without performing the overlapping process for each graphic. In a configuration in which an edge counter for each figure is dynamically prepared, the work area is initialized so as to indicate that the counter is not prepared.
【0071】またエッジカウンタは、保持している値と
上述のエッジイベントに付加した値との演算値あるいは
その演算値にマスクを施した値を、塗りつぶし時の内外
判定を行う際の判定値として格納するエッジ判定値記憶
手段として機能する。通常はエッジカウンタは、例えば
非ゼロ巻き線ルールや奇偶則等に従って塗りつぶし時の
内外判定を行う際に、エッジの出現に合わせてカウント
アップあるいはカウントダウンされる。本発明でも、エ
ッジカウンタの値とエッジイベントに付加した値との演
算値あるいはその演算値にマスクを施した値は、これら
の規則に従った内外判定を行うための判定値となる。上
述の図15を用いて説明したようにエッジイベントに付
加した値を決めておくことによって、例えば非ゼロ巻き
線ルールに従う場合には、上向きエッジで上位16ビッ
トがカウントアップし、下向きエッジでカウントダウン
する。これにより、上向きのエッジの数と下向きのエッ
ジの数が等しい場合に0となり、内外判定を行うことが
できる。同様に、奇偶則に従う場合には、上向きでも下
向きでもエッジが存在する度に上位16ビットが0x8
000と0x0000が交互に現れ、奇数番目のエッジ
か偶数番目のエッジかを判定することにより、内外判定
を行うことができる。このエッジカウンタは、図形ごと
に設けられる。The edge counter uses the calculated value of the held value and the value added to the above-described edge event or a value obtained by masking the calculated value as a judgment value for performing the inside / outside judgment at the time of painting. It functions as an edge determination value storage means for storing. Normally, the edge counter is counted up or down in accordance with the appearance of an edge when performing the inside / outside determination at the time of painting in accordance with, for example, a non-zero winding rule or an odd / even rule. Also in the present invention, a calculated value of the value of the edge counter and the value added to the edge event or a value obtained by masking the calculated value is a determination value for performing the inside / outside determination according to these rules. By determining the value added to the edge event as described with reference to FIG. 15 described above, for example, when following the non-zero winding rule, the upper 16 bits are counted up on the upward edge, and are counted down on the downward edge. I do. Accordingly, when the number of upward edges is equal to the number of downward edges, the value becomes 0, and the inside / outside determination can be performed. Similarly, when obeying the odd-even rule, the upper 16 bits are set to 0x8 each time an edge exists, whether upward or downward.
000 and 0x0000 appear alternately, and by determining whether the edge is an odd-numbered edge or an even-numbered edge, the inside / outside determination can be performed. The edge counter is provided for each figure.
【0072】S82において、未処理のエッジイベント
が存在するか否かを判定し、未処理のエッジイベントが
存在する間、以下の処理を繰り返す。In S82, it is determined whether or not an unprocessed edge event exists, and the following process is repeated while an unprocessed edge event exists.
【0073】S83において、エッジイベントを1つ取
り出す。そしてS84において、S83で取り出したエ
ッジイベントに対応するオブジェクトのエッジカウンタ
領域への参照手段を取得する。1つの描画図形だけを処
理している場合には、この部分は最初から決められたエ
ッジカウンタ領域への指定でよく、固定されたアドレス
やレジスタなどでよい。複数の描画図形をまとめて走査
変換する場合には、取り出したエッジイベントを含む図
形に対応するエッジカウンタへのアドレスなどの参照手
段を取得する。取得方法としては、例えばエッジイベン
トに直接そのアドレスが記述されている場合には、その
アドレスを取得すればよい。また、エッジイベントに図
形のIDが記述されている場合には、そのIDをキーと
して図示しないワーク領域の管理機構に問い合わせを行
い、対応するエッジカウンタへの参照手段を得てもよ
い。At S83, one edge event is extracted. Then, in S84, reference means to the edge counter area of the object corresponding to the edge event extracted in S83 is obtained. When only one drawing figure is being processed, this portion may be specified in the edge counter area determined from the beginning, and may be a fixed address or register. When a plurality of drawing figures are collectively scanned and converted, reference means such as an address to an edge counter corresponding to the figure including the extracted edge event is obtained. As an acquisition method, for example, when the address is directly described in the edge event, the address may be acquired. When an ID of a figure is described in the edge event, an inquiry may be made to a work area management mechanism (not shown) using the ID as a key to obtain reference means for a corresponding edge counter.
【0074】エッジカウンタ領域への参照手段を確保す
ると、S85において、参照手段を用いてエッジカウン
タ値CV1を取得する。そしてS86において、エッジ
イベントに記されている値(値S、値T、値Uのいずれ
か)を取り出し、エッジカウンタの値CV1に加算し、
さらにマスク処理を施して、新しいエッジカウンタ値C
V2として登録する。ここで、マスク処理において用い
るマスクとしては、例えば図15に示した値を用いる場
合には例えば0xffff7fffを用いることができ
る。また、以下の説明において、演算前のエッジカウン
タ値CV1を前カウンタ値、演算後の新しいエッジカウ
ンタ値CV2を新カウンタ値と呼ぶことがある。When the means for referring to the edge counter area is secured, in step S85, the edge counter value CV1 is obtained using the means for referring. Then, in S86, the value (one of the values S, T, and U) described in the edge event is extracted and added to the value CV1 of the edge counter.
Further, mask processing is performed to obtain a new edge counter value C
Register as V2. Here, as the mask used in the mask processing, for example, when the values shown in FIG. 15 are used, for example, 0xffff7fff can be used. In the following description, the edge counter value CV1 before the operation may be referred to as a previous counter value, and the new edge counter value CV2 after the operation may be referred to as a new counter value.
【0075】S87において、前カウンタ値CV1と新
カウンタ値CV2が0であるか否かを判定し、図形の内
外判定を行う。前カウンタ値CV1が0であり、新カウ
ンタ値CV2が0でない場合、そのエッジイベントに対
応する描画オブジェクトは外側の状態から内側の状態に
入ったものと判定する。そしてS88において、当該図
形の描画範囲の開始処理を行う。また、前カウンタ値C
V1が0ではなく、新カウンタ値CV2が0である場合
には、そのエッジイベントに対応する描画オブジェクト
はその位置で内側の状態から外側の状態に移ったと判定
する。この場合には、S89において、当該図形の描画
範囲の終了処理を行う。それ以外の場合には、描画範囲
外が続く場合、あるいは描画範囲内が続く場合であるの
で、そのままの状態を保持する。In S87, it is determined whether the previous counter value CV1 and the new counter value CV2 are 0, and the inside / outside of the figure is determined. When the previous counter value CV1 is 0 and the new counter value CV2 is not 0, it is determined that the drawing object corresponding to the edge event has entered the inside state from the outside state. Then, in S88, a process of starting the drawing range of the figure is performed. Also, the previous counter value C
If V1 is not 0 and the new counter value CV2 is 0, it is determined that the drawing object corresponding to the edge event has shifted from the inside state to the outside state at that position. In this case, in S89, a process of ending the drawing range of the figure is performed. In other cases, since the outside of the drawing range continues or the inside of the drawing range continues, the state is kept as it is.
【0076】この処理において、描画オブジェクトが1
つだけの場合にはエッジイベント内に特にどの描画オブ
ジェクトのイベントであるかを示す情報は必要ない。し
かし、複数の描画オブジェクトを一度にまとめて処理す
るためには、対応する描画オブジェクトのエッジカウン
タを参照するための情報を、各エッジイベントに持たせ
る必要がある。これは例えば、描画オブジェクトのID
番号を各エッジイベントに持たせる方法から、描画オブ
ジェクトのエッジカウンタのアドレスを直接エッジイベ
ント内に持たせる方法まで、さまざまな方法を用いるこ
とができる。In this processing, the drawing object is 1
In the case where there is only one, there is no need to provide information indicating which drawing object is the event in the edge event. However, in order to process a plurality of drawing objects at once, each edge event needs to have information for referring to the edge counter of the corresponding drawing object. This is, for example, the ID of the drawing object
Various methods can be used, from a method of assigning a number to each edge event to a method of assigning the address of the edge counter of the drawing object directly to the edge event.
【0077】以上のようにして、例えば図14に示した
ような処理によって生成したエッジイベントから、1つ
の走査線スリットにおける走査変換処理を行うことがで
きる。このとき、エッジイベントに例えば図15に示す
ようなデータを付加しておくことによって、上述のよう
に演算処理と演算前後の値が0か否かを判定するだけ
で、図形の内外判定を行うことができる。As described above, the scan conversion processing in one scanning line slit can be performed from the edge event generated by the processing as shown in FIG. 14, for example. At this time, by adding data as shown in FIG. 15, for example, to the edge event, the inside / outside determination of the figure is performed only by determining whether or not the values before and after the calculation processing and the calculation are 0 as described above. be able to.
【0078】以下、上述の走査変換部7における処理の
一例について、具体例を用いながら説明する。図17
は、対応規則Aに従う場合の走査変換処理の具体例の説
明図である。ここでは、図9に示した形状データから作
成された、図10に示すようなスキャンエッジデータを
もとに、走査変換処理を行う場合について説明する。Hereinafter, an example of the processing in the above-described scan conversion unit 7 will be described using a specific example. FIG.
FIG. 9 is an explanatory diagram of a specific example of the scan conversion process in the case of complying with the correspondence rule A. Here, a case where a scan conversion process is performed based on scan edge data as shown in FIG. 10 created from the shape data shown in FIG. 9 will be described.
【0079】図17(A)が図10に示すスキャンエッ
ジデータから生成されるエッジイベントの概念図であ
る。スキャンエッジデータEAa〜EAfのそれぞれに
対して、走査線スリットごとにスリット基準線(ここで
は各走査線スリットの中央の線とした)との交点の位置
にエッジイベントを発生させる。FIG. 17A is a conceptual diagram of an edge event generated from the scan edge data shown in FIG. For each of the scan edge data EAa to EAf, an edge event is generated for each scanning line slit at the position of the intersection with a slit reference line (here, the center line of each scanning line slit).
【0080】例えば、スリットaにおいて、スキャンエ
ッジデータEAaとスリット基準線との交点の位置にエ
ッジイベントFAaが、スキャンエッジデータEAfと
スリット基準線の交点の位置にエッジイベントFAbが
生成され、登録される。実際には、後の処理の都合によ
り交点の座標値に多少の演算を施した値を、登録時の位
置とする。この例では、演算としてfloor(交点の
座標値+0.5)を施す。この演算を施すことにより、
各ドットの中心の位置での内外判定を行うことができる
ようになる。この結果、エッジイベントFAaはX座標
値3の位置に、エッジイベントFAbはX座標値4の位
置に登録される。For example, in the slit a, an edge event FAa is generated at the position of the intersection of the scan edge data EAa and the slit reference line, and an edge event FAb is generated and registered at the position of the intersection of the scan edge data EAf and the slit reference line. You. In practice, a value obtained by performing some calculation on the coordinate value of the intersection for the sake of later processing is used as the position at the time of registration. In this example, floor (coordinate value of intersection point + 0.5) is applied as an operation. By performing this operation,
The inside / outside judgment can be performed at the center position of each dot. As a result, the edge event FAa is registered at the position of the X coordinate value 3, and the edge event FAb is registered at the position of the X coordinate value 4.
【0081】また、エッジイベントの登録の際に、図1
5に示した値のいずれかが付加される。図14に示した
処理に従い、対応規則Aではエッジイベントに値Uを付
加する。このとき、スリット基準線と交差する方向に応
じて、上向き、あるいは下向きの値が付加される。例え
ばエッジイベントFAaには、下向きの値Uが付加され
る。図15より、NZのときは0xffff0000、
EOのときは0x80000000が付加されることに
なる。なお図17(A)において、この値が付加される
エッジイベントには下向きの矢線により示している。ま
た、例えばエッジイベントFAbには、上向きの値Uが
付加される。図15より、NZの時は0x000100
00、EOの時は0x80000000が付加されるこ
とになる。なお図17(A)において、この値が付加さ
れるエッジイベントには上向きの矢線により示してい
る。Also, when registering an edge event, FIG.
One of the values shown in FIG. According to the processing shown in FIG. 14, the value U is added to the edge event in the correspondence rule A. At this time, an upward or downward value is added according to the direction intersecting the slit reference line. For example, a downward value U is added to the edge event FAa. From FIG. 15, 0xffff0000 for NZ,
In the case of EO, 0x80000000 is added. In FIG. 17A, the edge event to which this value is added is indicated by a downward arrow. For example, an upward value U is added to the edge event FAb. From FIG. 15, 0x000100 for NZ
In the case of 00 and EO, 0x80000000 is added. In FIG. 17A, an edge event to which this value is added is indicated by an upward arrow.
【0082】そして、例えばスリットaについて左から
順にエッジイベントを走査すると、座標値2の位置まで
はエッジカウンタは初期化されたままの0である。座標
値3の位置でエッジイベントFAaに付加された値(N
Zのときは0xffff0000、EOのときは0x8
0000000)が加算され、マスク0xffff7f
ffとのアンド演算(マスク処理)を行う。この演算結
果を新たにエッジカウンタとして登録される。また、こ
の演算結果は0ではない。従って、座標値3の位置から
この図形は内側の状態になる。Then, for example, when the edge event is scanned in order from the left with respect to the slit a, the edge counter remains 0 as initialized until the position of the coordinate value 2. The value added to the edge event FAa at the position of the coordinate value 3 (N
0xffff0000 for Z, 0x8 for EO
000000) is added and the mask 0xffff7f
An AND operation (mask processing) with ff is performed. This calculation result is newly registered as an edge counter. The result of this operation is not zero. Therefore, this figure is in an inner state from the position of the coordinate value 3.
【0083】X座標値4において、エッジカウンタの値
に、エッジイベントFAbに付加された値(NZの時は
0x00010000、EOの時は0x8000000
0)が加算され、マスク0xffff7fffとのAN
D演算によりマスク処理を行う。この演算の結果は、0
になる。従って、X座標値4の位置からは、再度、図形
の外側の状態になる。このようにして、スリットaにつ
いてはX座標値3からX座標値4までが図形内であると
判定される。これにより、図17(B)にハッチングを
施して示すように、スリットaについてはX座標値3か
らX座標値4までが塗りつぶされる。In the X coordinate value 4, the value of the edge event FAb is added to the value of the edge counter (0x00010000 for NZ, 0x8000000 for EO).
0) is added, and an AND with the mask 0xffff7fff is added.
Mask processing is performed by the D operation. The result of this operation is 0
become. Therefore, from the position of the X coordinate value 4, the state is again outside the figure. In this way, for slit a, it is determined that the range from X coordinate value 3 to X coordinate value 4 is within the figure. As a result, as shown by hatching in FIG. 17B, the slit a is filled with the X coordinate value 3 to the X coordinate value 4.
【0084】スリットb、スリットc、スリットdにお
いても同様に処理が行われ、塗りつぶされるドットは図
17(B)においてハッチングを施したドットとなる。
このようにして、対応規則Aに従った塗りつぶし時の内
外判定および塗りつぶし処理を行うことができる。The same processing is performed for the slits b, c and d, and the dots to be filled are the hatched dots in FIG. 17B.
In this manner, the inside / outside judgment and the filling process can be performed when the filling is performed according to the correspondence rule A.
【0085】図18は、対応規則Bに従う場合に走査変
換処理で生成されるエッジイベントの一例の説明図、図
19は、同じくスリットbでの塗りつぶし処理の一例の
説明図、図20は、同じく塗りつぶされるドットの一例
の説明図である。ここでは、図9に示した形状データか
ら作成された、図11に示すようなスキャンエッジデー
タをもとに、走査変換処理を行う場合について説明す
る。なお、ここでは説明を簡単にするため、非ゼロ巻き
線ルールに従うものとした。FIG. 18 is an explanatory diagram of an example of an edge event generated by the scan conversion process when the corresponding rule B is followed, FIG. 19 is an explanatory diagram of an example of a filling process at the slit b, and FIG. FIG. 4 is an explanatory diagram of an example of a dot to be painted. Here, a case where scan conversion processing is performed based on scan edge data as shown in FIG. 11 created from the shape data shown in FIG. 9 will be described. Here, for simplicity of description, the non-zero winding rule is followed.
【0086】各走査線スリットにおいて、1スキャンエ
ッジデータに対してはその左右端にエッジイベントが生
成される。また、Nスキャンエッジデータに対しては各
走査線スリットごとに、その左右端にエッジイベントが
生成される。そして、各エッジイベントには、それぞ
れ、図15に示す値のいずれかが付加される。In each scanning line slit, edge events are generated at the left and right ends of one scan edge data. For N scan edge data, edge events are generated at the left and right ends of each scanning line slit. Then, one of the values shown in FIG. 15 is added to each edge event.
【0087】スリットaには、1スキャンエッジデータ
EBaとEBiが存在する。1スキャンエッジデータの
場合には、図14に示す処理に従い、その左座標に値S
が、右座標に値Tがそれぞれエッジイベントに付加され
る。これらのスキャンエッジデータの向きは無しである
から、1スキャンエッジデータEBaとEBiの左座標
に0x00000001が、また右座標に0x0000
7fffがそれぞれ付加される。なお、図18,図19
において、0x00000001が付加されるエッジイ
ベントの位置に‘[’を、また0x00007fffが
付加されるエッジイベントの位置に‘]’を付して示し
ている。The slit a has one-scan edge data EBa and EBi. In the case of one scan edge data, the value S is added to the left coordinate according to the process shown in FIG.
Is added to the edge event with a value T at the right coordinate. Since there is no direction of these scan edge data, 0x00000001 is set to the left coordinate of 1 scan edge data EBa and EBi, and 0x0000 is set to the right coordinate.
7fff are respectively added. 18 and FIG.
, “[” Is added to the position of the edge event to which 0x00000001 is added, and “]” is added to the position of the edge event to which 0x00007ffff is added.
【0088】次にスリットbについて、図19を用いて
説明する。まず図11に示すNスキャンエッジデータE
Bbについては、図14の処理に従い、上下端でのX座
標を算出し、X座標の小さい方に値Sを付加したエッジ
イベントを生成し、X座標の大きい方に値Tを付加した
エッジイベントを生成する。NスキャンエッジデータE
Bbの方向は下向きであるから、図15より値Sとして
0xffff0001が、また値Tとして0x0000
7fffがエッジイベントに付加される。図18,図1
9では、それぞれのエッジイベントの位置に、‘[’に
下向きの矢線、‘]’に下向きの矢線の記号を付して示
している。Next, the slit b will be described with reference to FIG. First, the N scan edge data E shown in FIG.
For Bb, the X-coordinates at the upper and lower ends are calculated according to the processing of FIG. 14, an edge event is generated by adding a value S to the smaller X-coordinate, and an edge event is generated by adding a value T to the larger X-coordinate. Generate N scan edge data E
Since the direction of Bb is downward, the value S is 0xffff0001 and the value T is 0x0000 from FIG.
7fff is added to the edge event. FIG. 18, FIG.
In FIG. 9, the position of each edge event is indicated by adding a symbol of a downward arrow to “[” and a symbol of a downward arrow to “]”.
【0089】この2つのエッジイベントを登録する際に
は、次のようにする。まずX座標の小さい方、すなわち
左端を表しているエッジイベントは、その座標値の小数
部を切り捨てて整数値にまるめた位置に登録する。ま
た、X座標の大きい方、すなわち右端を表しているエッ
ジイベントは、その座標値を丸めた後、1を加えた位置
に登録する。これによって、NスキャンエッジデータE
Bbの左端のエッジイベントはX座標1の位置に登録さ
れ、右端のエッジイベントはX座標3の位置に登録され
る。When registering these two edge events, the following is performed. First, the edge event representing the smaller X coordinate, that is, the edge event representing the left end, is registered at a position where the decimal part of the coordinate value is rounded down to an integer value. The edge event representing the larger X coordinate, that is, the edge event representing the right end, is registered at a position obtained by adding 1 after rounding the coordinate value. Thereby, the N scan edge data E
The edge event at the left end of Bb is registered at the position of X coordinate 1, and the edge event at the right end is registered at the position of X coordinate 3.
【0090】またNスキャンエッジデータEBhについ
ても同様であるが、方向が上向きであるから、図15よ
り値Sとして0x00010001が、また値Tとして
0x00007fffがエッジイベントに付加される。
図18,図19では、それぞれのエッジイベントの位置
に、‘[’に上向きの矢線、‘]’に上向きの矢線の記
号を付して示している。このNスキャンエッジデータE
Bhに対応する左端のエッジイベントはX座標2の位置
に登録され、右端のエッジイベントはX座標4の位置に
登録される。The same applies to the N scan edge data EBh. However, since the direction is upward, 0x00010001 is added to the edge event as the value S and 0x00007ffff is added to the edge event as the value T from FIG.
In FIGS. 18 and 19, the position of each edge event is indicated by attaching a symbol of an upward arrow to “[” and an arrow of an upward arrow to “]”. This N scan edge data E
The left edge event corresponding to Bh is registered at the position of X coordinate 2, and the right edge event is registered at the position of X coordinate 4.
【0091】さらに1スキャンエッジデータEBfにつ
いては、スリットaの場合と同様に、左右端にエッジイ
ベントが生成される。付加される値は上述の通りであ
る。Further, for one scan edge data EBf, edge events are generated at the left and right ends, as in the case of slit a. The value to be added is as described above.
【0092】このようにして、スリットbにおけるエッ
ジイベントの生成処理が終了する。このとき、図19
(A)に示すような位置に発生するエッジイベントは、
それぞれ、図19(B)に示す位置に登録される。な
お、スリットc、スリットdについても同様にして処理
が行われ、それぞれ図18に記号で示す値が付加された
エッジイベントが生成される。Thus, the process of generating the edge event in the slit b is completed. At this time, FIG.
An edge event occurring at a position as shown in FIG.
Each is registered at the position shown in FIG. The same processing is performed for the slit c and the slit d, and an edge event to which a value indicated by a symbol in FIG. 18 is added is generated.
【0093】次に、このようにして登録されたエッジイ
ベントをもとに、図形の内外判定および塗りつぶし処理
を行うことになる。スリットaについては、X座標値2
まではエッジカウンタは0である。X座標値2において
エッジイベントに付加されている値0x0000000
1が加算されて、エッジカウンタが更新される。このと
き、0から0以外の値に変化するので、描画範囲の開始
点となる。X座標3においてエッジイベントに付加され
ている値0x00000001が加算され、エッジカウ
ンタの値は0x00000002となるが、0以外の値
のまま変化しないので、描画範囲のまま維持される。X
座標4において、2つのエッジイベントに付加されてい
る値0x00007fffが加算され、0x00008
000となるが、マスク0xffff7fffとの論理
積演算により0となる。これによりエッジカウンタの値
が0以外から0へ変化するので、X座標値4が描画範囲
の終了点となる。Next, based on the edge events registered in this way, the inside / outside determination of the figure and the painting process are performed. For the slit a, the X coordinate value 2
Until then, the edge counter is 0. Value 0x00000000 added to edge event at X coordinate value 2
1 is added, and the edge counter is updated. At this time, since it changes from 0 to a value other than 0, it becomes the starting point of the drawing range. At the X coordinate 3, the value 0x00000001 added to the edge event is added, and the value of the edge counter becomes 0x00000002. However, since the value remains at a value other than 0, the drawing range is maintained. X
At coordinate 4, the value 0x00007ffff added to the two edge events is added, and 0x00008 is added.
Although it becomes 000, it becomes 0 by the AND operation with the mask 0xffff7fff. As a result, the value of the edge counter changes from a value other than 0 to 0, so that the X coordinate value 4 becomes the end point of the drawing range.
【0094】スリットbについて、図19を用いて説明
する。上述のように、図19(B)のように登録された
エッジイベントを1つずつ取り出して、エッジカウンタ
の値に加算してゆく。X座標値1において、エッジカウ
ンタの値は0xffff0001となり、0から0以外
の値に変更される。これによりX座標値1が描画処理の
開始点となる。X座標値2ではエッジイベントに付加さ
れた値0x00010001がエッジカウンタの値に加
算され、0x00000002が新たなエッジカウンタ
の値となる。ここでは0以外の値が続くため、描画範囲
内となる。X座標値3では、エッジイベントに付加され
た値0x00007fffがエッジカウンタの値に加算
され、0x00008001となるが、マスク0xff
ff7fffとの論理積演算により0x0000000
1が新たなエッジカウンタの値となる。ここでも0以外
の値が続くため、描画範囲内となる。さらに、X座標値
4では、エッジイベントに付加された値0x00007
fffがエッジカウンタの値に加算され、0x0000
8000となるが、マスク0xffff7fffとの論
理積演算により0x00000000が新たなエッジカ
ウンタの値となる。エッジカウンタの値が0以外の値か
ら0に変化するので、X座標値4が描画範囲の終了点と
なる。The slit b will be described with reference to FIG. As described above, edge events registered as shown in FIG. 19B are extracted one by one and added to the value of the edge counter. At the X coordinate value 1, the value of the edge counter is 0xffff0001, which is changed from 0 to a value other than 0. Thus, the X coordinate value 1 becomes the starting point of the drawing process. At the X coordinate value 2, the value 0x00010001 added to the edge event is added to the value of the edge counter, and 0x00000002 becomes the value of the new edge counter. Here, since a value other than 0 continues, it is within the drawing range. At the X coordinate value 3, the value 0x00007ffff added to the edge event is added to the value of the edge counter to be 0x00008001, but the mask 0xff
0x00000000 by AND operation with ff7fff
1 becomes the value of the new edge counter. Here, since a value other than 0 continues, it is within the drawing range. Further, in the X coordinate value 4, the value 0x00007 added to the edge event
fff is added to the value of the edge counter and 0x0000
The value becomes 8000, and 0x00000000 becomes a new edge counter value by a logical AND operation with the mask 0xffff7fff. Since the value of the edge counter changes from a value other than 0 to 0, the X coordinate value 4 is the end point of the drawing range.
【0095】さらに、X座標値5では、エッジイベント
に付加された値0x00000001がエッジカウンタ
の値に加算されて0から0以外の値に変化し、X座標値
5が描画範囲の開始点となる。また、X座標値6では、
エッジイベントに付加された値0x00007fffが
エッジカウンタの値に加算され、0x00008000
となるが、マスク0xffff7fffとの論理積演算
により0x00000000となり、エッジカウンタの
値が0以外の値から0に変化する。これにより、X座標
値6が描画範囲の終了点となる。Further, at the X coordinate value 5, the value 0x00000001 added to the edge event is added to the value of the edge counter to change from 0 to a value other than 0, and the X coordinate value 5 becomes the starting point of the drawing range. . In the X coordinate value 6,
The value 0x000007fff added to the edge event is added to the value of the edge counter, and 0x00008000
However, the AND operation with the mask 0xffff7fff gives 0x00000000, and the value of the edge counter changes from a value other than 0 to 0. As a result, the X coordinate value 6 becomes the end point of the drawing range.
【0096】このようなエッジカウンタの変化を図19
(C)に示している。また、上述のようにして得られた
描画範囲の開始点から終了点の1つ前までを塗りつぶす
ことによって、スリットbについては図19(D)に示
すような塗りつぶし結果が得られる。FIG. 19 shows such a change of the edge counter.
It is shown in FIG. Further, by filling the drawing range obtained as described above from the start point to immediately before the end point, a fill result as shown in FIG. 19D is obtained for the slit b.
【0097】同様の処理を、スリットcおよびスリット
dについても行う。これらの処理によって、図20に示
すような塗りつぶし結果を得ることができる。The same processing is performed for the slit c and the slit d. Through these processes, a painting result as shown in FIG. 20 can be obtained.
【0098】図21は、対応規則Cに従う場合に走査変
換処理で生成されるエッジイベントの一例の説明図、図
22は、同じくスリットcでの塗りつぶし処理の一例の
説明図、図23は、同じく塗りつぶされるドットの一例
の説明図である。ここでは、図9に示した形状データか
ら作成された、図12に示すようなスキャンエッジデー
タをもとに、走査変換処理を行う場合について説明す
る。なお、ここでは説明を簡単にするため、非ゼロ巻き
線ルールに従うものとした。FIG. 21 is an explanatory diagram of an example of an edge event generated in the scan conversion process in the case of conforming to the correspondence rule C, FIG. 22 is an explanatory diagram of an example of a filling process in the slit c, and FIG. FIG. 4 is an explanatory diagram of an example of a dot to be painted. Here, a case where scan conversion processing is performed based on scan edge data as shown in FIG. 12 created from the shape data shown in FIG. 9 will be described. Here, for simplicity of description, the non-zero winding rule is followed.
【0099】各走査線スリットにおいて、1スキャンエ
ッジデータに対してはその左右端にエッジイベントが生
成される。また、Nスキャンエッジデータに対しては各
走査線スリットごとに、ドットに内接する菱形と交わる
左端の位置と右端の位置にエッジイベントが生成され
る。そして、各エッジイベントには、それぞれ、図15
に示す値のいずれかが付加される。なお、図21,図2
2においても図18,図19に示した記号と同じ記号を
用い、付加される値を示している。In each scanning line slit, edge events are generated at the left and right ends of one scan edge data. For N scan edge data, an edge event is generated for each scanning line slit at the left end position and the right end position intersecting the diamond inscribed in the dot. Then, each edge event is shown in FIG.
Is added. 21 and 2
2, the same symbols as those shown in FIGS. 18 and 19 are used to indicate added values.
【0100】各走査線スリットにおけるエッジイベント
の生成処理は、Nスキャンエッジデータに対して生成す
るエッジイベントの位置を調整する以外は、上述の対応
規則Bの場合と同様である。図21に各記号で示した位
置にエッジイベントが発生する。これらのエッジイベン
トを、上述の対応規則Bの場合と同様に、左端を表して
いるエッジイベントはその座標値の小数点以下を切り捨
てた位置に、また右端を表しているエッジイベントはそ
の座標値を丸めた後、1を加えた位置に登録する。The process of generating an edge event in each scanning line slit is the same as that of the above-described correspondence rule B except that the position of the edge event generated with respect to the N scan edge data is adjusted. An edge event occurs at the position indicated by each symbol in FIG. As in the case of the above-described correspondence rule B, these edge events are set at the position where the leftmost edge event is rounded down to the decimal point of the coordinate value, and the rightmost edge event is set at the position where the coordinate value is truncated. After rounding, register at the position where 1 has been added.
【0101】ここでは特に、スリットcについて説明す
る。図22(A)に示すように、1スキャンエッジデー
タECc、ECg、およびNスキャンエッジデータEC
eから、それぞれの左右端の位置にエッジイベントを生
成する。これらのエッジイベントは図22(B)に示す
X座標値のところに登録される。Here, the slit c will be particularly described. As shown in FIG. 22A, one scan edge data ECc and ECg, and N scan edge data EC
From e, an edge event is generated at each of the left and right end positions. These edge events are registered at the X coordinate values shown in FIG.
【0102】そして、図中の左端から、エッジイベント
を一つずつ取り出して、エッジカウンタの値に加算し、
マスク0xffff7fffとの論理積演算を施して更
新していく。まずX座標値1では、エッジイベントに付
加された値0xffff0001がエッジカウンタに加
算され、値が0から0以外に変化する。そのためX座標
値1が描画処理の開始点となる。Then, edge events are extracted one by one from the left end in the figure and added to the value of the edge counter.
Update is performed by performing a logical AND operation with the mask 0xffff7fff. First, at the X coordinate value 1, the value 0xffff0001 added to the edge event is added to the edge counter, and the value changes from 0 to a value other than 0. Therefore, the X coordinate value 1 is the starting point of the drawing process.
【0103】次にX座標値2では、3つのエッジイベン
トが存在する。これらのエッジイベントに付加されてい
る値0x00007fff、0x00000001、0
x00010001を、順次、エッジカウンタに加算し
てはマスク0xffff7fffとの論理積演算を施す
ことを繰り返すことにより、0x00000002が得
られる。0以外の値が続くので、そのまま描画処理を行
う領域となる。Next, at the X coordinate value 2, there are three edge events. The values 0x00007ffff, 0x00000001, 0 added to these edge events
By sequentially adding x00010001 to the edge counter and repeatedly performing the AND operation with the mask 0xffff7fff, 0x00000002 is obtained. Since a value other than 0 continues, the area is directly subjected to the drawing processing.
【0104】さらにX座標値5では、エッジイベントに
付加された値0x00007fffがエッジカウンタの
値0x00000002に加算され、さらにマスク0x
ffff7fffとの論理積演算を施して0x0000
0001が得られる。0以外の値が続くので、そのまま
描画処理を行う領域となる。At the X coordinate value 5, the value 0x00007ffff added to the edge event is added to the value 0x00000002 of the edge counter, and the mask 0x00000002
Perform logical AND operation with ffff7fff to obtain 0x0000
0001 is obtained. Since a value other than 0 continues, the area is directly subjected to the drawing processing.
【0105】X座標値6では、エッジイベントに付加さ
れた値0x00007fffがエッジカウンタの値0x
00000001に加算され、さらにマスク0xfff
f7fffとの論理積演算を施して0x0000000
0が得られる。これによりエッジカウンタの値は0以外
の値から0に変化するので、X座標値6が描画処理の終
了点となる。At the X coordinate value 6, the value 0x00007ffff added to the edge event is set to the value 0x0000 of the edge counter.
00000001 and a mask 0xffff
Perform a logical product operation with f7ffff to obtain 0x00000000
0 is obtained. As a result, the value of the edge counter changes from a value other than 0 to 0, so that the X coordinate value 6 is the end point of the drawing process.
【0106】このようにして、図22(D)に示すよう
にX座標値が1〜5(終了点の1つ手前まで)の範囲が
塗りつぶされる。他の走査線スリットについても同様に
処理が行われ、図23に示すように塗りつぶし処理が行
われる。In this way, as shown in FIG. 22D, the range of the X coordinate value of 1 to 5 (up to one immediately before the end point) is painted out. The same processing is performed for the other scanning line slits, and the filling processing is performed as shown in FIG.
【0107】以上の具体例からも示されるように、本発
明においては、対応規則A,対応規則B、対応規則Cの
ように境界線データと塗りつぶしドットの対応の定義が
異なっていても、形状加工部5と、走査変換部7のエッ
ジイベントを発生させる段階でその違いを吸収する。こ
れによって、実際に走査変換部7で内外判定の処理を行
う段階では、ドット位置対応の違いに関係なく、統一的
に処理を行うことができる。As can be seen from the above specific examples, according to the present invention, even if the definition of the correspondence between the boundary data and the filled dots is different as in the case of the corresponding rule A, the corresponding rule B, and the corresponding rule C, The difference is absorbed at the stage of generating the edge event between the processing unit 5 and the scan conversion unit 7. Thus, at the stage where the scan conversion unit 7 actually performs the inside / outside determination processing, the processing can be uniformly performed regardless of the difference in the correspondence between the dot positions.
【0108】また、上述の例では、各対応規則がそれぞ
れ独立に現れている場合について説明しているが、これ
らの対応規則を混在させても、同様に処理を行うことが
できる。以下、対応規則を混在させた場合の具体例を示
す。図24は、図形の別の具体例の説明図である。ここ
では図24に示すように、図形ZA、図形ZBを描画対
象とする場合を想定する。ここで、図形ZAは上述の対
応規則Bに従い、図形ZBは対応規則Aに従ってドット
との対応がとられるものとする。ここで、図形ZBの辺
の一部を規則Cに従う例を示す。Further, in the above-described example, the case where each corresponding rule appears independently is described. However, even when these corresponding rules are mixed, the same processing can be performed. Hereinafter, a specific example in which the corresponding rules are mixed will be described. FIG. 24 is an explanatory diagram of another specific example of the graphic. Here, as shown in FIG. 24, it is assumed that a figure ZA and a figure ZB are to be drawn. Here, it is assumed that the figure ZA conforms to the above-described correspondence rule B, and the figure ZB conforms to the dots according to the correspondence rule A. Here, an example is shown in which a part of the side of the figure ZB complies with the rule C.
【0109】2つの図形の重ね塗りの順は、図形ZAの
上に図形ZBが重ねられるものとする。この重ね塗りを
実際に制御する部分については、従来から用いられてい
る技術を適用することができるので、ここでは説明を省
略する。The order of overpainting of two figures is that figure ZB is overlaid on figure ZA. For the part that actually controls the overcoating, a conventionally used technique can be applied, and thus the description is omitted here.
【0110】図25は、図形の別の具体例において、各
図形を構成するエッジの説明図である。図24に示した
図形ZAは、図25に示すように、エッジZAEA,Z
AEB,ZAECの3つのエッジから構成される3角形
図形である。また図形ZBは、エッジZBEA,ZBE
B,ZBEC,ZBED,ZBEEの5つのエッジから
構成される図形である。ここで、図形ZBの細い部分の
抜けを防ぐため、エッジZBECだけに対して規則Cに
準じた処理を行わせる。FIG. 25 is an explanatory diagram of edges forming each figure in another specific example of the figure. The figure ZA shown in FIG. 24 has edges ZAEA, Z as shown in FIG.
It is a triangular figure composed of three edges of AEB and ZAEC. The figure ZB is represented by edges ZBEA, ZBE
It is a figure composed of five edges B, ZBEC, ZBED, and ZBEE. Here, in order to prevent the thin portion of the figure ZB from being omitted, the processing according to the rule C is performed only on the edge ZBEC.
【0111】図26は、図形の別の具体例から得られる
スキャンエッジデータの一例の説明図である。図25に
示したようなエッジからなる2つの図形の形状データか
ら、それぞれ、形状加工部5によりスキャンエッジデー
タが生成されて形状データ蓄積部6に蓄積される。FIG. 26 is an explanatory diagram of an example of scan edge data obtained from another specific example of a figure. From the shape data of the two figures composed of edges as shown in FIG. 25, scan edge data is generated by the shape processing unit 5 and stored in the shape data storage unit 6, respectively.
【0112】まず図形ZAについては、前述した対応規
則Bに従う図形の処理と同様にして1スキャンエッジデ
ータ(向き無し)ZAFA,ZAFC,ZAFEと下向
きの方向を持った1スキャンエッジデータZAFB、そ
して、上向きの方向を持ったNスキャンエッジデータZ
AFDが生成される。First, for the figure ZA, one scan edge data (no direction) ZAFA, ZAFC, and ZAFE, one scan edge data ZAFB having a downward direction, and the same as in the processing of the figure according to the above-described correspondence rule B, and N-scan edge data Z with upward direction
AFD is generated.
【0113】図形ZBについては、Nスキャンエッジデ
ータZBFA,ZBFB,ZBFF,ZBFGは、エッ
ジZBEA,ZBEB,ZBED,ZBEEからそのま
ま作成される。また、エッジZBECから、1スキャン
エッジデータZBFC、ZBFEとNスキャンエッジデ
ータZBFDが作成される。このとき、エッジZBEC
は対応規則Cでの処理に準じて生成されるのではある
が、1スキャンエッジの方向の決め方だけが、図形ZB
全体が従っている規則Aに従って決められる。すなわ
ち、スリット基準線である一点鎖線と交差しているか否
かとその向きと回数によって、方向が決められることに
なる。具体的にはスリットbにおいて、エッジZBEC
はスリット基準線と交差していないので、1スキャンエ
ッジデータZBFEは向き無しとなる。これに対し、ス
リットdでは、エッジZBECはスリット基準線と交差
しており、その向きが下向きであることから、1スキャ
ンエッジデータZBFCは下向きとなる。なお、対応規
則B、対応規則Cにおいてのスリット基準線を仮想的に
用いて、同様の処理によって1スキャンエッジデータの
向きを決定することは可能である。For the figure ZB, the N scan edge data ZBFA, ZBFB, ZBFF, ZBFG are created as they are from the edges ZBEA, ZBEB, ZBED, ZBEE. Also, one-scan edge data ZBFC and ZBFE and N-scan edge data ZBFD are created from the edge ZBEC. At this time, the edge ZBEC
Is generated according to the processing in the correspondence rule C, but only the method of determining the direction of one scan edge
Determined according to Rule A, which the whole follows. That is, the direction is determined depending on whether or not it intersects with the one-dot chain line as the slit reference line, and the direction and number of times. Specifically, in the slit b, the edge ZBEC
Does not intersect the slit reference line, the one-scan edge data ZBFE has no direction. On the other hand, in the slit d, the edge ZBEC intersects with the slit reference line and its direction is downward, so that the one-scan edge data ZBFC is downward. In addition, it is possible to determine the direction of one scan edge data by similar processing using the slit reference lines in the correspondence rules B and C virtually.
【0114】図27は、図形の別の具体例においてスキ
ャンエッジデータから求めるエッジイベントの一例の説
明図である。上述のようにしてスキャンエッジデータを
求めた後、これらを用いてエッジイベントを生成する。
図27では、スリットcについてのみ、エッジイベント
を示している。エッジイベントの登録位置についてはそ
れまでの例と同様であり、ZBFDS,ZBFDTのX
座標の位置が4,5の位置によっている点についても、
対応規則Cのところでの説明した通りである。なお、こ
こでは図形ZAについては非ゼロ巻線ルールを適用し、
図形ZBについては奇偶則を適用することとする。ま
た、各エッジイベントに付加する値は図15に示すもの
を用いる。FIG. 27 is an explanatory diagram of an example of an edge event obtained from scan edge data in another specific example of a figure. After obtaining the scan edge data as described above, an edge event is generated using these.
FIG. 27 shows an edge event only for the slit c. The registration position of the edge event is the same as in the previous examples, and the XBF of ZBFDS and ZBFDT is
Regarding the point where the coordinate position depends on the position of 4 or 5,
As described in the corresponding rule C. Here, the non-zero winding rule is applied to the figure ZA.
An odd-even rule is applied to the figure ZB. Also, values shown in FIG. 15 are used as values added to each edge event.
【0115】図形ZAの1スキャンエッジデータZAF
Bから、その左端のエッジイベントZAFBS(値S下
向きNZ:0xffff0001)と、右端のエッジイ
ベントZAFBT(値T下向きNZ:0x00007f
ff)が生成され、それぞれX座標値1とX座標値3
(前述したとおり、右側のエッジイベントの登録位置
は、1つ右側にずれる)に登録される。またNスキャン
エッジデータZAFDから、その左端のエッジイベント
ZAFDS(値S上向きNZ:0x00010001)
と、右端のエッジイベントZAFDT(値T上向きN
Z:0x00007fff)が生成され、それぞれX座
標値1とX座標値4に登録される。One-scan edge data ZAF of figure ZA
From B, the left edge event ZAFBS (value S downward NZ: 0xffff0001) and the right edge event ZAFBT (value T downward NZ: 0x000007f)
ff) are generated, and the X coordinate value 1 and the X coordinate value 3 are respectively obtained.
(As described above, the registration position of the right edge event is shifted by one to the right). Further, from the N scan edge data ZAFD, an edge event ZAFDS at the left end thereof (value S upward NZ: 0x00010001)
And the right edge event ZAFDT (value T upward N
Z: 0x00007ffff) is generated and registered as X coordinate value 1 and X coordinate value 4, respectively.
【0116】図形ZBのNスキャンエッジデータZBF
Bから、エッジイベントZBFBU(値U上向きEO:
0x80000000)が生成され、X座標値1に登録
される。またNスキャンエッジデータZBFGから、エ
ッジイベントZBFGU(値U下向きEO:0x800
00000)が生成され、X座標値3(floor(ス
リット基準線との交点+0.5))に登録される。さら
に、NスキャンエッジデータZBFFから、エッジイベ
ントZBFFU(値U上向きEO:0x8000000
0)が生成され、X座標値4に登録される。N-scan edge data ZBF of figure ZB
From B, the edge event ZBFBU (value U upward EO:
0x80000000) is generated and registered as the X coordinate value 1. Further, from the N scan edge data ZBFG, an edge event ZBFGU (value U downward EO: 0x800
00000) is generated and registered at X coordinate value 3 (floor (intersection with slit reference line + 0.5)). Further, from the N scan edge data ZBFF, an edge event ZBFFU (value U upward EO: 0x80000000)
0) is generated and registered as the X coordinate value 4.
【0117】さらに、NスキャンエッジデータZBFD
から、対応規則Cの処理に従い、左端のエッジイベント
ZBFDS(値S下向きEO:0x80000001)
と、右端のエッジイベントZBFDT(値T下向きE
O:0x00007fff)が生成され、それぞれX座
標値4とX座標値5に登録される。なお図27では、こ
のエッジイベントZBFDSとZBFDTを、‘[’,
‘]’に縦棒‘|’を付した記号で示している。Further, N scan edge data ZBFD
From the left edge event ZBFDS (value S downward EO: 0x80000001) according to the processing of the corresponding rule C.
And the right edge event ZBFDT (value T downward E
O: 0x00007ffff) is generated and registered as X coordinate value 4 and X coordinate value 5, respectively. In FIG. 27, the edge events ZBFDS and ZBFDT are represented by '[',
']' Is indicated by a symbol with a vertical bar '|'
【0118】図28は、図形の別の具体例において、ス
リットcに登録されたエッジイベントと、エッジカウン
タの遷移および塗りつぶし結果の一例の説明図である。
X座標1では、図形ZAについてはエッジイベントZA
FBS,ZAFCが登録されている。ここで、図形ZA
のエッジカウンタ値は0→0xffff0001(ZA
FBS)→0x00000002(ZAFCS)と遷移
し、ここから図形ZAは内側の状態に遷移する。また、
X座標値1では、図形ZBについてエッジイベントZB
FBUも登録されており、図形ZBのエッジカウンタ値
は0→0x80000000(ZBFBU)となり、図
形ZBは内側の状態に遷移する。FIG. 28 is an explanatory diagram of an example of an edge event registered in the slit c and a result of transition of the edge counter and painting in another specific example of the figure.
At X coordinate 1, for the figure ZA, the edge event ZA
FBS and ZAFC are registered. Here, figure ZA
Is 0 → 0xffff0001 (ZA
FBS) → 0x00000002 (ZAFCS), from which the figure ZA transitions to an inner state. Also,
At the X coordinate value 1, the edge event ZB
The FBU is also registered, and the edge counter value of the figure ZB changes from 0 to 0x80000000 (ZBFBU), and the figure ZB transits to the inside state.
【0119】X座標値2では登録されているエッジイベ
ントが存在しないので処理は発生しない。At the X coordinate value 2, no registered edge event exists, so no processing occurs.
【0120】X座標値3では、図形ZAに関してエッジ
イベントZAFBTが登録されており、エッジカウンタ
値は0x00000001となり、内側の状態のままと
なる。図形ZBについては、エッジイベントZBFGU
が登録されており、そのカウンタ値が再び0に戻る。こ
の結果、図28(C)に示すように(1,2)、(2,
2)のドットは図形ZBの指定する色やパターンで塗り
つぶされることとなる。このとき、図形ZAが内側の状
態であるが、優先順位が低いため上塗りされることにな
る。もし、図形ZBが透過色など下の色を参照する場合
でも、この(1,2)、(2,2)の範囲では図形ZA
が内側の状態であり続けていることが確定しているの
で、その色やパターンなどを参照することが可能であ
る。At the X coordinate value 3, the edge event ZAFBT is registered for the figure ZA, the edge counter value is 0x00000001, and the state is kept inside. For the figure ZB, the edge event ZBFGU
Is registered, and the counter value returns to 0 again. As a result, as shown in FIG. 28C, (1, 2), (2,
The dot of 2) is filled with the color or pattern designated by the figure ZB. At this time, although the figure ZA is in the inside state, it is overpainted because the priority is low. Even if the figure ZB refers to a lower color such as a transparent color, the figure ZA falls within the range of (1, 2) and (2, 2).
Is determined to remain in the inside state, so that the color, pattern, and the like can be referred to.
【0121】X座標値4では、図形ZAに関してはエッ
ジイベントZAFCTが登録されており、これにより図
形ZAのエッジカウンタ値は再び0に戻る。そして図形
ZBに関してはエッジイベントZBFDSとXBFFU
が発生し、0→0x80000001(ZBFDS)→
0x00000001(ZAFFU)とカウンタ値が遷
移する。これにより、(4,2)の位置から図形ZBが
再び内側の状態に遷移することが決定される。また、図
28(C)においてハッチングを変えて示しているよう
に、(3,2)のドットが図形ZAの示す色やパターン
などで塗りつぶされることが決定する。At the X coordinate value 4, an edge event ZAFCT is registered for the figure ZA, whereby the edge counter value of the figure ZA returns to 0 again. For the figure ZB, the edge events ZBFDS and XBFFU
Occurs, and 0 → 0x80000001 (ZBFDS) →
The counter value changes to 0x00000001 (ZAFFU). As a result, it is determined that the figure ZB again transitions to the inner state from the position (4, 2). Further, as shown by changing the hatching in FIG. 28C, it is determined that the dot of (3, 2) is filled with the color or pattern shown by the figure ZA.
【0122】X座標値5ではエッジイベントZBFDT
が登録されているため、図形ZBのカウンタ値が再び0
に戻る。このため、図28(C)に示すように、(4,
2)のドットが図形ZBの示す色やパターンなどで塗り
つぶされることが決定する。At X coordinate value 5, edge event ZBFDT
Is registered, the counter value of FIG.
Return to For this reason, as shown in FIG.
It is determined that the dot of 2) is filled with the color or pattern indicated by the figure ZB.
【0123】なお、上述の例ではわかりやすいように、
図形ZA、図形ZBの順にエッジイベントを処理した
が、実際にはこのエッジイベントの取り出し処理される
順は入り組んでいてもかまわない。In the above example, for the sake of clarity,
Although the edge events are processed in the order of the graphic ZA and the graphic ZB, actually, the order in which the edge events are extracted may be complicated.
【0124】このように、1つの図形中に複数の対応規
則に従うエッジが同時に存在しても、統一的に処理する
ことができる。また、複数の図形を同時に処理すること
が可能であり、このとき、複数の対応規則に従う図形が
同時に存在する場合でも、上述のように統一的に処理す
ることができる。この処理中に、例えば特開平10−7
9038号公報に記載されているようなクリップ処理と
重なり処理を1回の走査でまとめて処理するものにも適
用可能である。As described above, even if an edge that conforms to a plurality of corresponding rules is simultaneously present in one figure, the processing can be performed in a unified manner. Also, a plurality of graphics can be processed at the same time, and at this time, even when a plurality of graphics complying with the corresponding rules are present at the same time, the processing can be uniformly performed as described above. During this processing, for example, Japanese Patent Application Laid-Open
The clip processing and the overlap processing described in Japanese Patent Application Laid-Open No. 9038 can be applied to the processing in which the clip processing and the overlap processing are collectively processed by one scan.
【0125】また、上述の後者の具体例のように、抜け
を防止したい部分について対応規則を変更することによ
って、抜けのない細い線の描画も可能となる。すなわ
ち、塗りつぶしの処理と細い線の描画も統一的に扱うこ
とができる。このとき、広い塗りつぶし部分では対応規
則Aや対応規則Bを用いることによって、処理速度も向
上させることができる。Further, as in the latter specific example described above, by changing the corresponding rule for a portion in which omission is to be prevented, a thin line without omission can be drawn. In other words, the processing of filling and the drawing of thin lines can be handled in a unified manner. At this time, the processing speed can be improved by using the corresponding rule A or the corresponding rule B in a wide painted portion.
【0126】なお、図1に示した本発明の構成例におい
ては、属性データ格納部3、形状加工部5、形状処理部
4が接続されているが、形状加工部5で使用する属性値
が形状データに付加されて、あるいは、図示しない別の
記憶装置に保持されている場合には、特に属性データ格
納部3と形状加工部5の接続は必要がない。また、形状
処理部4と属性データ格納部3の接続に対しても同様の
変更が可能であるほか、極端な場合には、塗りつぶし時
に必要となる属性値がすべて形状データに付加されてい
る場合や、あるいは、特に描画図形の属性値が必要とな
らない場合には、属性処理部2および属性データ格納部
3を設けない構成も可能である。In the configuration example of the present invention shown in FIG. 1, the attribute data storage unit 3, the shape processing unit 5, and the shape processing unit 4 are connected. When added to the shape data or stored in another storage device (not shown), there is no need to particularly connect the attribute data storage unit 3 and the shape processing unit 5. A similar change can be made to the connection between the shape processing unit 4 and the attribute data storage unit 3. In an extreme case, all the attribute values required for filling are added to the shape data. Alternatively, or especially when the attribute value of the drawing figure is not required, a configuration in which the attribute processing unit 2 and the attribute data storage unit 3 are not provided is also possible.
【0127】図29は、本発明の描画処理装置を含むプ
リンタシステムの一例を示す構成図である。図中、10
1はプリンタ装置、102は描画処理装置、103はプ
リンタエンジン、104はネットワーク、105はクラ
イアントコンピュータである。図29は、ネットワーク
104にプリンタ装置101を接続したプリンタシステ
ムを示しており、本発明の描画処理装置をプリンタ装置
101に適用した例を示している。FIG. 29 is a configuration diagram showing an example of a printer system including the drawing processing device of the present invention. In the figure, 10
1 is a printer device, 102 is a drawing processing device, 103 is a printer engine, 104 is a network, and 105 is a client computer. FIG. 29 shows a printer system in which the printer device 101 is connected to the network 104, and shows an example in which the drawing processing device of the present invention is applied to the printer device 101.
【0128】プリンタ装置101は、ネットワーク10
4を介して一つあるいは複数のクライアントコンピュー
タ105と接続されている。プリンタ装置101は、本
発明の描画処理装置102と、実際に被記録媒体上に画
像を形成するプリンタエンジン103を有している。The printer 101 is connected to the network 10
4 is connected to one or a plurality of client computers 105. The printer device 101 includes a drawing processing device 102 according to the present invention and a printer engine 103 that actually forms an image on a recording medium.
【0129】クライアントコンピュータ105から送信
された描画命令は、プリンタ装置101内の本発明の描
画処理装置102において解釈され、データの形式を例
えばラスタデータに変換してプリンタエンジン103に
送信する。プリンタエンジン103は、描画処理装置1
02から渡される、例えばラスタデータに従って印刷処
理を行う。The drawing command transmitted from the client computer 105 is interpreted by the drawing processing device 102 of the present invention in the printer device 101, and the data format is converted into, for example, raster data and transmitted to the printer engine 103. The printer engine 103 includes the drawing processing device 1
The print processing is performed in accordance with, for example, the raster data passed from 02.
【0130】プリンタ装置101は、構成によってはネ
ットワーク104からの入力データを一時蓄積するスプ
ール機構を持つ場合もある。また、描画処理装置102
から出力される出力用データを一時蓄積するためにプリ
コレーション機構を持つ場合もある。描画処理装置10
2は、必ずしも一つのプリンタエンジン103などの出
力装置に固定的に接続される必要はなく、複数の出力装
置に接続されていてもよい。さらには、出力装置に直接
出力せず、例えばネットワーク102を介して接続され
ている他の装置に転送する構成でもよい。The printer apparatus 101 may have a spool mechanism for temporarily storing input data from the network 104 depending on the configuration. Also, the drawing processing device 102
There is a case where a pre-collation mechanism is provided for temporarily storing output data output from the. Drawing processing device 10
2 does not necessarily need to be fixedly connected to one output device such as the printer engine 103, and may be connected to a plurality of output devices. Furthermore, a configuration is also possible in which the data is not directly output to the output device but is transferred to another device connected via the network 102, for example.
【0131】もちろん、本発明は、図29に示したよう
なプリンタ装置への適用に限らず、例えば表示装置に適
用したり、あるいは、出力装置のない画像処理装置とし
て構成されるなど、種々の構成に適用することが可能で
ある。Of course, the present invention is not limited to application to a printer device as shown in FIG. 29, but may be applied to a display device or configured as an image processing device without an output device. It is possible to apply to the configuration.
【0132】[0132]
【発明の効果】以上の説明から明らかなように、本発明
によれば、多様な塗りつぶし規則に従う図形に対して、
簡単な統一された機構のもとで図形の塗りつぶし領域を
決定することができる。このとき、図形ごとあるいは1
つの図形中のエッジごとに異なる塗りつぶし規則を適用
しても、統一的な機構のもとで、それぞれの塗りつぶし
領域を容易に規定することができる。これによって、例
えば細い領域の塗りつぶしにおいても、途切れることな
く塗りつぶしを行うことができるし、またそれ以外の部
分での塗りつぶしについては高速化を図ることが可能で
ある。また、細い線の描画と、塗りつぶしのアルゴリズ
ムの共通化を図ることも可能となっている。As is apparent from the above description, according to the present invention, it is possible to form a figure that complies with various filling rules.
The painted area of a figure can be determined under a simple unified mechanism. At this time, each figure or 1
Even if different filling rules are applied to each edge in one figure, each filling area can be easily defined under a unified mechanism. As a result, for example, even in the case of painting a thin area, the painting can be performed without interruption, and the painting can be speeded up in the other areas. It is also possible to use a common algorithm for drawing thin lines and for filling.
【0133】さらに、簡単な統一された機構のもとで塗
りつぶし領域の決定を行うことができるので、塗りつぶ
し領域の決定機構をハードウェア化する際には回路規模
を増やさずに高機能化することができる。また、ソフト
ウェアで実現する際にも、そのコード規模を絞り込んだ
まま、高機能化を図ることが可能になるという効果があ
る。Further, since the paint area can be determined under a simple unified mechanism, when the paint area determining mechanism is implemented by hardware, it is necessary to enhance the function without increasing the circuit scale. Can be. In addition, when the functions are realized by software, there is an effect that it is possible to enhance the functions while narrowing down the code scale.
【図1】 本発明の描画処理装置の実施の一形態を示す
構成図である。FIG. 1 is a configuration diagram illustrating an embodiment of a drawing processing apparatus according to the present invention.
【図2】 ドットと座標系および走査線スリットの関係
の説明図である。FIG. 2 is an explanatory diagram of a relationship between a dot, a coordinate system, and a scanning line slit.
【図3】 スリット境界線とスリット基準線の説明図で
ある。FIG. 3 is an explanatory diagram of a slit boundary line and a slit reference line.
【図4】 形状処理部4の動作の一例を示すフローチャ
ートである。FIG. 4 is a flowchart illustrating an example of the operation of the shape processing unit 4;
【図5】 形状加工部5の動作の一例を示すフローチャ
ートである。FIG. 5 is a flowchart illustrating an example of the operation of the shape processing unit 5;
【図6】 形状加工部5において行われる形状データの
加工処理の一例を示すフローチャートである。FIG. 6 is a flowchart illustrating an example of a shape data processing process performed by a shape processing unit 5;
【図7】 1スリットエッジデータのデータ構造の一例
の説明図である。FIG. 7 is an explanatory diagram of an example of a data structure of one slit edge data.
【図8】 Nスリットエッジデータのデータ構造の一例
の説明図である。FIG. 8 is an explanatory diagram of an example of a data structure of N slit edge data.
【図9】 図形の具体例の説明図である。FIG. 9 is an explanatory diagram of a specific example of a graphic.
【図10】 対応規則Aに従った場合の形状加工部5の
処理の一例の説明図である。FIG. 10 is an explanatory diagram of an example of a process of the shape processing section 5 when a corresponding rule A is followed.
【図11】 対応規則Bに従った場合の形状加工部5の
処理の一例の説明図である。FIG. 11 is an explanatory diagram of an example of a process of the shape processing unit 5 when complying with a correspondence rule B;
【図12】 対応規則Cに従った場合の形状加工部5の
処理の一例の説明図である。FIG. 12 is an explanatory diagram of an example of a process of the shape processing unit 5 when complying with a correspondence rule C;
【図13】 走査変換部7における動作の一例を示すフ
ローチャートである。FIG. 13 is a flowchart illustrating an example of the operation of the scan conversion unit 7;
【図14】 エッジイベントの生成処理の一例を示すフ
ローチャートである。FIG. 14 is a flowchart illustrating an example of an edge event generation process.
【図15】 エッジイベントに組み込まれる値S,値
T、値Uの具体例の説明図である。FIG. 15 is an explanatory diagram of a specific example of a value S, a value T, and a value U incorporated in an edge event.
【図16】 走査線スリットの走査変換処理の一例を示
すフローチャートである。FIG. 16 is a flowchart illustrating an example of scan conversion processing of a scanning line slit.
【図17】 対応規則Aに従う場合の走査変換処理の具
体例の説明図である。FIG. 17 is an explanatory diagram of a specific example of a scan conversion process when a corresponding rule A is followed.
【図18】 対応規則Bに従う場合に走査変換処理で生
成されるエッジイベントの一例の説明図である。FIG. 18 is an explanatory diagram of an example of an edge event generated in the scan conversion process when a corresponding rule B is followed.
【図19】 対応規則Bに従う場合においてスリットb
での塗りつぶし処理の一例の説明図である。FIG. 19 shows a slit b in the case of complying with the corresponding rule B.
FIG. 8 is an explanatory diagram of an example of a painting process in FIG.
【図20】 対応規則Bに従う場合において塗りつぶさ
れるドットの一例の説明図である。FIG. 20 is an explanatory diagram of an example of a dot to be painted in a case where a correspondence rule B is followed.
【図21】 対応規則Cに従う場合に走査変換処理で生
成されるエッジイベントの一例の説明図である。FIG. 21 is an explanatory diagram of an example of an edge event generated in a scan conversion process when a corresponding rule C is followed.
【図22】 対応規則Cに従う場合においてスリットc
での塗りつぶし処理の一例の説明図である。FIG. 22 shows a slit c in the case of complying with the corresponding rule C.
FIG. 8 is an explanatory diagram of an example of a painting process in FIG.
【図23】 対応規則Cに従う場合において塗りつぶさ
れるドットの一例の説明図である。FIG. 23 is an explanatory diagram of an example of a dot to be painted in the case where a correspondence rule C is followed.
【図24】 図形の別の具体例の説明図である。FIG. 24 is an explanatory diagram of another specific example of a graphic.
【図25】 図形の別の具体例において、各図形を構成
するエッジの説明図である。FIG. 25 is an explanatory diagram of edges constituting each figure in another specific example of the figure.
【図26】 図形の別の具体例から得られるスキャンエ
ッジデータの一例の説明図である。FIG. 26 is an explanatory diagram of an example of scan edge data obtained from another specific example of a graphic.
【図27】 図形の別の具体例においてスキャンエッジ
データから求めるエッジイベントの一例の説明図であ
る。FIG. 27 is an explanatory diagram of an example of an edge event obtained from scan edge data in another specific example of a graphic.
【図28】 図形の別の具体例において、スリットcに
登録されたエッジイベントと、エッジカウンタの遷移お
よび塗りつぶし結果の一例の説明図である。FIG. 28 is an explanatory diagram of an example of an edge event registered in a slit c, a transition of an edge counter, and a filling result in another specific example of a graphic.
【図29】 本発明の描画処理装置を含むプリンタシス
テムの一例を示す構成図である。FIG. 29 is a configuration diagram illustrating an example of a printer system including a drawing processing apparatus according to the present invention.
【図30】 ドット位置対応の規則(対応規則A)の具
体例の説明図である。FIG. 30 is an explanatory diagram of a specific example of a rule (correspondence rule A) for dot position correspondence.
【図31】 ドット位置対応の規則(対応規則B)の具
体例の説明図である。FIG. 31 is an explanatory diagram of a specific example of a rule for dot position correspondence (correspondence rule B).
【図32】 ドット位置対応の規則(対応規則C)の具
体例の説明図である。FIG. 32 is an explanatory diagram of a specific example of a rule for dot position correspondence (correspondence rule C).
1…描画命令解釈部、2…属性処理部、3…属性データ
格納部、4…形状処理部、5…形状加工部、6…形状デ
ータ蓄積部、7…走査変換部、8…出力部、101…プ
リンタ装置、102…描画処理装置、103…プリンタ
エンジン、104…ネットワーク、105…クライアン
トコンピュータ。DESCRIPTION OF SYMBOLS 1 ... Drawing command interpretation part, 2 ... Attribute processing part, 3 ... Attribute data storage part, 4 ... Shape processing part, 5 ... Shape processing part, 6 ... Shape data storage part, 7 ... Scan conversion part, 8 ... Output part, Reference numeral 101 denotes a printer, 102 denotes a drawing processing device, 103 denotes a printer engine, 104 denotes a network, and 105 denotes a client computer.
Claims (13)
いはラスタデータに基づくデータを生成する描画処理装
置において、図形の形状データを走査線スリットに対応
づけて加工する形状加工手段と、該形状加工手段で加工
された形状データからエッジ情報を発生させるとともに
該エッジ情報に基づいてラスタデータあるいはラスタデ
ータに基づくデータを生成する走査変換手段を有してお
り、前記エッジ情報は、塗りつぶし種別とエッジの特性
に応じた情報を含んでいることを特徴とする描画処理装
置。A drawing processing apparatus for generating raster data or data based on raster data from shape data of a figure, a shape processing means for processing the shape data of the figure in association with a scanning line slit, and Scanning conversion means for generating edge information from the processed shape data and generating raster data or data based on the raster data based on the edge information, wherein the edge information is based on a fill type and edge characteristics. A drawing processing device comprising information corresponding to the drawing information.
形の内外判定を行うための判定値を図形ごとに記憶する
エッジ判定値記憶手段を有しており、前記エッジ情報と
して塗りつぶし種別とエッジの特性に応じた情報を値と
して発生させ、該エッジ情報の値と前記エッジ判定値記
憶手段の値とを演算し、該演算結果に所定のマスク処理
を行った結果を新たな判定値として前記エッジ判定値記
憶手段に記憶させるとともに、新たな判定値をもとに図
形の内外判定を行うことを特徴とする請求項1に記載の
描画処理装置。2. The image forming apparatus according to claim 1, wherein said scan conversion means includes edge determination value storage means for storing, for each figure, a determination value for determining whether the figure is inside or outside at the time of painting. Is generated as a value, the value of the edge information and the value of the edge determination value storage means are calculated, and a result obtained by performing a predetermined mask process on the calculation result is set as a new determination value as the edge determination value. 2. The drawing processing device according to claim 1, wherein the value is stored in a value storage unit, and the inside / outside of the figure is determined based on the new determination value.
形の内外判定を行うための複数の判定値を図形ごとに記
憶するエッジ判定値記憶手段を有しており、前記エッジ
情報として塗りつぶし種別を示す値とエッジの特性を示
す値を発生させ、該エッジ情報の複数の値と前記エッジ
判定値記憶手段が記憶する複数の判定値とをそれぞれ演
算し、それぞれの演算結果を新たな判定値として前記エ
ッジ判定値記憶手段に記憶させるとともに、複数の新た
な判定値をもとに図形の内外判定を行うことを特徴とす
る請求項1に記載の描画処理装置。3. The scan conversion means includes edge determination value storage means for storing a plurality of determination values for determining whether a figure is inside or outside at the time of painting, for each figure, and indicating a painting type as the edge information. A plurality of values of the edge information and a plurality of judgment values stored in the edge judgment value storage means, and each operation result is set as a new judgment value. 2. The drawing processing apparatus according to claim 1, wherein the image is stored in an edge determination value storage unit, and the inside / outside of the figure is determined based on a plurality of new determination values.
構成する1つの要素形状データから、それぞれ異なる判
定値を含む複数のエッジ情報を発生させることを特徴と
する請求項2または請求項3に記載の描画処理装置。4. The apparatus according to claim 2, wherein said scan conversion means generates a plurality of pieces of edge information each including a different judgment value from one element shape data constituting said shape data. The drawing processing apparatus according to the above.
情報のそれぞれに含まれる判定値同士を演算すると演算
結果のうちの所定のビットフィールドが所定の値になる
ように、それぞれ異なる判定値を含むエッジ情報を発生
させる請求項4に記載の描画処理装置。5. The scan conversion means calculates different judgment values included in each of the plurality of edge information and calculates different judgment values so that a predetermined bit field of the operation result becomes a predetermined value. The drawing processing apparatus according to claim 4, wherein the drawing processing apparatus generates edge information including the edge information.
は0であることを特徴とする請求項5記載の描画処理装
置。6. The drawing processing apparatus according to claim 5, wherein a predetermined value of the predetermined bit field is 0.
らエッジ情報を発生させる際に図形ごとの塗りつぶし種
別を調べることを特徴とする請求項2ないし請求項6の
いずれか1項に記載の描画処理装置。7. The drawing according to claim 2, wherein the scan conversion unit checks a paint type for each figure when generating edge information from the shape data. Processing equipment.
ータから発生させる前記複数のエッジ情報として、左端
および右端のエッジ情報を発生させ、該左端あるいは右
端のエッジ情報のいずれか一方のエッジ情報の位置座標
を1ドット分ずらして処理することを特徴とする請求項
4ないし請求項7のいずれか1項に記載の描画処理装
置。8. The scan conversion means generates left edge and right edge information as the plurality of edge information generated from one element shape data, and selects one of the left edge and right edge information. 8. The drawing processing apparatus according to claim 4, wherein the position coordinates are shifted by one dot.
らエッジ情報を発生させる際に図形の前記形状データを
構成する要素形状データごとの塗りつぶし種別を調べる
ことを特徴とする請求項2ないし請求項8のいずれか1
項に記載の描画処理装置。9. The method according to claim 2, wherein the scan conversion unit checks a fill type of each element shape data constituting the shape data of the figure when generating edge information from the shape data. Any one of 8
14. The drawing processing device according to item 13.
データを加工する際に図形ごとの塗りつぶし種別を判定
することを特徴とする請求項1ないし請求項9のいずれ
か1項に記載の描画処理装置。10. The drawing according to claim 1, wherein the shape processing means determines a type of painting for each figure when processing the shape data of the figure. Processing equipment.
データを加工する際に図形の前記形状データを構成する
要素形状データごとの塗りつぶし種別を判定することを
特徴とする請求項1ないし請求項10のいずれか1項に
記載の描画処理装置。11. The method according to claim 1, wherein the shape processing means determines a type of filling for each element shape data constituting the shape data of the figure when processing the shape data of the figure. 11. The drawing processing device according to any one of items 10.
ットの境界線との交点を基に前記形状データを構成する
要素形状データを分割することを特徴とする請求項1な
いし請求項11のいずれか1項に記載の描画処理装置。12. The apparatus according to claim 1, wherein said shape processing means divides element shape data constituting said shape data based on an intersection with a boundary of said scanning line slit. 2. The drawing processing apparatus according to claim 1.
を構成する複数の要素形状データが同一の前記走査線ス
リットに含まれるとき、該複数の要素形状データを一つ
にまとめることを特徴とする請求項1ないし請求項12
のいずれか1項に記載の描画処理装置。13. When the plurality of element shape data constituting the shape data are included in the same scanning line slit, the shape processing means combines the plurality of element shape data into one. Claims 1 to 12
7. The drawing processing device according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23897899A JP2001067487A (en) | 1999-08-25 | 1999-08-25 | Drawing processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23897899A JP2001067487A (en) | 1999-08-25 | 1999-08-25 | Drawing processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001067487A true JP2001067487A (en) | 2001-03-16 |
Family
ID=17038127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23897899A Pending JP2001067487A (en) | 1999-08-25 | 1999-08-25 | Drawing processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001067487A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008009897A (en) * | 2006-06-30 | 2008-01-17 | Mitsubishi Electric Corp | Vector graphic drawing device and program thereof |
-
1999
- 1999-08-25 JP JP23897899A patent/JP2001067487A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008009897A (en) * | 2006-06-30 | 2008-01-17 | Mitsubishi Electric Corp | Vector graphic drawing device and program thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4365950B2 (en) | Graphic object processing method and apparatus for high-speed raster format rendering | |
JP3919754B2 (en) | A method for reducing the number of compositing operations performed in a sequential pixel drawing system | |
US6339424B1 (en) | Drawing processor | |
KR0167618B1 (en) | Character generating apparatus and method of the same | |
KR950012083B1 (en) | Information processing apparatus | |
Arabnia et al. | A transputer network for fast operations on digitised images | |
KR100368198B1 (en) | Microcomputer | |
JP2001067487A (en) | Drawing processor | |
JP3628523B2 (en) | Information processing apparatus and recording medium recording pattern generation program | |
JPH11147344A (en) | Apparatus and method for plotting process | |
GB2226478A (en) | Converting rectilinear (x,y) information into pixel position for a raster scan display of plural horizontal resolutions | |
JP2000255117A (en) | Printing processing apparatus and method for processing printing | |
US20010024285A1 (en) | Image processing apparatus | |
JP3864520B2 (en) | Print processing apparatus and print processing method | |
JP2887122B2 (en) | Image data processing apparatus and system using the same | |
JP2641393B2 (en) | Digital halftone screen generation method and apparatus | |
JP2000222569A (en) | Plotter | |
KR940010225B1 (en) | Graphic display processing system with control method | |
JP2001109454A (en) | Character processing device | |
JP2000255116A (en) | Apparatus for processing printing and method for processing printing | |
JP4861084B2 (en) | Drawing processing apparatus and control method thereof | |
JPS58154885A (en) | Character pattern generator | |
JPH03278190A (en) | Polygon painting-out system | |
JPH0628486A (en) | Image processor | |
JP2000268186A (en) | Plotting processor |