Drawing data generating method, drawing data generating device, charged particle beam drawing device, and program
By projecting convex polygon data onto a line segment and using the resulting center line segment to extract reference figures, the method addresses the time-consuming issue of polygon division in multi-beam drawing, resulting in reduced drawing times.
Patent Information
- Application Number
- JP2023156947
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-22
- Publication Date
- 2025-04-03
AI Technical Summary
The existing methods for dividing polygons into reference figures in multi-beam drawing technology are time-consuming, which increases the overall drawing time.
A method and device for generating drawing data that involves reading convex polygon data, projecting it onto a line segment, forming a center line segment, and using this segment to extract reference figures from the polygon, thereby reducing the time required for division.
This approach significantly reduces the time needed for polygon division into reference figures, thereby decreasing the overall drawing time.
Smart Images

Figure 2025048130000001_ABST
Abstract
Description
[Technical field]
[0001] One aspect of the present invention relates to a drawing data generation method, a drawing data generation device, a charged particle beam drawing device, and a program, and relates to, for example, a technique for dividing a polygon defined in drawing data used in multi-beam drawing into predetermined reference figures. [Background technology]
[0002] Lithography technology, which is responsible for the advancement of miniaturization of semiconductor devices, is an extremely important process in semiconductor manufacturing that is the only one that generates patterns. In recent years, with the increasing integration of LSIs, the circuit line width required for semiconductor devices has become finer year by year. Here, electron beam (electron beam) drawing technology has inherently excellent resolution, and drawing on wafers and the like is carried out using electron beams.
[0003] For example, there is a lithography device that uses multiple beams. Compared to lithography using a single electron beam, the use of multiple beams allows many beams to be irradiated at once, greatly improving throughput. In such a lithography device using the multi-beam method, for example, an electron beam emitted from an electron gun is passed through a mask with multiple holes to form multiple beams, each of which is blanked, and each beam that is not blocked is reduced in size by an optical system and deflected by a deflector to be irradiated at a desired position on a sample.
[0004] In single-beam lithography, such as the variable beam shaping (VSB) method, a desired pattern is drawn by combining trapezoidal, rectangular, and triangular graphic patterns. Therefore, for inspecting the shape of each graphic pattern defined in the drawing data input to the drawing device, it is sufficient to check the width and height of each graphic pattern. On the other hand, in multi-beam lithography, since drawing is performed using a raster method, in addition to the above-mentioned figures, polygons having more vertices than a quadrilateral can be included in the graphic data. On the other hand, when actually drawing, in order not to complicate data processing, polygons are divided into preset reference figures such as trapezoids, rectangles, and triangles, and are drawn using the drawing data of these reference figures.
[0005] For this reason, a process for dividing the polygon into reference figures is required, but conventionally, there has been a problem that the process takes a long time. Therefore, it is desired to reduce the time required for the process for dividing the polygon into reference figures.
[0006] Although this is not a polygon division process, a technique has been disclosed for determining the monotonic direction of a monotonic polygon and determining the filling direction of the figure accordingly (see Patent Document 1). [Prior art documents] [Patent documents]
[0007] [Patent Document 1] Japanese Patent Application Publication No. 5-061987 Summary of the Invention [Problem to be solved by the invention]
[0008] One aspect of the present invention provides a method and apparatus capable of shortening the time required for a division process for dividing a polygon into reference figures. [Means for solving the problem]
[0009] A method for generating drawing data according to one aspect of the present invention includes: A step of reading out rendering data of a convex polygon, the rendering data being stored in a storage device and defined in the order in which the coordinates of each vertex form a figure, and projecting the convex polygon onto a line segment drawn in a first direction to identify two vertices that are most distant from each other; forming a median segment that bisects a convex polygon connecting the two most distant vertices; a step of extracting a plurality of figures using any one of a plurality of preset reference figures from the convex polygon by using the central line segment, and generating drawing data; The present invention is characterized by comprising:
[0010] a step of forming, for each base vertex, a line segment parallel to a second direction perpendicular to the first direction from the base vertex to a central line segment, the remaining vertices being set in order except for the two vertices furthest from the base vertex in the first direction; calculating, for each base vertex, coordinates of an intersection between a line segment extending from the base vertex and a center line segment; It is preferable that the sensor further comprises:
[0011] Moreover, it is preferable that the first direction be any one of the +x direction, -x direction, +y direction, and -y direction in the coordinate system of the drawing data.
[0012] Moreover, it is preferable that the plurality of extracted figures include sides extending in the x-direction or the y-direction in the coordinate system of the drawing data.
[0013] The storage device also stores rendering data for a plurality of polygons; The method further comprises the steps of reading out rendering data of a plurality of polygons from the storage device, and determining, for each polygon, a shape type of the polygon; If the determination result indicates that the polygon is a convex polygon, it is preferable to carry out the above-mentioned steps.
[0014] A drawing data generating device according to one aspect of the present invention comprises: a storage device for storing drawing data of a convex polygon in which the coordinates of each vertex are defined in the order that the polygon is formed; a determination unit that reads out rendering data of a convex polygon, the rendering data being stored in a storage device and defined in the order in which the coordinates of the vertices form a figure, and projects the convex polygon onto a line segment drawn in a first direction to determine the two vertices that are most distant from each other; a central line segment forming part that forms a central line segment that bisects a convex polygon connecting the two most distant vertices; an extraction processing unit that extracts a plurality of figures using any one of a plurality of preset reference figures from the convex polygon by using the central line segment, and generates drawing data; The present invention is characterized by comprising:
[0015] A charged particle beam drawing apparatus according to one aspect of the present invention comprises: a storage device for storing drawing data of a convex polygon in which the coordinates of each vertex are defined in the order that the polygon is formed; a determination unit that reads out rendering data of a convex polygon, the rendering data being stored in a storage device and defined in the order in which the coordinates of the vertices form a figure, and projects the convex polygon onto a line segment drawn in a first direction to determine the two vertices that are most distant from each other; a central line segment forming part that forms a central line segment that bisects a convex polygon connecting the two most distant vertices; an extraction processing unit that extracts a plurality of figures using any one of a plurality of preset reference figures from the convex polygon by using the central line segment, and generates drawing data; a writing mechanism for writing, on a sample, a pattern of the plurality of figures for which the writing data has been generated, using a charged particle beam; The present invention is characterized by comprising:
[0016] A program for causing a computer to execute one aspect of the present invention comprises: a function of reading out rendering data of a convex polygon, the rendering data being stored in a storage device and defined in the order in which the coordinates of each vertex form a shape, and projecting the convex polygon onto a line segment drawn in a first direction to identify the two vertices that are furthest apart; The function to form a median segment that bisects a convex polygon connecting the two most distant vertices; a function of extracting a plurality of figures using any one of a plurality of preset reference figures from a convex polygon by using a central line segment, and generating drawing data; The present invention is characterized by comprising: Effect of the Invention
[0017] According to one aspect of the present invention, it is possible to reduce the time required for the division process of dividing a polygon into reference figures, thereby reducing the drawing time. [Brief description of the drawings]
[0018] [Figure 1] FIG. 1 is a conceptual diagram showing a configuration of a drawing device in a first embodiment. [Diagram 2] 2 is a conceptual diagram showing a configuration of a shaping aperture array substrate in the first embodiment. FIG. [Diagram 3] 2 is a cross-sectional view showing a configuration of a blanking aperture array mechanism in the first embodiment. FIG. [Figure 4] FIG. 2 is a diagram showing an example of drawing data 1 according to the first embodiment. [Diagram 5] FIG. 2 is a flowchart showing main steps of the drawing data generating method according to the first embodiment. [Figure 6] FIG. 2 is a diagram showing an example of an X-monotonic polygon in the first embodiment. [Figure 7] FIG. 2 is a diagram showing an example of a Y monotonic polygon in the first embodiment. [Figure 8] FIG. 2 is a diagram showing an example of a convex polygon according to the first embodiment. [Figure 9] FIG. 2 is a diagram showing an example of a general polygon according to the first embodiment. [Figure 10] 4 is a block diagram showing an example of an internal configuration of a division processing unit in the first embodiment. FIG. [Figure 11] 4 is a block diagram showing an example of an internal configuration of a general polygon division processing unit in the first embodiment. FIG. [Figure 12] FIG. 2 is a diagram for explaining a general polygon division process in the first embodiment. [Figure 13] 5A to 5C are diagrams showing examples of vertex lists before and after sorting processing in the first embodiment. [Figure 14]5A to 5C are diagrams showing examples of line segment lists before and after a sorting process in the first embodiment. [Figure 15] FIG. 2 is a block diagram showing an example of an internal configuration of an X-monotonic polygon division processing unit in the first embodiment. [Figure 16] FIG. 11 is a flowchart showing an example of internal steps of an X-monotonic polygon division processing step in the first embodiment. [Figure 17] FIG. 2 is a diagram for explaining a method of dividing an X-monotonic polygon in the first embodiment. [Figure 18] FIG. 2 is a diagram for explaining a method of dividing a Y monotone polygon in the first embodiment. [Figure 19] 4 is a block diagram showing an example of an internal configuration of a convex polygon division processing unit in the first embodiment. FIG. [Figure 20] FIG. 11 is a flowchart showing an example of internal steps of a convex polygon division processing step in the first embodiment. [Figure 21] FIG. 2 is a diagram for explaining an example of a division technique for a convex polygon in the first embodiment. [Figure 22] FIG. 11 is a diagram for explaining another example of a convex polygon division technique according to the first embodiment. [Diagram 23] FIG. 2 is a conceptual diagram for explaining an example of a drawing operation in the first embodiment. [Figure 24] 3 is a diagram showing an example of a region irradiated with multiple beams and a pixel to be written in the first embodiment. FIG. [Diagram 25] FIG. 2 is a diagram for explaining an example of a multi-beam writing operation in the first embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] In the following, in the embodiment, a configuration using an electron beam as an example of a charged particle beam will be described. However, the charged particle beam is not limited to an electron beam, and may be a beam using charged particles such as an ion beam. Also, in the embodiment, a configuration using multiple beams as the charged particle beam will be described. However, the charged particle beam is not limited to multiple beams. A single beam may be used.
[0020] Embodiment 1 FIG. 1 is a conceptual diagram showing a configuration of a drawing apparatus in the first embodiment. In FIG. 1, the drawing apparatus 100 includes a drawing mechanism 150 and a control circuit 160. The drawing apparatus 100 is an example of a charged particle beam drawing apparatus. The drawing apparatus 100 is also an example of a multi-charged particle beam drawing apparatus and an example of a multi-charged particle beam exposure apparatus. The drawing mechanism 150 includes an electron lens barrel 102 (electron beam column) and a drawing chamber 103. In the electron lens barrel 102, an electron gun 201, an illumination lens 202, a shaping aperture array substrate 203, a blanking aperture array mechanism 204, a reduction lens 205, a limiting aperture substrate 206, an objective lens 207, a deflector 208, and a deflector 209 are arranged.
[0021] An XY stage 105 is placed in the drawing chamber 103. A sample 101, such as a mask that will be a substrate to be drawn on during drawing (exposure) is placed on the XY stage 105. The sample 101 includes an exposure mask used in manufacturing a semiconductor device, a semiconductor substrate (silicon wafer) on which a semiconductor device is manufactured, and the like. The sample 101 also includes a mask blank on which resist is applied and on which nothing is yet drawn.
[0022] Furthermore, a mirror 210 for measuring the position of the XY stage 105 is also disposed on the XY stage 105 .
[0023] The control circuit 160 includes a control computer 110, a memory 112, a deflection control circuit 130, digital-to-analog conversion (DAC) amplifier units 132 and 134, a lens control circuit 136, a stage control mechanism 138, a stage position measurement device 139, and storage devices 140, 142, and 144 such as magnetic disk devices. The control computer 110, the memory 112, the deflection control circuit 130, the lens control circuit 136, the stage control mechanism 138, the stage position measurement device 139, and the storage devices 140, 142, and 144 are connected to each other via a bus (not shown). The deflection control circuit 130 is connected to the DAC amplifier units 132 and 134 and a blanking aperture array mechanism 204. The deflector 209 is composed of four or more electrodes, and each electrode is controlled by the deflection control circuit 130 via the DAC amplifier 132. The deflector 208 is configured with four or more electrodes, and each electrode is controlled by the deflection control circuit 130 via the DAC amplifier 134. For example, a group of electromagnetic lenses such as the illumination lens 202, the reduction lens 205, and the objective lens 207 are controlled by the lens control circuit 136.
[0024] For example, the control computer 110, the memory 112, and the storage devices 140, 142, and 144 constitute an example of a drawing data generating device.
[0025] The position of the XY stage 105 is controlled by driving motors for each axis (not shown) controlled by a stage control mechanism 138. A stage position measuring device 139 receives reflected light from a mirror 210 and measures the position of the XY stage 105 based on the principle of laser interference.
[0026] The control computer 110 includes a shape determination processing unit 50, a division processing unit 80, a shot data generating unit 70, a data processing unit 72, a transfer processing unit 74, and a drawing control unit 76. Each of the "~ units" such as the shape determination processing unit 50, the division processing unit 80, the shot data generating unit 70, the data processing unit 72, the transfer processing unit 74, and the drawing control unit 76 has a processing circuit. Such a processing circuit includes, for example, an electric circuit, a computer, a processor, a circuit board, a quantum circuit, or a semiconductor device. Each of the "~ units" may use a common processing circuit (the same processing circuit) or may use different processing circuits (separate processing circuits). Information input to and output from the shape determination processing unit 50, the division processing unit 80, the shot data generating unit 70, the data processing unit 72, the transfer processing unit 74, and the drawing control unit 76 and information being calculated are stored in the memory 112 each time.
[0027] The drawing operation of the drawing apparatus 100 is controlled by a drawing control unit 76. Moreover, the transfer process of the irradiation time data of each shot to the deflection control circuit 130 is controlled by a transfer processing unit 74.
[0028] Moreover, drawing data 1 (chip data) of a plurality of graphic patterns constituting the chip pattern is input from outside the drawing device 100 and stored in the storage device 140. The chip data defines information on the plurality of graphic patterns constituting the chip pattern. Specifically, for example, a coordinate sequence of each vertex coordinate is defined for each graphic pattern. The plurality of graphic patterns includes a plurality of polygons in addition to triangles, rectangles, and trapezoids.
[0029] 1 shows the configuration necessary for explaining the embodiment 1. The drawing device 100 may also include other configurations that are normally required.
[0030] FIG. 2 is a conceptual diagram showing the configuration of the shaping aperture array substrate in the first embodiment. In FIG. 2, holes (openings) 22 are formed in a matrix of p columns (y direction)×q columns (x direction) (p, q≧2) at a predetermined arrangement pitch in the shaping aperture array substrate 203. In the example of FIG. 2, for example, 512×512 columns of holes 22 are formed in the vertical and horizontal directions (x and y directions). The number of holes 22 is not limited to this. For example, 32×32 columns of holes 22 may be formed. Each hole 22 is formed in a rectangular shape with the same dimensions. Alternatively, it may be a circle with the same diameter. A part of the electron beam 200 passes through each of the multiple holes 22, thereby forming a multibeam 20. In other words, the shaping aperture array substrate 203 forms and emits the multibeam 20. The shaping aperture array substrate 203 is an example of an emission source of the multibeam 20.
[0031] FIG. 3 is a cross-sectional view showing an example of the configuration of the blanking aperture array mechanism in the first embodiment. As shown in FIG. 3, the blanking aperture array mechanism 204 has a blanking aperture array substrate 31 using a semiconductor substrate made of silicon or the like arranged on a support stand 33. In a membrane region 330 at the center of the blanking aperture array substrate 31, a passing hole 25 (opening) for passing each beam of the multi-beam 20 is opened at a position corresponding to each hole 22 of the shaping aperture array substrate 203 shown in FIG. 2. Then, a pair of a control electrode 24 and a counter electrode 26 (blanker: blanking deflector) is arranged at a position facing each other across the corresponding passing hole 25 among the plurality of passing holes 25. In addition, a control circuit 41 (logic circuit) that applies a deflection voltage to the control electrode 24 for each passing hole 25 is arranged inside the blanking aperture array substrate 31 near each passing hole 25. The counter electrode 26 for each beam is connected to ground.
[0032] An amplifier (one example of a switching circuit) (not shown) is disposed within the control circuit 41. As one example of the amplifier, a CMOS (Complementary MOS) inverter circuit serving as a switching circuit is disposed. Either an L (low) potential (e.g., ground potential) lower than the threshold voltage or an H (high) potential (e.g., 1.5 V) equal to or higher than the threshold voltage is applied as a control signal to the input (IN) of the CMOS inverter circuit. In the first embodiment, when an L potential is applied to the input (IN) of the CMOS inverter circuit, the output (OUT) of the CMOS inverter circuit applied to the control circuit 41 becomes a positive potential (Vdd), and the corresponding beam is deflected by an electric field due to a potential difference with the ground potential of the counter electrode 26, and the beam is controlled to be turned OFF by being shielded by the limiting aperture substrate 206. On the other hand, when an H potential is applied to the input (IN) of the CMOS inverter circuit (active state), the output (OUT) of the CMOS inverter circuit becomes ground potential, and since there is no potential difference with the ground potential of the opposing electrode 26 and the corresponding beam is not deflected, the beam is controlled to be turned ON by passing through the limiting aperture substrate 206. Blanking control is performed by such deflection.
[0033] Next, a specific example of the operation of the drawing mechanism 150 will be described. An electron beam 200 emitted from an electron gun 201 (emission source) illuminates the entire shaping aperture array substrate 203 almost perpendicularly by an illumination lens 202. A plurality of rectangular holes 22 (openings) are formed in the shaping aperture array substrate 203, and the electron beam 200 illuminates an area including all of the plurality of holes 22. Each part of the electron beam 200 irradiated to the position of the plurality of holes 22 passes through each of the plurality of holes 22 of the shaping aperture array substrate 203, thereby forming a multi-beam (a plurality of electron beams) 20 having, for example, a rectangular shape. The multi-beam 20 passes through the corresponding blankers of a blanking aperture array mechanism 204. The blankers perform blanking control on the beams passing through them individually so that the beams are in an ON state for a set drawing time (irradiation time).
[0034] The multi-beam 20 that has passed through the blanking aperture array mechanism 204 is reduced by the reduction lens 205 and advances toward the central hole formed in the limiting aperture substrate 206. Here, the electron beams deflected by the blanker of the blanking aperture array mechanism 204 are displaced from the central hole of the limiting aperture substrate 206 and are blocked by the limiting aperture substrate 206. On the other hand, the electron beams that have not been deflected by the blanker of the blanking aperture array mechanism 204 pass through the central hole of the limiting aperture substrate 206 as shown in FIG. 1. In this way, the limiting aperture substrate 206 blocks each beam that has been deflected by the blanker of the blanking aperture array mechanism 204 to be in a beam OFF state. Then, each beam for one shot is formed by the beams that have passed through the limiting aperture substrate 206 and that have been formed from when the beam is turned ON until the beam is turned OFF. The multi-beams 20 that have passed through the limiting aperture substrate 206 are focused by the objective lens 207 to become a pattern image with a desired reduction ratio, and the entire multi-beams 20 that have passed through the limiting aperture substrate 206 are deflected in the same direction by the deflectors 208 and 209, and each beam is irradiated onto its respective irradiation position on the sample 101. Also, for example, when the XY stage 105 is moving continuously, the deflector 208 performs tracking control so that the irradiation position of the beam follows the movement of the XY stage 105. The multi-beams 20 irradiated at one time are ideally arranged at a pitch obtained by multiplying the arrangement pitch of the multiple holes 22 in the shaping aperture array substrate 203 by the desired reduction ratio described above.
[0035] FIG. 4 is a diagram showing an example of drawing data 1 in the first embodiment. In the example of FIG. 4, a pentagonal figure pattern i is shown. i indicates an index assigned to a plurality of figures. The pentagonal figure pattern i is formed by connecting five vertices 0, 1, 2, 3, and 4 in order. The drawing data of the figure pattern i defines the coordinates of these vertices in, for example, a clockwise order.
[0036] As shown in Fig. 4, the multiple graphic patterns defined as the drawing data include polygonal graphic patterns that have more vertices than a quadrilateral. For this reason, the polygonal graphic patterns are divided into preset reference graphic patterns such as triangles, rectangles, and trapezoids before the drawing process is performed. Therefore, in the first embodiment, among the multiple graphic pattern data defined as the drawing data 1 stored in the storage device 140, the polygons in the polygonal drawing data are divided into reference graphics, and the polygons are regenerated into drawing data 2 of the reference graphics.
[0037] Fig. 5 is a flow chart showing the main steps of the drawing data generating method in the embodiment 1. In Fig. 5, the drawing data generating method in the embodiment 1 performs a series of steps including a figure type determination step (S100), a general polygon division processing step (S110), an X-monotonic polygon division processing step (S200), a Y-monotonic polygon division processing step (S300), and a convex polygon division processing step (S400). The figure type determination step (S100) performs a determination step (S102) and a determination step (S104) as internal steps.
[0038] In the determination step (S100), the shape determination processing unit 50 reads out the drawing data 1 of a polygon from among the drawing data 1 of a plurality of figure patterns stored in the storage device 140, and determines the shape type of each polygon. Here, first, in the determination step (S102), it is determined whether the polygon is a monotonic polygon. If it is not a monotonic polygon, it is determined to be another general polygon. Then, if it is a monotonic polygon, in the determination step (S104), the shape determination processing unit 50 further determines whether it is an X-monotonic polygon, a Y-monotonic polygon, or a convex polygon. In the case of an X-monotonic polygon, the x direction in the coordinate system of the drawing data is used as the monotonic direction. In the case of a Y-monotonic polygon, the y direction in the coordinate system of the drawing data is used as the monotonic direction.
[0039] FIG. 6 is a diagram showing an example of an X-monotonic polygon in the first embodiment. An X-monotonic polygon refers to a figure that does not have crossings (self-intersections) between its own sides and does not include a hole pattern within the figure, in which the x-component of the point sequence from the leftmost point to the rightmost point of the vertex sequence monotonically increases, and the x-component of the point sequence from the rightmost point to the leftmost point monotonically decreases. Alternatively, an X-monotonic polygon refers to a figure that does not have crossings (self-intersections) between its own sides and does not have a hole pattern within the figure, in which the sign of the displacement in the x-direction of each vertex arranged in the order in which the figure is formed by connecting the vertices in order is inverted from positive to negative, or from negative to positive, two or less times. In the example of FIG. 6, for example, the displacement amount decreases in the -x direction clockwise from the vertex immediately to the right of the lower left end, reaches the vertex at the lower left end, and continues to the vertex at the upper left end. Then, from the vertex at the upper left end, the displacement amount increases in the +x direction in order, and reaches the vertex at the upper right end. Then, it continues to the vertex at the lower right end. Then, the displacement in the x direction decreases from the vertex at the bottom right in the -x direction, returning to the vertex immediately to the right of the bottom left. Therefore, the sign of the displacement is inverted only twice in total, once from the -x direction to the +x direction, and once from the +x direction to the -x direction. In addition, there is no self-intersection between the sides of the polygon in the example of FIG. 6, and there is no hole pattern within the polygon. Therefore, the polygon in FIG. 6 is an X-monotonic polygon.
[0040] FIG. 7 is a diagram showing an example of a Y monotone polygon in the first embodiment. A Y monotone polygon refers to a figure that does not have crossings (self-intersections) between its own sides and does not include a hole pattern in the figure, in which the y component of the point sequence from the lowest point to the highest point of the vertex sequence increases monotonically, and the y component of the point sequence from the highest point to the lowest point increases monotonically. Alternatively, a Y monotone polygon refers to a figure that does not have crossings (self-intersections) between its own sides and does not have a hole pattern in the figure, and in which the sign of the displacement in the y direction of each vertex arranged in the order in which the figure is formed by connecting the vertices in order is inverted from positive to negative, or from negative to positive, two or less times. In the example of FIG. 7, for example, the displacement amount decreases in the -y direction from the vertex next to the top of the lower right part clockwise, reaches the vertex at the lower right part, and continues to the vertex at the lower left part. Then, from the vertex at the lower left part, the displacement amount in the y direction increases in order in the +y direction, and reaches the vertex at the upper left part. Then, it continues to the vertex at the upper right part. Then, the amount of displacement in the y direction decreases in the -y direction from the vertex at the top right, returning to the vertex next to the vertex at the bottom right. Therefore, the sign of the displacement is inverted only twice in total, once from the -y direction to the +y direction, and once from the +y direction to the -y direction. In addition, there is no self-intersection between the sides of the polygon in the example of FIG. 7, and there is no hole pattern within the polygon. Therefore, the polygon in FIG. 7 is a Y-monotonic polygon.
[0041] FIG. 8 is a diagram showing an example of a convex polygon according to the first embodiment. A convex polygon refers to a figure that has no self-intersections between its own sides, no hole patterns within it, and all of its interior angles are less than 180 degrees. There are no self-intersections between the sides of the example polygon in Figure 8, and there are no hole patterns within the polygon. Also, all of its interior angles are less than 180 degrees. Therefore, the polygon in Figure 8 is a convex polygon. Note that a convex polygon is an xy monotonic polygon. This is because even if all of its interior angles are less than 180 degrees, they will self-intersect if they are not xy monotonic.
[0042] Fig. 9 is a diagram showing an example of a general polygon in the first embodiment. In the example of Fig. 9, the polygon is neither x monotonic nor y monotonic, and none of the interior angles are less than 180 degrees. Therefore, the polygon in the example of Fig. 9 is determined to be another general polygon. Also, the example of Fig. 9 shows a case where, for example, a hole pattern is placed inside.
[0043] In the above example, the type of polygon is determined from the actual shape of the polygon, but the present invention is not limited to this. It is also preferable to define an identifier indicating whether the figure is an X-monotonic polygon, a Y-monotonic polygon, or a convex polygon on the format of the drawing data 1. In this case, the shape determination processing unit 50 may determine the figure type of the figure based on the defined identifier. There may be further identifiers for other general polygons. If there are no identifiers, then for figure patterns with five or more vertices, a figure pattern without an identifier may be determined to be another general polygon.
[0044] FIG. 10 is a block diagram showing an example of the internal configuration of the division processing unit in the first embodiment. In FIG. 10, an X monotonic polygon division processing unit 52, a Y monotonic polygon division processing unit 54, a convex polygon division processing unit 56, and a general polygon division processing unit 57 are arranged in a division processing unit 80. Each of the "~ units" such as the X monotonic polygon division processing unit 52, the Y monotonic polygon division processing unit 54, the convex polygon division processing unit 56, and the general polygon division processing unit 57 has a processing circuit. Such a processing circuit includes, for example, an electric circuit, a computer, a processor, a circuit board, a quantum circuit, or a semiconductor device. Each of the "~ units" may use a common processing circuit (the same processing circuit) or may use different processing circuits (separate processing circuits). Information input to and output from the X monotonic polygon division processing unit 52, the Y monotonic polygon division processing unit 54, the convex polygon division processing unit 56, and the general polygon division processing unit 57 and information during calculation are stored in the memory 112 each time.
[0045] In the general polygon division processing step (S110), if the polygon is determined to be a general polygon as a result of the judgment, the general polygon division processing unit 57 divides the general polygon into a plurality of figures in the shape of any one of a plurality of preset reference figures, and generates drawing data 2 of the reference figures for the plurality of divided figures. A specific description will be given below.
[0046] FIG. 11 is a block diagram showing an example of the internal configuration of the general polygon division processing unit 57 in the first embodiment. In FIG. 11, a vertex list creation unit 60, a line segment list creation unit 61, a vertex sorting processing unit 62, a line segment sorting processing unit 63, a straight line forming unit 64, an intersection point calculation unit 65, and a figure extraction unit 66 are arranged in the general polygon division processing unit 57. Each of the "~ units" such as the vertex list creation unit 60, the line segment list creation unit 61, the vertex sorting processing unit 62, the line segment sorting processing unit 63, the straight line forming unit 64, the intersection point calculation unit 65, and the figure extraction unit 66 has a processing circuit. Such a processing circuit includes, for example, an electric circuit, a computer, a processor, a circuit board, a quantum circuit, or a semiconductor device. Each of the "~ units" may use a common processing circuit (the same processing circuit) or may use different processing circuits (separate processing circuits). Information input to and output from the vertex list creation unit 60, line segment list creation unit 61, vertex sorting unit 62, line segment sorting unit 63, straight line formation unit 64, intersection calculation unit 65, and figure extraction unit 66, as well as information being calculated, are stored in memory 112 each time.
[0047] Fig. 12 is a diagram for explaining the general polygon division process in the first embodiment. The example of Fig. 12 shows a general polygon in which a hole pattern formed by connecting four vertices 13 to 16 is placed inside a 13-gon formed by connecting 13 vertices 0 to 12. In the example of Fig. 12, the vertex at the top left end is vertex 0, but the first vertex of each vertex coordinate defined in the drawing data does not necessarily indicate the position of the left end, etc. Meanwhile, the division process into the reference figure proceeds in one direction, either the x direction or the y direction.
[0048] For this reason, in the general polygon division process, first, the vertex list creation unit 60 creates a vertex list for the general polygon.
[0049] Fig. 13 is a diagram showing an example of the vertex list before and after the sorting process in the first embodiment. As shown in the diagram on the left side of Fig. 13, the vertex list created by the vertex list creation unit 60 has the vertex numbers arranged in the order defined in the drawing data, starting with vertex 0, and then vertices 1, 2, 3, ..., 12. Then, the vertices of the hole pattern are arranged in this order, 13, 14, 15, 16. The hole pattern is defined in the drawing data, for example, counterclockwise. Such a vertex list is not arranged along, for example, the x direction.
[0050] Therefore, the vertex sorting unit 62 sorts the vertex list in ascending order of x coordinate. Vertices with the same x coordinate are sorted in ascending order of y coordinate, for example. As a result, as shown in the right diagram of FIG. 13, the vertices are sorted in the order of vertex 0, vertex 11, vertex 9, vertex 12, ..., vertex 7.
[0051] Then, the line segment list creation unit 61 creates a line segment list indicating the sides of the polygon.
[0052] FIG. 14 is a diagram showing an example of the line segment list before and after the sorting process in the first embodiment. In the line segment list created by the line segment list creating unit 61, as shown in the left diagram of FIG. 14, the line segment numbers are arranged in the order of the vertices defined in the drawing data, in the order of line segment 0-1 connecting vertex 0 and vertex 1, line segment 1-2 connecting vertex 1 and vertex 2, line segment 3-2, line segment 3-4, line segment 5-4, . . . , line segment 0-12. The hole pattern is similarly arranged in the order of line segment 13-14, line segment 15-14, . . . , line segment 13-16. It is preferable to define the name of each line segment so that, for example, vertex 3, which has the smaller coordinate in the x direction among the two points of vertices 2 and 3, is displayed starting from vertex 3, such as line segment 3-2. Such a line segment list is not arranged along the x direction, for example.
[0053] Therefore, the line segment sorting processor 63 sorts the line segment list in ascending order of the x-coordinate of the starting point. Line segments with the same x-coordinate of the starting point are arranged, for example, in ascending order of the y-coordinate. Next, if there are multiple line segments with the same x-coordinate of the starting point, they are sorted in ascending order of the x-coordinate of the end point. As a result, as shown in the right diagram of FIG. 14, the lines are rearranged in the following order: line segment 0-12, line segment 11-12, line segment 11-10, line segment 9-10, line segment 0-1, ..., line segment 6-7.
[0054] Next, the line forming unit 64 forms y-direction lines passing through the vertices in the order of the sorted vertex list. Note that for vertices 0, 11, and 9 on the left side with the same x coordinate, extending a y-direction line does not form a reference figure that can be divided from a polygon, so there is no need to form a y-direction line. Similarly, for vertex 7 with the rightmost x coordinate, extending a y-direction line does not form a reference figure that can be divided from a polygon, so there is no need to form a y-direction line.
[0055] Next, the intersection calculation unit 65 extracts sides that intersect with the y-direction line that passes through the vertices in the order of the sorted vertex list, and calculates the coordinates of the intersection with the sides. In this case, the sorted line segment list can be used to calculate the intersecting sides (line segments). For example, a y-direction line extended from vertices 12 and 10 at the same x-coordinate intersects with line segments 0-1 and 9-8 at points other than the vertices. Therefore, the coordinates of the intersections between the y-direction line and line segment 0-1 and the coordinates of the intersections between the y-direction line and line segment 9-8 are calculated.
[0056] The graphic extraction unit 66 extracts a triangle surrounded by the three intersection points of vertices 0, 12 and line segment 0-1 (the intersection point of the y-direction line and line segment 0-1) and generates drawing data 2. Similarly, it extracts a triangle surrounded by the three intersection points of vertices 11, 12 and 10 and generates drawing data 2. Similarly, it extracts a triangle surrounded by the three intersection points of vertices 9, 10 and line segment 9-8 (the intersection point of the y-direction line and line segment 9-8) and generates drawing data 2.
[0057] Then, for the vertex with the next largest x coordinate in the sorted vertex list, the y-direction line formation process, the intersection point calculation process, and the figure extraction process are performed.
[0058] For example, the y-direction line passing through vertex 1 intersects with line segment 9-8. Therefore, the coordinates of the intersection of the y-direction line and line segment 9-8 are calculated. Then, a trapezoid enclosed by four intersections, namely the intersection of the y-direction line passing through vertex 12 with line segment 0-1, the intersection of the y-direction line passing through vertex 12 with line segment 9-8, and the intersection of vertex 1 and the y-direction line passing through vertex 1 with line segment 9-8, is extracted, and drawing data 2 is generated.
[0059] By repeating the above process, the general polygon can be divided into a plurality of reference figures, and a plurality of reference figures can be extracted from the general polygon.
[0060] Conventionally, the above-mentioned general polygon division process has been performed on all polygons, regardless of the type of polygon shape. However, in this general polygon division process, as described above, the creation and sorting of a vertex list and the creation and sorting of a line segment list are performed, which takes time. In addition, a process is required to identify which line segments intersect with the y-direction line using the line segment list, and this identification process is also one of the factors that increase the processing time. In addition, when a y-direction line intersects with multiple line segments, such as the y-direction line passing through vertex 15, it is necessary to perform intersection calculations multiple times, which is another factor that increases the processing time.
[0061] Therefore, in the first embodiment, the method of division into reference figures is changed for each type of polygon shape. In the first embodiment, the method of division into reference figures for X-monotonic polygons, Y-monotonic polygons, and convex polygons is changed from general polygon division processing to individual division processing for each type.
[0062] In the X-monotone polygon division processing step (S200), if the polygon is determined to be an X-monotone polygon that is monotonic in the x direction (first direction), the X-monotone polygon division processing unit 52 divides the X-monotone polygon into a plurality of figures in the shape of any one of a plurality of preset reference figures, and generates drawing data 2 of the reference figures for the plurality of divided figures. A specific description will be given below.
[0063] Fig. 15 is a block diagram showing an example of the internal configuration of an X-monotonic polygon division processing unit in Embodiment 1. In Fig. 15, in X-monotonic polygon division processing unit 52, start point / last point identification unit 170, previous point / next point setting unit 171, coordinate comparison unit 172, coordinate comparison unit 173, base vertex setting unit 174, opposing vertex setting unit 175, line segment formation unit 176, intersection calculation unit 178, figure extraction unit 180, figure extraction unit 181, adjacent point identification unit 182, and determination unit 184 are arranged. Each of the "~ units" such as the start point / last point identification unit 170, the previous point / next point setting unit 171, the coordinate comparison unit 172, the coordinate comparison unit 173, the base vertex setting unit 174, the opposite vertex setting unit 175, the line segment formation unit 176, the intersection calculation unit 178, the figure extraction unit 180, the figure extraction unit 181, the adjacent point identification unit 182, and the determination unit 184 has a processing circuit. Such a processing circuit includes, for example, an electric circuit, a computer, a processor, a circuit board, a quantum circuit, or a semiconductor device. Each of the "~ units" may use a common processing circuit (the same processing circuit) or may use different processing circuits (separate processing circuits). Information input / output to / from start point / final point identification unit 170, previous point / next point setting unit 171, coordinate comparison unit 172, coordinate comparison unit 173, base vertex setting unit 174, opposing vertex setting unit 175, line segment formation unit 176, intersection calculation unit 178, figure extraction unit 180, figure extraction unit 181, adjacent point identification unit 182, and judgment unit 184, as well as information being calculated, are stored in memory 112 each time.
[0064] Fig. 16 is a flow chart showing an example of internal steps of the X-monotonic polygon division processing step in embodiment 1. In Fig. 16, the X-monotonic polygon division processing step (S200) in embodiment 1 performs a series of steps including a start point / last point specification step (S201), a previous point / next point setting step (S202), a coordinate comparison step (S204), a base vertex setting step (S206), an opposite vertex setting step (S208), a judgment step (S209), a line segment formation step (S210), an intersection point calculation step (S212), a figure extraction step (S214), an adjacent point specification step (S216), a coordinate comparison step (S220), and a final figure extraction step (S222).
[0065] If the determination in the determination step (S100) indicates that the polygon is an X-monotonic polygon that is monotonic in the x direction, the processing in each step of FIG. 16 is carried out.
[0066] In the start point / final point identification step (S201), the start point / final point identification unit 170 reads out drawing data 1 of an X-monotonic polygon that is monotonic in the x direction (first direction) and in which the coordinates of each vertex are defined in the order that they form the figure, stored in, for example, the memory 112 (storage device), and identifies the vertex that is the leftmost point on the near side in the x direction in the X-monotonic polygon and the vertex that is the rightmost point on the far side in the x direction. The vertex with the smallest x coordinate of the vertices defined in the drawing data 1 may be identified as the leftmost point, and the vertex with the largest x coordinate may be identified as the rightmost point.
[0067] Fig. 17 is a diagram for explaining a method of dividing an X-monotonic polygon in embodiment 1. In the example of Fig. 17, for example, a dodecagonal X-monotonic polygon with vertices 0 to 11 is shown. In the example of Fig. 17, vertex 0 is the leftmost point and vertex 7 is the rightmost point.
[0068] In the previous point / next point setting step (S202), the previous point / next point setting unit 171 sets, starting from vertex 0, which is the leftmost point on the front side in the x direction, vertex 11 adjacent to the starting point on the previous side and vertex 1 adjacent to the starting point on the subsequent side in the order of coordinates of vertices 0 to 11 constituting an X monotonic polygon (figure) defined in the drawing data 1. Here, a case is shown in which the vertices of each figure are defined in the drawing data 1 in the order in which the figure is constituted in a clockwise direction.
[0069] As the coordinate comparison step (S204), the coordinate comparison unit 172 reads out the drawing data 1 of a monotone polygon that is monotone in the x direction and is defined in the order in which the coordinates 0 to 11 of each vertex constitute a figure, which is stored in, for example, the memory 112 (storage device), and as a first comparison process, the coordinates of the x direction of the vertex 11 adjacent to the starting point in the coordinate order of each vertex 0 to 11 constituting the X monotone polygon defined in the drawing data 1 are compared with each other. For example, the vertex preceding the vertex 0 that is the leftmost point is P_lower, and the vertex following the vertex is P_upper. In the example of FIG. 17, the vertex 11 is the first P_lower, and the vertex 1 is the first P_upper. Then, the x coordinates of P_lower and P_upper are compared.
[0070] In the base vertex setting step (S206), the base vertex setting unit 174 sets the vertex with the smaller x coordinate as the base vertex as a result of the comparison in the n-th (n is a natural number) base vertex setting process. In the example of Fig. 17, in the first base vertex setting process, vertex 11 is set as the base vertex.
[0071] In the opposing vertex setting step (S208), in the n-th (n is a natural number) opposing vertex setting process, the vertex having the larger x coordinate as a result of the comparison is set as the opposing vertex. In the example of Fig. 17, in the first opposing vertex setting process, vertex 1 is set as the opposing vertex.
[0072] In the determination step (S209), the determination unit 184 determines whether the set base vertex is the final point (rightmost point) as the nth (n is a natural number) determination process. For example, in the first determination process, the first base vertex is vertex 11, and therefore it is determined that it is not vertex 7, which is the rightmost point. If the set base vertex is not the final point (rightmost point), the process proceeds to a line segment formation step (S210). If the set base vertex is the final point (rightmost point), the process proceeds to a final figure extraction step (S222).
[0073] As the line segment forming step (S210), the line segment forming unit 176 forms a line segment parallel to the y direction (second direction) perpendicular to the x direction from the base vertex to an opposite side connecting the opposite vertex and a vertex adjacent to the opposite vertex that has a smaller coordinate than the base vertex, as the nth (n is a natural number) line segment forming process. In the first line segment forming process, a line segment parallel to the y direction perpendicular to the x direction is formed from the vertex 11 that is the base vertex to an opposite side 0-1 that connects the vertex 1 that is the opposite vertex and the vertex 0 that is adjacent to the opposite vertex 1 and has a smaller x coordinate than the base vertex. In other words, in the comparison, a line segment connecting a point with a larger x coordinate than the base vertex and its previous point is formed as an opposite side, and a line segment parallel to the Y axis is drawn from the base vertex to the opposite side.
[0074] As an intersection calculation step (S212), the intersection calculation unit 178 calculates the coordinates of the intersection between the line segment extending from the base vertex and the opposite side as the n-th coordinate calculation process. In the first coordinate calculation process, the coordinates of the intersection between the line segment extending from the vertex 11 in the y direction and the opposite side 0-1 are calculated.
[0075] As a figure extraction step (S214), the figure extraction unit 180 extracts a figure surrounded by a line segment extending in the y direction, a line segment extending in the y direction formed in the n-1th line segment forming process immediately preceding the line segment extending in the y direction in the x direction, and at least a part of two sides of an X monotone polygon connected by the line segment extending in the y direction, as one of a plurality of preset reference figures, and generates drawing data 2. Alternatively, when there is no line segment extending in the y direction formed in the n-1th line segment forming process immediately preceding the line segment extending in the x direction, the figure extracted by a vertex having a smaller x coordinate than the line segment extending in the y direction, and at least a part of two sides of an X monotone polygon connected by the line segment extending in the y direction is extracted as one of a plurality of preset reference figures, and generates drawing data 2. In the drawing data 2, the coordinates of the vertices of the reference figure are defined, for example, in a clockwise order so as to form a figure. The generated drawing data 2 is stored in the storage device 144. 17, since there is no line segment extending in the y direction immediately before the vertex 11 in the x direction in the first reference figure extraction process, a figure enclosed by vertex 0, which has a smaller x coordinate than the line segment extending in the y direction from vertex 11, and at least a part of line segments 0-11 and 0-1, which are two sides connecting the line segment extending in the y direction of the X monotonic polygon, is divided and extracted from the X monotonic polygon as one of the reference figures, for example, a triangle. Then, drawing data 2 is generated that defines the coordinates of the intersections of vertex 0, vertex 11, and the calculated line segment 0-1, arranged, for example, in a clockwise direction, and output to storage device 144.
[0076] In the adjacent point identification step (S216), the adjacent point identification unit 182 identifies, as an n-th adjacent point identification process, a vertex adjacent in the x direction to the base vertex as an adjacent point. In the first adjacent point identification process, vertex 10 adjacent in the x direction to vertex 11, which is the base vertex, is identified as an adjacent point. Then, since vertex 1, which is P_upper, remains as an opposite vertex, vertex 10 is newly set as P_lower.
[0077] In the coordinate comparison step (S220), the coordinate comparison unit 173 compares the x coordinates of the vertex adjacent to the base vertex in the x direction with the opposite vertex whose coordinate was larger in the nth comparison process as the (n+1)th comparison process. In the second comparison process, the coordinates of vertex 10, which has newly become P_lower, are compared with vertex 1, which remains as the opposite vertex.
[0078] Then, the process returns to the base vertex setting step (S206), and the steps from the base vertex setting step (S206) to the coordinate comparison step (S220) are repeated until the base vertex that is set becomes the rightmost point (final point). Note that the vertex with the larger x coordinate in the coordinate comparison step (S220) returns to the opposing vertex setting step (S208).
[0079] Therefore, in the example of FIG. 17, the base vertex of the second round is vertex 1. Also, the opposite vertex is vertex 10. Then, a line segment parallel to the y direction from vertex 1 is extended to the opposite side 11-10, and the intersection point is calculated. Then, as the second reference figure extraction process, a trapezoid surrounded by a line segment extending in the y direction from vertex 1, a line segment extending in the y direction from vertex 1 formed in the first line segment formation process immediately before in the x direction of the line segment extending in the y direction from vertex 1, and at least a part of line segment 0-1 and line segment 11-10, which are two sides connecting the line segment extending in the y direction from vertex 1 of the X monotone polygon, is extracted as one of a plurality of preset reference figures, and drawing data 2 is generated. Then, in the second adjacent point identification process, vertex 2 adjacent in the x direction to vertex 1, which is the base vertex, is identified as an adjacent point. Then, since vertex 10, which is P_lower, remains as an opposite vertex, vertex 2 is newly set as P_upper. Then, in the third comparison process, vertex 2, which has newly become P_upper, is compared with vertex 10, which remains as the opposing vertex. Then, the base vertex for the third comparison process becomes vertex 10. Also, the opposing vertex becomes vertex 2. Thereafter, this operation is repeated.
[0080] As a final figure extraction step (S222), when the vertex adjacent to the base vertex in the x direction reaches the most forward vertex in the x direction as the final reference figure extraction process, the figure extraction unit 181 extracts a figure surrounded by the line segment formed in the previous line segment formation process, the most forward vertex, and at least a part of the two sides connecting the line segment formed in the previous line segment formation process of the X monotone polygon as one of the multiple reference figures, and generates drawing data 2. In the example of FIG. 17, when the base vertex is vertex 6, vertex 7 adjacent to vertex 6 becomes the rightmost point in the next adjacent point identification process, so when this is reached, a triangle, for example, surrounded by the line segment extending from vertex 6 in parallel to the y direction, vertex 7 becoming the rightmost point, and at least a part of the line segments 6-7 and 8-7 that are the sides connecting the line segment extending from vertex 6 in parallel to the y direction is extracted as one of the reference figures. Then, drawing data 2 is generated.
[0081] According to the X-monotonic polygon division processing step (S200), the base vertex is shifted in the x direction from the leftmost point, so that the creation of a vertex list and the vertex sorting process can be eliminated. Also, the opposite side intersecting with the line segment extending in the y direction from the base vertex is the side connecting the opposite vertex and the vertex immediately before it, so that the creation of a line segment list and the line segment sorting process can be eliminated. Therefore, the processing time for dividing an X-monotonic polygon can be significantly reduced compared to the case where the general polygon division processing (S110) method is used. In the general polygon division processing (S110) method, when the number of vertices is n, the amount of calculation is generally larger than O(n), whereas according to the X-monotonic polygon division processing step (S200), the amount of calculation can be reduced to O(n). O indicates the Landau symbol.
[0082] In the above example, the base vertices are set in ascending order of x coordinates in the +x direction in the coordinate system of the drawing data 1, with the start point being the leftmost point and the end point being the rightmost point, and the base vertices are extracted in the +x direction, but the present invention is not limited to this. For example, it is also preferable to set the base vertices in ascending order of x coordinates in the -x direction (another example of the first direction) in the coordinate system of the drawing data 1, with the start point being the rightmost point and the end point being the leftmost point, and extract the base figure in the -x direction. The ascending order of x coordinates in the -x direction is synonymous with the ascending order of x coordinates in the +x direction.
[0083] In the above example, the reference figure is extracted in order from the leftmost point to the rightmost point of the X-monotonic polygon, but the present invention is not limited to this. The reference figure may be extracted in order from both the leftmost and rightmost points of the X-monotonic polygon toward the center in the x direction.
[0084] In the Y monotone polygon division processing step (S300), if the polygon is determined to be a Y monotone polygon that is monotone in the y direction (another example of the first direction), the Y monotone polygon division processing unit 54 divides the Y monotone polygon into a plurality of figures in the shape of any one of a plurality of preset reference figures, and generates drawing data 2 of the reference figures for the plurality of divided figures. A specific description will be given below.
[0085] An example of the internal configuration of the Y monotone polygon division processing unit 54 in the first embodiment is similar to that shown in Fig. 15. Moreover, an example of the internal steps of the Y monotone polygon division processing step (S300) in the first embodiment is similar to that shown in Fig. 16.
[0086] If the determination in the determination step (S100) indicates that the polygon is a Y-monotonic polygon that is monotonic in the y direction, the processing in each step of FIG. 16 is carried out.
[0087] In the start point / end point identification step (S201), the start point / end point identification unit 170 reads out drawing data 1 of a Y-monotonic polygon that is monotonic in the y direction (another example of the first direction) and in which the coordinates of each vertex are defined in the order that constitutes the figure, stored in, for example, the memory 112 (storage device), and identifies the vertex that is the lowest point on the nearest side in the y direction in the Y-monotonic polygon and the vertex that is the highest point on the farthest side in the y direction. The vertex with the smallest y coordinate of each vertex defined in the drawing data 1 may be identified as the lowest point, and the vertex with the largest y coordinate may be identified as the highest point. Here, the direction from bottom to top is defined as the y direction, but the direction from top to bottom may be defined as the y direction. In such a case, the starting point is the topmost point, and the final point is the bottommost point.
[0088] Fig. 18 is a diagram for explaining a method of dividing a Y monotonic polygon in embodiment 1. In the example of Fig. 18, for example, a dodecagonal X monotonic polygon having vertices 0 to 11 is shown. In the example of Fig. 18, vertex 0 is the lowest point and vertex 7 is the highest point.
[0089] In the previous point / next point setting step (S202), the previous point / next point setting unit 171 sets, starting from vertex 0, which is the lowest point on the nearest side in the y direction, vertex 11 adjacent to the starting point on the previous side and vertex 1 adjacent to the next side in the coordinate order of each of vertices 0 to 11 constituting a Y monotonic polygon (figure) defined in the drawing data 1. Here, a case is shown in which the vertices of each figure are defined in the drawing data 1 in the order in which the figure is constituted in a clockwise direction.
[0090] As the coordinate comparison step (S204), the coordinate comparison unit 172 reads out the drawing data 1 of a monotone polygon that is monotone in the y direction and is defined in the order in which the coordinates 0 to 11 of each vertex constitute a figure, which is stored in, for example, the memory 112 (storage device), and as a first comparison process, the coordinates of the y direction of the vertex 11 adjacent to the starting point in the coordinate order of each vertex 0 to 11 constituting the Y monotone polygon defined in the drawing data 1 are compared with each other, starting from the vertex 0 on the front side in the y direction of the Y monotone polygon. For example, the vertex preceding the vertex 0 that is the lowest point is P_right, and the vertex following the vertex is P_left. In the example of FIG. 18, the vertex 11 is the first P_right, and the vertex 1 is the first P_left. Then, the y coordinates of P_right and P_left are compared.
[0091] In the base vertex setting step (S206), the base vertex setting unit 174 sets the vertex with the smaller y coordinate as the base vertex as a result of the comparison in the n-th (n is a natural number) base vertex setting process. In the example of Fig. 18, in the first base vertex setting process, vertex 11 is set as the base vertex.
[0092] In the opposing vertex setting step (S208), as the n-th (n is a natural number) opposing vertex setting process, the vertex with the larger y coordinate as a result of the comparison is set as the opposing vertex. In the example of Fig. 18, vertex 1 is set as the opposing vertex in the first opposing vertex setting process.
[0093] In the determination step (S209), the determination unit 184 determines whether the set base vertex is the final point (topmost point) as the nth (n is a natural number) determination process. For example, in the first determination process, the first base vertex is vertex 11, and it is determined that it is not vertex 7, which is the topmost point. If the set base vertex is not the final point (topmost point), the process proceeds to a line segment formation step (S210). If the set base vertex is the final point (topmost point), the process proceeds to a final figure extraction step (S222).
[0094] As the line segment forming step (S210), the line segment forming unit 176 forms a line segment parallel to the x direction (another example of the second direction) perpendicular to the y direction from the base vertex to an opposite side connecting the opposite vertex and a vertex adjacent to the opposite vertex that has a smaller coordinate than the base vertex, as the nth (n is a natural number) line segment forming process. In the first line segment forming process, a line segment parallel to the x direction perpendicular to the y direction is formed from the vertex 11 that is the base vertex to an opposite side 0-1 that connects the vertex 1 that is the opposite vertex and the vertex 0 that is adjacent to the opposite vertex 1 and has a smaller y coordinate than the base vertex. In other words, in the comparison, a line segment connecting a point with a larger y coordinate than the base vertex and its previous point is formed as an opposite side, and a line segment parallel to the X axis is drawn from the base vertex to the opposite side.
[0095] As an intersection calculation step (S212), the intersection calculation unit 178 calculates the coordinates of the intersection between the line segment extending from the base vertex and the opposite side as the n-th coordinate calculation process. In the first coordinate calculation process, the coordinates of the intersection between the line segment extending from the vertex 11 in the x direction and the opposite side 0-1 are calculated.
[0096] As a figure extraction step (S214), the figure extraction unit 180 extracts a figure surrounded by a line segment extending in the x direction, a line segment extending in the x direction formed in the n-1th line segment forming process immediately before the line segment extending in the x direction, and at least a part of two sides of a Y monotone polygon connected by the line segment extending in the x direction, as one of a plurality of preset reference figures, and generates drawing data 2. Alternatively, when there is no line segment extending in the x direction formed in the n-1th line segment forming process immediately before the line segment extending in the y direction, the figure extracted by a vertex having a smaller x coordinate than the line segment extending in the x direction, and at least a part of two sides of a Y monotone polygon connected by the line segment extending in the x direction, as one of a plurality of preset reference figures, and generates drawing data 2. In the drawing data 2, the coordinates of the vertices of the reference figure are defined, for example, in a clockwise order so as to form a figure. The generated drawing data 2 is stored in the storage device 144. 18, since there is no line segment extending in the x direction immediately before the y direction in the first reference figure extraction process, a figure surrounded by vertex 0, whose y coordinate is smaller than the line segment extending in the x direction from vertex 11, and at least a part of line segments 0-11 and 0-1, which are two sides connecting the line segments extending in the x direction of the Y monotone polygon, is divided and extracted from the Y monotone polygon as one of the reference figures, for example, a triangle. Then, drawing data 2 is generated that defines the coordinates of the intersections of vertex 0, vertex 11, and the calculated line segment 0-1, arranged, for example, in a clockwise direction, and output to storage device 144.
[0097] In the adjacent point identification step (S216), the adjacent point identification unit 182 identifies, as the n-th adjacent point identification process, a vertex adjacent in the y direction to the base vertex as an adjacent point. In the first adjacent point identification process, vertex 10 adjacent in the y direction to vertex 11, which is the base vertex, is identified as an adjacent point. Then, since vertex 1, which is P_left, remains as the opposite vertex, vertex 10 is newly set as P_right.
[0098] In the coordinate comparison step (S220), the coordinate comparison unit 173 compares the y coordinates of the vertex adjacent to the base vertex in the y direction with the opposing vertex whose coordinate was larger in the nth comparison process as the (n+1)th comparison process. In the second comparison process, the coordinates of vertex 10, which has newly become P_right, are compared with vertex 1, which remains as the opposing vertex.
[0099] Then, the process returns to the base vertex setting step (S206), and the steps from the base vertex setting step (S206) to the coordinate comparison step (S220) are repeated until the set base vertex becomes the uppermost point (final point). Note that the vertex with the larger y coordinate in the coordinate comparison step (S220) returns to the opposing vertex setting step (S208).
[0100] Therefore, in the example of FIG. 18, the base vertex of the second round is vertex 1. Also, the opposite vertex is vertex 10. Then, a line segment parallel to the x direction is extended from vertex 1 to opposite side 11-10, and the intersection point is calculated. Then, as the second reference figure extraction process, a trapezoid surrounded by a line segment extending in the x direction from vertex 1, a line segment extending in the x direction from vertex 1 formed in the first line segment formation process that is one line segment before the line segment extending in the x direction from vertex 1 in the y direction, and at least a part of line segment 0-1 and line segment 11-10 that are two sides connecting the line segment extending in the x direction from vertex 1 of the Y monotone polygon is extracted as one of a plurality of preset reference figures, and drawing data 2 is generated. Then, in the second adjacent point identification process, vertex 2 adjacent in the y direction to vertex 1, which is the base vertex, is identified as an adjacent point. Then, since vertex 10, which is P_right, remains as an opposite vertex, vertex 2 is newly set as P_left. Then, in the third comparison process, vertex 2, which has newly become P_left, is compared with vertex 10, which remains as the opposing vertex. Then, the base vertex for the third comparison process becomes vertex 10. Also, the opposing vertex becomes vertex 2. Thereafter, such operations are repeated.
[0101] As a final figure extraction step (S222), when the vertex adjacent to the base vertex in the y direction reaches the most forward vertex in the y direction as the final reference figure extraction process, the figure extraction unit 181 extracts a figure surrounded by the line segment formed in the previous line segment formation process, the most forward vertex, and at least a part of the two sides connecting the line segment formed in the previous line segment formation process of the Y monotone polygon as one of the multiple reference figures, and generates drawing data 2. In the example of FIG. 18, when the base vertex is vertex 6, vertex 7 adjacent to vertex 6 becomes the highest point in the next adjacent point identification process, so when this is reached, a triangle, for example, surrounded by the line segment extending parallel to the x direction from vertex 6, vertex 7 becoming the highest point, and at least a part of the line segments 6-7 and 8-7 that are the sides connecting the line segment extending parallel to the x direction from vertex 6 is extracted as one of the reference figures. Then, drawing data 2 is generated.
[0102] According to the Y monotonic polygon division processing step (S300), the base vertex is shifted in the y direction from the lowest point, making it possible to eliminate the need to create a vertex list and sort the vertices. Also, the opposite side that intersects with the line segment extending from the base vertex in the x direction becomes the side that connects the opposite vertex and the vertex immediately before it, making it possible to eliminate the need to create a line segment list and sort the line segments. Therefore, the processing time for dividing a Y monotonic polygon can be significantly reduced compared to the case where the general polygon division processing (S110) method is used. In the general polygon division processing (S110) method, when the number of vertices is n, the amount of calculation is generally greater than O(n), whereas according to the Y monotonic polygon division processing step (S300), the amount of calculation can be reduced to O(n).
[0103] In the above example, the X monotone polygon division process (S200) and the Y monotone polygon division process step (S300) are performed separately, but the present invention is not limited to this. If a Y monotone polygon is determined to be a Y monotone polygon, the Y monotone polygon may be rotated 90° by the rotation process (S106) in Fig. 5 to become an X monotone polygon, and the X monotone polygon division process (S200) may be performed. In this case, after the division process, the divided multiple reference figures are all rotated -90° to create drawing data 2 that is returned to the original coordinates. When the rotation process (S106) in Fig. 5 is performed, the Y monotone polygon division process step (S300) is omitted.
[0104] In the above example, the base vertices are set in ascending order of y coordinates in the +y direction in the coordinate system of the drawing data 1, with the start point being the lowest point and the end point being the highest point, and the reference figure is extracted in the +y direction, but the present invention is not limited to this. For example, it is also preferable to set the base vertices in ascending order of y coordinates in the -y direction (another example of the first direction) in the coordinate system of the drawing data 1, with the start point being the highest point and the end point being the lowest point, and extract the reference figure in the -y direction. The ascending order of y coordinates in the -y direction is synonymous with the ascending order of y coordinates in the +y direction.
[0105] In the above example, the reference figures are extracted in order from the lowest point to the highest point of the Y monotone polygon, but the present invention is not limited to this. The reference figures may be extracted in order from both the lowest point and the highest point of the Y monotone polygon toward the center in the y direction.
[0106] In the convex polygon division processing step (S400), if the polygon is determined to be a convex polygon, the convex polygon division processing unit 56 divides the convex polygon into a plurality of figures in the shape of any one of a plurality of preset reference figures, and generates drawing data 2 of the reference figure for each of the divided figures. In the convex polygon division processing, the convex polygon is divided using a median line segment that bisects the convex polygon, connecting the vertex closest to the front in the x direction (or y direction) and the vertex furthest away in the x direction in the convex polygon. A specific description will be given below.
[0107] Fig. 19 is a block diagram showing an example of the internal configuration of the convex polygon division processing unit in the first embodiment. In Fig. 19, convex polygon division processing unit 56 includes starting point / farthest point identification unit 270, central line segment formation unit 272, base vertex setting unit 274, line segment formation unit 276, intersection calculation unit 278, figure extraction unit 280, figure extraction unit 281, adjacent point identification unit 282, judgment unit 283, judgment unit 284, and figure extraction unit 286. Each of the "~ units" such as starting point / farthest point identification unit 270, central line segment formation unit 272, base vertex setting unit 274, line segment formation unit 276, intersection calculation unit 278, figure extraction unit 280, figure extraction unit 281, adjacent point identification unit 282, judgment unit 283, judgment unit 284, and figure extraction unit 286 has a processing circuit. Such a processing circuit includes, for example, an electric circuit, a computer, a processor, a circuit board, a quantum circuit, or a semiconductor device. Each "~ unit" may use a common processing circuit (the same processing circuit), or may use different processing circuits (separate processing circuits). Information input to and output from the start point / farthest point identification unit 270, the central line segment formation unit 272, the base vertex setting unit 274, the line segment formation unit 276, the intersection calculation unit 278, the figure extraction unit 280, the figure extraction unit 281, the adjacent point identification unit 282, the judgment unit 283, the judgment unit 284, and the figure extraction unit 286, and information during calculation are stored in the memory 112 each time.
[0108] Fig. 20 is a flow chart showing an example of internal steps of the convex polygon division processing step in embodiment 1. In Fig. 20, the convex polygon division processing step (S400) in embodiment 1 carries out a series of steps including a start point / farthest point specification step (S401), a central line segment formation step (S402), a base vertex setting step (S404), a determination step (S408), a line segment formation step (S410), an intersection point calculation step (S412), a figure extraction step (S414), a figure extraction step (S416), an adjacent point specification step (S420), a determination step (S422), and a final figure extraction step (S424).
[0109] If the result of the determination in the determination step (S100) is that the polygon is a convex polygon, the processing in each step of FIG. 20 is carried out.
[0110] As a start point / farthest point identifying step (S401), the start point / farthest point identifying unit 270 reads out the drawing data of a convex polygon in which the coordinates of each vertex are defined in the order that constitutes the figure, stored in, for example, the memory 112 (storage device), and identifies the two most distant vertices by projecting the convex polygon onto a line segment drawn in, for example, the x direction (an example of the first direction). In other words, the start point / farthest point identifying unit 270 reads out the drawing data 1 of a convex polygon in which the coordinates of each vertex are defined in the order that constitutes the figure, stored in, for example, the memory 112 (storage device), and identifies the vertex that is the leftmost point (start point) on the near side in, for example, the x direction (an example of the first direction) in the convex polygon and the vertex that is the rightmost point (farthest point) farthest in, for example, the x direction. The vertex with the smallest x coordinate of the vertices defined in the drawing data 1 may be identified as the leftmost point, and the vertex with the largest x coordinate may be identified as the rightmost point.
[0111] Fig. 21 is a diagram for explaining an example of a division technique for a convex polygon in embodiment 1. Fig. 21 shows, for example, a decagonal convex polygon having vertices 0 to 9. In the example of Fig. 21, vertex 0 is the leftmost point and vertex 5 is the rightmost point.
[0112] As the central line segment forming step (S402), the central line segment forming unit 272 forms a central line segment that bisects the convex polygon connecting the two identified most distant vertices. In other words, the central line segment forming unit 272 forms a central line segment that bisects the convex polygon connecting the leftmost vertex on the nearest side in the x direction and the rightmost vertex that is the most distant from the leftmost vertex in the x direction. In the example of Fig. 21, a central line segment that connects vertices 0 and 5 is formed.
[0113] As a base vertex setting step (S404), the base vertex setting unit 274 sets the next vertex of the vertex set as the base vertex in the n-1th base vertex setting process as the base vertex in the n-1th base vertex setting process. Alternatively, if there is no vertex set as the base vertex in the n-1th base vertex setting process, the next vertex of the leftmost point is set as the base vertex. In the first base vertex setting process, since there is no vertex set as the base vertex in the n-1th base vertex setting process, the base vertex setting unit 274 sets the vertex 1, which is the next vertex of the leftmost point 0 on the front side in the x direction, as the base vertex. In other words, the base vertex setting unit 274 sets the vertex 1 adjacent to the starting point in the order of the coordinates of each vertex 0 to 9 constituting the convex polygon (figure) defined in the drawing data 1 as the base vertex, starting from the leftmost point 0 on the front side in the x direction. Here, a case is shown in which the vertices of each figure are defined in the drawing data 1 in the order in which the figure is constituted in a clockwise direction.
[0114] In the determination step (S408), the determination unit 283 determines whether the set base vertex is the rightmost point (the farthest point) as the n-th farthest point determination process. If the base vertex is not the rightmost point, the process proceeds to a line segment formation step (S410). If the base vertex is the rightmost point, the process proceeds to a figure extraction step (S416). In the first determination process, the base vertex is vertex 1, so it is determined that it is not vertex 5, which is the rightmost point.
[0115] As the line segment forming step (S410), the line segment forming unit 276 forms a line segment extending from the base vertex to the center line segment in parallel to the y direction (an example of the second direction) perpendicular to the x direction as the n-th line segment forming process. In the first line segment forming process, a line segment parallel to the y direction is formed from vertex 1 to the center line segment.
[0116] As the intersection calculation step (S412), the intersection calculation unit 278 calculates the coordinates of the intersection between the center line segment and a line segment extending parallel to the y direction from the base vertex, as the n-th intersection calculation process.
[0117] As a graphic extraction step (S414), the graphic extraction unit 280 extracts, as an n-th reference graphic extraction process, a plurality of graphics using any one of a plurality of preset reference graphics from a convex polygon using a central line segment, and generates drawing data 2. A graphic surrounded by a line segment connecting the n-th base vertex and the n-1th base vertex, a y-direction line segment extending from the n-th base vertex to the central line segment, a y-direction line segment extending from the n-1th base vertex to the central line segment, and a part of a central line segment connecting an n-th intersection of the y-direction line segment extending from the n-th base vertex and the central line segment and an n-1-th intersection of the y-direction line segment extending from the n-1th base vertex and the central line segment. Alternatively, if there is no y-direction line segment extending from the (n-1)th base vertex, a figure enclosed by a line segment connecting the nth base vertex and the vertex immediately preceding the nth base vertex, a y-direction line segment extending from the nth base vertex to the center line segment, and a portion of the center line segment connecting the vertex immediately preceding the nth base vertex and the nth intersection of the y-direction line segment extending from the nth base vertex and the center line segment is divided and extracted from the convex polygon. In the first figure extraction process, since there is no n-1th base vertex, a triangle enclosed by a line segment 0-1 connecting vertex 1, which is the first base vertex, and vertex 0 immediately preceding vertex 1, a y-direction line segment extending from vertex 1 to the center line segment, and a portion of the center line segment connecting vertex 0 and the intersection of the y-direction line segment extending from vertex 1 and the center line segment is divided and extracted from the convex polygon. Here, rendering data 2 is generated in which the coordinates of vertex 0, the coordinates of vertex 1, and the coordinates of the intersection between the y-direction line segment extending from vertex 1 and the center line segment are arranged, for example, in a clockwise direction. The generated rendering data 2 is stored in the storage device 144.
[0118] As a geometrical figure extraction step (S416), when the base vertex is the rightmost point, the geometrical figure extraction unit 281 divides and extracts from the convex polygon a triangle surrounded by a line segment connecting the base vertex and the vertex immediately before the base vertex, a y-direction line segment extending from the vertex immediately before the base vertex to the center line segment, and a line segment connecting the intersection of the y-direction line segment with the center line segment and the rightmost point, as one of the n-th reference geometrical figure extraction processes. Then, the geometrical figure extraction unit 281 generates drawing data 2 in which the vertices are arranged clockwise, and stores the data in the storage device 144.
[0119] In the adjacent point identification step (S420), the adjacent point identification unit 282 identifies the next vertex adjacent to the base vertex as an adjacent point in the n-th adjacent point identification process. In the first adjacent point identification process, vertex 2 is the adjacent point.
[0120] In the determination step (S422), the determination unit 284 determines whether the identified adjacent point is the leftmost point that will be the starting point as the n-th start point determination process. If the identified adjacent point is the leftmost point that will be the starting point, the process proceeds to the final figure extraction step (S424). If the identified adjacent point is not the leftmost point that will be the starting point, the process returns to the base vertex setting step (S404) and repeats each step from the base vertex setting step (S404) to the determination step (S422) until the identified adjacent point becomes the leftmost point that will be the starting point.
[0121] As a result, the remaining vertices, excluding the two vertices furthest apart in the x direction, are set as base vertices in order, and for each base vertex, a line segment parallel to the y direction (second direction) perpendicular to the x direction is formed from the base vertex to the center line segment. In other words, the remaining vertices, excluding the leftmost vertex and the rightmost vertex, are set as base vertices in order, and a line segment parallel to the y direction perpendicular to the x direction is formed from the base vertex to the center line segment. Then, the coordinates of the intersection between the y direction line segment extending from the base vertex and the center line segment are calculated. Then, a reference figure having a line segment in the y direction as one side is extracted. Therefore, the extracted reference figures each include a side extending in the y direction in the coordinate system of the drawing data.
[0122] For example, in the second reference figure extraction process, a trapezoid surrounded by a y-direction line segment extending from vertex 2 to the center line segment, a y-direction line segment extending from vertex 1 to the center line segment, a line segment 1-2 connecting vertex 1 and vertex 2, and a line segment connecting the intersection of the y-direction line segment extending from vertex 2 with the center line segment and the intersection of the y-direction line segment extending from vertex 1 with the center line segment is extracted as one of a plurality of preset reference figures, and drawing data 2 is generated. Then, in the second adjacent point identification process, vertex 3, which is the next point adjacent to vertex 2, the base vertex, is identified as the adjacent point. Thereafter, such operations are repeated.
[0123] For example, in the ninth reference figure extraction process, a trapezoid surrounded by a y-direction line segment extending from vertex 9 to the center line segment, a y-direction line segment extending from vertex 8 to the center line segment, a line segment 9-8 connecting vertex 9 and vertex 8, and a line segment connecting an intersection of the y-direction line segment extending from vertex 9 and the center line segment and an intersection of the y-direction line segment extending from vertex 8 and the center line segment is extracted as one of a plurality of preset reference figures, and drawing data 2 is generated. Then, in the ninth adjacent point identification process, vertex 0, which is the next point adjacent to vertex 0, the base vertex, is identified as an adjacent point. Since vertex 0 is the starting point, the process proceeds to a final figure extraction step (S424).
[0124] In the final figure extraction step (S424), when the base vertex is the leftmost point, the figure extraction unit 286 divides and extracts from the convex polygon a triangle surrounded by a line segment connecting the base vertex and the vertex immediately before the base vertex, a y-direction line segment extending from the vertex immediately before the base vertex to the center line segment, and a line segment connecting the intersection of the y-direction line segment with the center line segment and the leftmost point. Then, it generates drawing data 2 in which the vertices are arranged clockwise, and stores it in the storage device 144.
[0125] In the above example, the frontmost vertex and the farthest vertex are identified in the +x direction in the coordinate system of the drawing data, but the present invention is not limited to this. It is sufficient to identify the farthest vertex in the same direction as the frontmost vertex in either the +x direction or the -x direction in the coordinate system of the drawing data. Therefore, the center line segment is formed by connecting the leftmost point and the rightmost point that are one of the farthest vertices in the same direction as the frontmost vertex in either the +x direction or the -x direction in the coordinate system of the drawing data.
[0126] In the above example, the case where the central line segment is formed by connecting the leftmost point and the rightmost point which are the vertices farthest in the same direction as the vertex on the front side in one of the +x direction and the -x direction in the coordinate system of the drawing data, is described, but the present invention is not limited to this. The central line segment may be formed by connecting the lowest point and the highest point which are the vertices farthest in the same direction as the vertex on the front side in one of the +y direction and the -y direction in the coordinate system of the drawing data, and the other. For example, the case where the central line segment is formed by connecting the lowest point which is the vertex on the front side in the y direction in the coordinate system of the drawing data and the highest point which is the vertex farthest from the lowest point in the +y direction will be described below. A specific description will be given below.
[0127] In this case, as a start point / furthest point identification step (S401), the start point / furthest point identification unit 270 reads out drawing data 1 of a convex polygon in which the coordinates of each vertex are defined in the order that constitutes the figure, stored in, for example, the memory 112 (storage device), and identifies the vertex of the convex polygon that is the lowest point (start point) closest to the viewer in, for example, the y direction (another example of the first direction) and the vertex that is the top point (furthest point) furthest away in, for example, the y direction. Of the vertices defined in the drawing data 1, the vertex with the smallest y coordinate may be identified as the leftmost point, and the vertex with the largest y coordinate may be identified as the rightmost point. In this example, the y direction is from bottom to top, but the y direction may be from top to bottom. In this case, the starting point is the highest point and the farthest point is the lowest point.
[0128] Fig. 22 is a diagram for explaining another example of a convex polygon division technique in embodiment 1. Fig. 22 shows, for example, a decagonal convex polygon having vertices 0 to 9. In the example of Fig. 22, vertex 0 is the lowest point and vertex 5 is the highest point.
[0129] In the central line segment forming step (S402), the central line segment forming unit 272 forms a central line segment that bisects the convex polygon, connecting the lowest vertex closest to the front in the y direction and the furthest vertex from the lowest vertex in the y direction. In the example of Fig. 22, a central line segment that connects vertices 0 and 5 is formed.
[0130] As a base vertex setting step (S404), the base vertex setting unit 274 sets the next vertex of the vertex set as the base vertex in the n-1th base vertex setting process as the base vertex in the n-1th base vertex setting process. Alternatively, if there is no vertex set as the base vertex in the n-1th base vertex setting process, the next vertex of the leftmost point is set as the base vertex. In the first base vertex setting process, since there is no vertex set as the base vertex in the n-1th base vertex setting process, the base vertex setting unit 274 sets the vertex 1, which is the next vertex of the lowest point vertex 0 on the nearest side in the y direction, as the base vertex. In other words, the base vertex setting unit 274 sets the vertex 1 adjacent to the starting point in the order of the coordinates of each vertex 0 to 9 constituting the convex polygon (figure) defined in the drawing data 1 as the base vertex, starting from the lowest point vertex 0 on the nearest side in the y direction. Here, a case is shown in which the vertices of each figure are defined in the drawing data 1 in the order in which the figure is constituted in a clockwise direction.
[0131] In the determination step (S408), the determination unit 283 determines whether the set base vertex is the uppermost point (the farthest point) as the n-th farthest point determination process. If the base vertex is not the uppermost point, the process proceeds to a line segment formation step (S410). If the base vertex is the uppermost point, the process proceeds to a figure extraction step (S416). In the first determination process, since the base vertex is vertex 1, it is determined that it is not vertex 5, which is the uppermost point.
[0132] As the line segment forming step (S410), the line segment forming unit 276 forms a line segment extending from the base vertex to the center line segment in parallel to the x direction (an example of the second direction) perpendicular to the y direction as the n-th line segment forming process. In the first line segment forming process, a line segment parallel to the x direction is formed from vertex 1 to the center line segment.
[0133] As the intersection calculation step (S412), the intersection calculation unit 278 calculates the coordinates of the intersection between the center line segment and a line segment extending parallel to the x direction from the base vertex, as the n-th intersection calculation process.
[0134] As a figure extraction step (S414), the figure extraction unit 280 extracts a plurality of figures using any one of a plurality of preset reference figures from a convex polygon using a central line segment as an n-th reference figure extraction process, and generates drawing data 2. A figure surrounded by a line segment connecting the n-th base vertex and the n-1th base vertex, an x-direction line segment extending from the n-th base vertex to the central line segment, an x-direction line segment extending from the n-1th base vertex to the central line segment, and a part of a central line segment connecting an n-th intersection point between the x-direction line segment extending from the n-th base vertex and the central line segment and an n-1-th intersection point between the x-direction line segment extending from the n-1th base vertex and the central line segment. Alternatively, if there is no x-direction line segment extending from the (n-1)th base vertex, a figure enclosed by a line segment connecting the nth base vertex and the vertex immediately preceding the nth base vertex, an x-direction line segment extending from the nth base vertex to the center line segment, and a portion of the center line segment connecting the vertex immediately preceding the nth base vertex and the nth intersection point between the x-direction line segment extending from the nth base vertex and the center line segment is divided and extracted from the convex polygon. In the first figure extraction process, since there is no n-1th base vertex, a triangle enclosed by a line segment 0-1 connecting vertex 1, which is the first base vertex, and vertex 0 immediately preceding vertex 1, an x-direction line segment extending from vertex 1 to the center line segment, and a portion of the center line segment connecting vertex 0 and the intersection point between the x-direction line segment extending from vertex 1 and the center line segment is divided and extracted from the convex polygon. Here, drawing data 2 is generated in which the coordinates of vertex 0, the coordinates of vertex 1, and the coordinates of the intersection between the x-direction line segment extending from vertex 1 and the center line segment are arranged, for example, in a clockwise direction. The generated drawing data 2 is stored in the storage device 144.
[0135] In the geometrical figure extraction step (S416), when the base vertex is the uppermost point, the geometrical figure extraction unit 281 divides and extracts from the convex polygon a triangle surrounded by a line segment connecting the base vertex and the vertex immediately before the base vertex, an x-direction line segment extending from the vertex immediately before the base vertex to the center line segment, and a line segment connecting the intersection of the x-direction line segment with the center line segment and the uppermost point, as one of the n-th reference geometrical figure extraction processes. Then, the geometrical figure extraction unit 281 generates drawing data 2 in which the vertices are arranged clockwise, and stores the data in the storage device 144.
[0136] In the adjacent point identification step (S420), the adjacent point identification unit 282 identifies the next vertex adjacent to the base vertex as an adjacent point in the n-th adjacent point identification process. In the first adjacent point identification process, vertex 2 is the adjacent point.
[0137] In the determination step (S422), the determination unit 284 determines whether the identified adjacent point is the lowest point that will be the starting point as the n-th start point determination process. If the identified adjacent point is the lowest point that will be the starting point, the process proceeds to the final figure extraction step (S424). If the identified adjacent point is not the lowest point that will be the starting point, the process returns to the base vertex setting step (S404) and repeats each step from the base vertex setting step (S404) to the determination step (S422) until the identified adjacent point is the lowest point that will be the starting point.
[0138] As a result, the remaining vertices except for the lowest vertex and the highest vertex are set as base vertices in order, and line segments parallel to the x direction and perpendicular to the y direction are formed from the base vertices to the center line segment. Then, the coordinates of the intersection between the x direction line segment extending from the base vertex and the center line segment are calculated. Then, a reference figure having one side that is a line segment in the x direction is extracted. Therefore, the extracted reference figures each include a side that extends in the x direction in the coordinate system of the drawing data.
[0139] For example, in the second reference figure extraction process, a trapezoid surrounded by an x-direction line segment extending from vertex 2 to the center line segment, an x-direction line segment extending from vertex 1 to the center line segment, a line segment 1-2 connecting vertex 1 and vertex 2, and a line segment connecting an intersection of the x-direction line segment extending from vertex 2 and the center line segment and an intersection of the x-direction line segment extending from vertex 1 and the center line segment is extracted as one of a plurality of preset reference figures, and drawing data 2 is generated. Then, in the second adjacent point identification process, vertex 3, which is adjacent to vertex 2, the base vertex, is identified as an adjacent point. Thereafter, such operations are repeated.
[0140] For example, in the ninth reference figure extraction process, a trapezoid surrounded by an x-direction line segment extending from vertex 9 to the center line segment, an x-direction line segment extending from vertex 8 to the center line segment, a line segment 9-8 connecting vertex 9 and vertex 8, and a line segment connecting an intersection of the x-direction line segment extending from vertex 9 and the center line segment and an intersection of the x-direction line segment extending from vertex 8 and the center line segment is extracted as one of a plurality of preset reference figures, and drawing data 2 is generated. Then, in the ninth adjacent point identification process, vertex 0, which is the next point adjacent to vertex 0, which is the base vertex, is identified as an adjacent point. Since vertex 0 is the starting point, the process proceeds to a final figure extraction step (S424).
[0141] In the final figure extraction step (S424), when the base vertex is the lowest point, the figure extraction unit 286 divides and extracts from the convex polygon a triangle surrounded by a line segment connecting the base vertex and the vertex immediately before the base vertex, an x-direction line segment extending from the vertex immediately before the base vertex to the center line segment, and a line segment connecting the intersection of the x-direction line segment with the center line segment and the lowest point. Then, it generates drawing data 2 in which the vertices are arranged clockwise, and stores it in the storage device 144.
[0142] According to the convex polygon division processing step (S400), the base vertex is shifted from the start point of the convex polygon toward the farthest point and from the farthest point toward the start point for each vertex on the opposite side of the central line segment, so that it is possible to eliminate the need to create a vertex list and sort the vertices. In addition, the side that intersects with the line segment extending from the base vertex in the y direction (or x direction) becomes the central line segment, so that it is possible to eliminate the need to create a line segment list and sort the line segment. Furthermore, in the case of a convex polygon, the opposite side is only the central line segment, so that the opposite side needs to be found only once. Therefore, the processing time for dividing a convex polygon can be significantly reduced compared to the case where the general polygon division processing method (S110) is used. In the general polygon division processing method (S110), when the number of vertices is n, the amount of calculation is generally larger than O(n), whereas the convex polygon division processing step (S400) can reduce the amount of calculation to O(n).
[0143] In the above example, the reference figures are extracted in sequence from the start point of the convex polygon toward the farthest point, and from the farthest point toward the start point for each vertex on the opposite side of the center line segment, but the present invention is not limited to this. Reference figures may be extracted in sequence from both sides of the start point and the farthest point of the convex polygon toward the center in the direction in which the start point and the farthest point are specified. Alternatively, the base vertices may be shifted in sequence in the same direction for each vertex on both sides of the center line segment.
[0144] When generating shot data, which will be described later, a rasterization process (conversion process to pixel data) is performed. In this rasterization process, when determining the start and end points of pixels with gradation values on one pixel line, if the input figure is complex, the process also becomes complex. Therefore, in the first embodiment, the polygon is divided into reference figures before processing. In this case, a figure with as few diagonal lines as possible can be processed more efficiently. In the first embodiment, a line segment extending in the x or y direction constitutes at least one side of the figure, so the shot data generation process can be carried out efficiently.
[0145] As described above, the drawing process is performed using drawing data 2 obtained by dividing drawing data 1 including polygons into reference figures.
[0146] Fig. 23 is a conceptual diagram for explaining an example of the writing operation in the embodiment 1. As shown in Fig. 23, the position of a writing region 30 (bold line) of the sample 101 is defined based on the position of an alignment mark 14. The writing area 30 (bold line) is virtually divided into a plurality of rectangular stripe areas 32 with a predetermined width in the y direction, for example. The example of FIG. 23 shows a case where the writing area 30 of the sample 101 is divided into a plurality of stripe areas 32 with a width size substantially the same as the size of a designed irradiation area 34 (writing field) that can be irradiated by one irradiation of the multibeam 20, for example, in the y direction. The size in the x direction of the designed irradiation area 34 of the multibeam 20 can be defined by the number of beams in the x direction × the beam pitch in the x direction. The size in the y direction of the rectangular irradiation area 34 can be defined by the number of beams in the y direction × the beam pitch in the y direction.
[0147] First, the XY stage 105 is moved and adjusted so that the irradiation area 34 of the multi-beam 20 is positioned at the left end of the first stripe area 32 or at a position further to the left, and the first stripe area 32 is written. When writing the first stripe area 32, the XY stage 105 is moved, for example, in the -x direction, so that writing proceeds relatively in the x direction. The XY stage 105 is moved continuously, for example, at a constant speed. After writing the first stripe area 32 is completed, the stage position is moved in the -y direction by the size of the width of the stripe area 32.
[0148] Next, the irradiation area 34 of the multi-beam 20 is adjusted to be positioned at the left end of the second stripe region 32 or at a position further to the left, and the XY stage 105 is moved, for example, in the -x direction to proceed with drawing relatively in the x direction, thereby drawing the second stripe region 32.
[0149] In the example of FIG. 23, the drawing of each stripe region 32 is performed in the same direction, but the present invention is not limited to this. For example, the drawing of the next stripe region 32 to be drawn after the stripe region 32 drawn in the x direction may be performed in the -x direction by moving the XY stage 105 in the x direction, for example. By drawing while changing the direction alternately in this way, the stage movement time can be shortened, and the drawing time can be shortened. In one shot, a plurality of shot patterns, the same number as the number of holes 22 at most, are formed at once by the multi-beam 20 formed by passing through each hole 22 of the shaping aperture array substrate 203.
[0150] In addition, in the example of Fig. 23, the stage movement for the writing process of each stripe region is performed once, but the present invention is not limited to this. It is also preferable to perform multiple writing by moving the stage multiple times over the same position. In this case, it is preferable to perform multiple writing while shifting the stage by an amount of shift that is 1 / n of the width of the stripe region in the y direction, for example.
[0151] FIG. 24 is a diagram showing an example of the irradiation area of the multibeam and the pixel to be written in the first embodiment. In FIG. 24, the stripe area 32 is divided into a plurality of mesh areas in a mesh shape by the beam size of the multibeam 20, for example. Each mesh area is a pixel 36 to be written (unit irradiation area, irradiation position, or writing position). The size of the pixel 36 to be written is not limited to the beam size, and may be an arbitrary size regardless of the beam size. For example, the size may be 1 / n (n is an integer equal to or greater than 1) of the beam size. The example of FIG. 24 shows a case where the writing area of the sample 101 is divided into a plurality of stripe areas 32 in the y direction, for example, with a width substantially equal to the size of the irradiation area 34 (writing field) that can be irradiated by one irradiation of the multibeam 20. The size in the x direction of the rectangular irradiation area 34 can be defined by the number of beams in the x direction x the pitch between beams in the x direction. The size in the y direction of the rectangular irradiation area 34 can be defined by the number of beams in the y direction x the pitch between beams in the y direction. In the example of FIG. 24, for example, a 512×512 array of multi-beams is shown in an abbreviated form to an 8×8 array of multi-beams. A plurality of pixels 28 (beam drawing positions) that can be irradiated with one shot of the multi-beam 20 are shown in the irradiation area 34. The pitch between adjacent pixels 28 is the pitch between each beam of the multi-beam. A rectangular area surrounded by the size of the beam pitch in the x and y directions constitutes one sub-irradiation area 29 (pitch cell). In the example of FIG. 24, a case is shown in which each sub-irradiation area 29 is constituted by, for example, 4×4 pixels.
[0152] As a shot data generating process, first, the shot data generating unit 70 generates shot data for each pixel 36. Specifically, the operation is as follows. First, the shot data generating unit 70 reads out the drawing data 2 from the storage device 144, and calculates, for each pixel 36, the pattern area density ρ' within the pixel 36. This process corresponds to a rasterization process, and is executed, for example, for each stripe region 32.
[0153] Next, the shot data generation unit 70 first virtually divides the writing region (here, for example, the stripe region 32) into a plurality of proximity mesh regions (mesh regions for calculating proximity effect correction) in a mesh shape of a predetermined size. The size of the proximity mesh region is preferably set to about 1 / 10 of the range of influence of the proximity effect, for example, about 1 μm. The shot data generation unit 70 reads out the writing data 2 from the storage device 144, and calculates, for each proximity mesh region, the pattern area density ρ″ of the pattern to be placed in that proximity mesh region.
[0154] Next, the shot data generation unit 70 calculates a proximity effect correction irradiation coefficient Dp(x) (corrected dose) for correcting the proximity effect for each proximity mesh region. The unknown proximity effect correction irradiation coefficient Dp(x) can be defined by a threshold model for proximity effect correction similar to the conventional method, using the backscattering coefficient η, the dose threshold Dth of the threshold model, the pattern area density ρ″, and the distribution function g(x).
[0155] Next, the shot data generating unit 70 calculates the incident irradiation amount D(x) (dose amount) for irradiating each pixel 36. The incident irradiation amount D(x) may be calculated, for example, as a value obtained by multiplying the reference irradiation amount Dbase by the proximity effect correction irradiation coefficient Dp and the pattern area density ρ'. The reference irradiation amount Dbase can be defined, for example, as Dth / (1 / 2+η). In this way, the incident irradiation amount D(x) for each pixel 36 with the proximity effect corrected based on the layout of the multiple figure patterns defined in the drawing data can be obtained.
[0156] Next, the shot data generating unit 70 calculates the irradiation time for each pixel 36. The irradiation time for each pixel 36 can be calculated by dividing the incident irradiation amount D(x) of the pixel by the current density J.
[0157] As a data processing step, the data processing unit 72 rearranges the obtained irradiation time data for each pixel 36 in shot order and stores it in the storage device 142. The transfer processing unit 74 transfers the irradiation time data to the deflection control circuit 130 in shot order.
[0158] In the drawing process, under the control of the drawing control unit 76, the drawing mechanism 150 draws a pattern on the sample 101 on the XY stage 105 using the multi-beam 20 while moving the XY stage 105. In the multi-beam drawing, while the drawing process is being performed, shot data of the region to be subjected to the drawing process later is generated in parallel. For example, while the k-th stripe region 32 is being drawn, shot data for the k+2-th stripe region 32 is generated in parallel. By repeating this operation, drawing is performed on all the stripe regions 32.
[0159] Fig. 25 is a diagram for explaining an example of a multi-beam writing operation in the first embodiment. The example of Fig. 25 shows a case where writing is performed with four different beams in each sub-irradiation area 29 that includes one beam irradiation position of each of the multi-beams 20 and is surrounded by the inter-beam pitch. Also, the example of Fig. 25 shows a writing operation in which the XY stage 105 moves continuously at a speed of moving by a distance of, for example, two beam pitches while writing an area of 1 / 4 (one of the number of beams used for irradiation) in each sub-irradiation area 29. The example of Fig. 25 shows a case where each sub-irradiation area 29 is composed of, for example, 4 x 4 pixels.
[0160] In the drawing operation shown in the example of FIG. 25, for example, while the XY stage 105 moves a distance of two beam pitches in the x direction, the deflector 209 shifts the irradiation position (pixel 36) in sequence, and four shots of the multibeam 20 are fired in a shot cycle T to draw (expose) four different pixels 36 in the same sub-irradiation area 29. While drawing (exposing) the four pixels 36, the deflector 208 deflects the entire multibeam 20 collectively so that the relative position of the irradiation area 34 to the sample 101 does not shift due to the movement of the XY stage 105, thereby making the irradiation area 34 follow the movement of the XY stage 105. In other words, tracking control is performed. When one tracking cycle is completed, tracking is reset and the irradiation area 34 returns to the previous tracking start position. Since the drawing of the first pixel row from the left in each sub-irradiation region 29 has been completed, after a tracking reset, in the next tracking cycle, the deflector 209 first deflects to align (shift) the drawing position of a beam different from the first pixel row so as to draw an undrawn pixel row, for example, the second pixel row from the left, in each sub-irradiation region 29. By repeating this operation during drawing of the stripe region 32, the position of the irradiation regions 34 (34a to 34o) of the multi-beam 20 moves sequentially as shown in the lower diagram of FIG.
[0161] As described above, according to the first embodiment, it is possible to reduce the time required for the division process of dividing a polygon into reference figures, and therefore the rendering time can be reduced.
[0162] Although the embodiments have been described above with reference to specific examples, the present invention is not limited to these specific examples. Also, the processing described in the first embodiment may be executed by a computer. A program for causing a computer to execute such processing may be stored in a non-transitory, tangible, readable recording medium, such as a magnetic disk device.
[0163] Although the description of the device configuration, control method, and other parts not directly necessary for the explanation of the present invention have been omitted, the required device configuration and control method can be appropriately selected and used. For example, the description of the control unit configuration that controls the drawing device 100 has been omitted, but it goes without saying that the required control unit configuration can be appropriately selected and used.
[0164] In addition, all drawing data generating methods, drawing data generating apparatuses, charged particle beam drawing apparatuses, and programs that include elements of the present invention and that can be appropriately modified by those skilled in the art are included in the scope of the present invention. [Explanation of symbols]
[0165] 20 Multibeam 22 holes 24 Control electrode 25 Passing hole 26 Counter electrode 29 Sub-irradiation area 30 drawing area 31 Blanking aperture array board 32 Stripe Area 34 Irradiation area 36 pixels 41 Control circuit 50 Shape determination processing unit 52 X monotone polygon division processing unit 54 Y monotone polygon division processing section 56 Convex polygon division processing unit 57 General polygon division processing unit 60 Vertex list creation section 61 Line List Creation Section 62 Vertex sorting processor 63 Line Sorting Processor 64 Straight line forming part 65 Intersection calculation part 66 Shape Extraction Section 70 Shot data generation unit 72 Data Processing Department 74 Transfer Processing Unit 76 Drawing control section 80 Division processing section 100 Drawing device 101 Sample 102 Electron Tube 103 Drawing room 105 XY Stage 110 Control computer 112 Memory 130 Deflection control circuit 132,134 DAC amplifier unit 136 Lens control circuit 138 Stage Control Mechanism 139 Stage Position Measuring Instrument 140,142 Storage device 150 Drawing mechanism 160 Control Circuits 170 Start point / end point identification section 171 Previous point / next point setting section 172 Coordinate Comparison Section 173 Coordinate Comparison Section 174 Base vertex setting section 175 Opposite vertex setting section 176 Line Segment Formation Section 178 Intersection calculation part 180 Figure Extraction Section 181 Figure Extraction Section 182 Adjacent point identification unit 184 Judgment Department 200 Electron Beam 201 Electron Gun 202 Lighting lens 203 Shaped aperture array substrate 204 Blanking Aperture Array Mechanism 205 Reduction Lens 206 Limiting Aperture Board 207 Objective Lens 208 Deflector 209 Deflector 210 Mirror 270 Starting point / farthest point identification part 272 Central line forming part 274 Base vertex setting section 276 Line Segment Formation Section 278 Intersection calculation part 280 Figure Extraction Unit 281 Figure Extraction Unit 282 Adjacent Point Identification Unit 283 Judgment Department 284 Judgment section 286 Shape Extraction Unit 330 Membrane Region
Claims
1. A step of reading out rendering data of a convex polygon, the rendering data being stored in a storage device and defined in the order in which the coordinates of the vertices form a figure, and projecting the convex polygon onto a line segment drawn in a first direction to identify two vertices that are most distant from each other; forming a median line segment that bisects the convex polygon connecting the two most distant vertices; extracting a plurality of figures using any one of a plurality of preset reference figures from the convex polygon using the central line segment, and generating drawing data; A drawing data generating method comprising:
2. a step of sequentially setting the remaining vertices, except for the two vertices that are the furthest from each other in the first direction, as base vertices, and forming, for each base vertex, a line segment that is parallel to a second direction perpendicular to the first direction from the base vertex to the central line segment; calculating, for each of the base vertices, coordinates of an intersection between the line segment extending from the base vertex and the center line segment; 2. The drawing data generating method according to claim 1, further comprising:
3. 2. The drawing data generating method according to claim 1, wherein the first direction is any one of +x, -x, +y and -y directions in a coordinate system of the drawing data.
4. 2. The drawing data generating method according to claim 1, wherein the plurality of extracted figures include sides extending in the x-direction or the y-direction in a coordinate system of the drawing data.
5. The storage device stores rendering data for a plurality of polygons, reading out rendering data of the plurality of polygons from the storage device, and determining, for each polygon, a shape type of the polygon; 2. The drawing data generating method according to claim 1, wherein when the result of the determination is that the polygon is a convex polygon, each of the steps according to claim 1 is carried out.
6. a storage device for storing drawing data of a convex polygon in which the coordinates of each vertex are defined in the order that the polygon is formed; a specification unit that reads out rendering data of a convex polygon, the rendering data being stored in the storage device and defined in the order in which the coordinates of the vertices form a figure, and projects the convex polygon onto a line segment drawn in a first direction to specify two vertices that are most distant from each other; a central line segment forming portion that forms a central line segment that bisects the convex polygon connecting the two most distant vertices; an extraction processing unit that uses the central line segment to extract a plurality of figures using any one of a plurality of preset reference figures from the convex polygon, and generates drawing data; A drawing data generating device comprising:
7. a storage device for storing drawing data of a convex polygon in which the coordinates of each vertex are defined in the order that the polygon is formed; a specification unit that reads out rendering data of a convex polygon, the rendering data being stored in the storage device and defined in the order in which the coordinates of the vertices form a figure, and projects the convex polygon onto a line segment drawn in a first direction to specify two vertices that are most distant from each other; a central line segment forming portion that forms a central line segment that bisects the convex polygon connecting the two most distant vertices; an extraction processing unit that uses the central line segment to extract a plurality of figures using any one of a plurality of preset reference figures from the convex polygon, and generates drawing data; a writing mechanism for writing, on a sample, a pattern of the plurality of figures, for which writing data has been generated, using a charged particle beam; A charged particle beam drawing apparatus comprising:
8. a function of reading out rendering data of a convex polygon, the rendering data being stored in a storage device and defined in the order in which the coordinates of the vertices form a figure, and projecting the convex polygon onto a line segment drawn in a first direction to identify the two vertices that are furthest apart; forming a median line segment that bisects the convex polygon connecting the two most distant vertices; a function of extracting a plurality of figures using any one of a plurality of preset reference figures from the convex polygon by using the central line segment, and generating drawing data; A program for causing a computer to execute the following.
Citation Information
Patent Citations
Polygon painting-out method
JP1993061987A