AU770441B2 - Method and apparatus for adaptive polygonisation - Google Patents

Method and apparatus for adaptive polygonisation Download PDF

Info

Publication number
AU770441B2
AU770441B2 AU97314/01A AU9731401A AU770441B2 AU 770441 B2 AU770441 B2 AU 770441B2 AU 97314/01 A AU97314/01 A AU 97314/01A AU 9731401 A AU9731401 A AU 9731401A AU 770441 B2 AU770441 B2 AU 770441B2
Authority
AU
Australia
Prior art keywords
curve
vertices
determining
stroke width
influence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
AU97314/01A
Other versions
AU9731401A (en
Inventor
Cameron Bolitho Browne
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPR2172A external-priority patent/AUPR217200A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU97314/01A priority Critical patent/AU770441B2/en
Publication of AU9731401A publication Critical patent/AU9731401A/en
Application granted granted Critical
Publication of AU770441B2 publication Critical patent/AU770441B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

S&FRef: 578757
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
Name and Address of Applicant: Actual Inventor(s): Address for Service: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome, Ohta-ku Tokyo 146 Japan Cameron Bolitho Browne Spruson Ferguson St Martins Tower,Level 31 Market Street Sydney NSW 2000 (CCN 3710000177) Method and Apparatus for Adaptive Polygonisation Invention Title: ASSOCIATED PROVISIONAL APPLICATION DETAILS [33] Country [31] Applic. No(s) AU PR2172 [32] Application Date 20 Dec 2000 The following statement is a full description of this invention, including the best method of performing it known to me/us:- Documcnr rcceived on: W 8 DEC 2J01 J 5815c METHOD AND APPARATUS FOR ADAPTIVE POLYGONISATION Technical Field of the Invention The present invention relates generally to the fields of computational geometry and computer graphics and, in particular, to a method and apparatus for the adaptive polygonisation of a set of finite curves. The invention also relates to a computer program product including a computer readable medium having recorded thereon a computer program for the adaptive polygonisation of a set of finite curves.
Background Art In the field of computational geometry it is often desired to convert a set of 10 planar curves into a connected set of line segments. This process is referred to as polygonisation. In some cases the original set of planer curves can themselves be line segments. A polygonisation process can often suffer from problems of scale or resolution due to an inappropriate choice of segmentation size. For example, polygonisation can become inefficient if too small a segmentation size is chosen, resulting in an overly 15 precise polygonisation.
Particularly in relation to computer graphics, traditional polygonisation methods :have generally involved sampling or subdividing a curve segment until the width or flatness of the subdivided curve segment falls below some threshold. At this threshold, subdivision of the curve segment is terminated and the particular segment is deemed flat enough to be considered a line segment and can be added to a particular polygon. For example, US Patent No. 5,666,472 discloses a method of polygonisation involving the subdivision of a three dimensional Bezier patch into a polygon and can be used for rendering 3D models. The method disclosed in US Patent No. 5,666,472 is based on curve segment width and generally ensures that a resulting polygon closely approximates a corresponding source curve to within a predetermined tolerance. However, for some 578757.doc -2applications, such as polygonisation prior to triangulation, accuracy of fit to an original curve can produce undesirable results.
Summary of the Invention It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
According to one aspect of the present invention there is provided a method of converting a curve into a set of line segments, said method comprising the steps of: determining a stroke width for said curve; selecting at least one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; and determining said set of line segments describing said planar curve based on said vertices and said selected points.
According to another aspect of the present invention there is provided a method of converting a curve into a set of line segments, said method comprising the steps of: determining a stroke width for said curve; selecting at one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; merging said vertices to form a single vertex and repeating steps to i. if said vertices are less than a predetermined threshold distance apart, otherwise determining new influence values for said vertices and determining line 25 segments describing said planar curve based on said vertices and each selected point; and repeating steps and for said new influence values.
578757.doc -3- According to still another aspect of the present invention there is provided an apparatus for converting a curve into a set of line segments, said apparatus comprising: means for determining a stroke width for said curve; means for selecting at least one point on said curve; means for determining an influence value for each selected point, said influence value being dependent on said stroke width; means for determining vertices on said curve utilising said influence values; and means for determining said set of line segments describing said planar curve based on said vertices and said selected points.
According to still another aspect of the present invention there is provided an apparatus for converting a curve into a set of line segments, said apparatus comprising means configured to perform the following steps: determining a stroke width for said curve; selecting at one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; merging said vertices to form a single vertex and repeating steps to if said vertices are less than a predetermined threshold distance apart, otherwise 20 determining new influence values for said vertices and determining line segments describing said planar curve based on said vertices and each selected point; and repeating steps and for said new influence values.
:According to still another aspect of the present invention there is provided a program for converting a curve into a set of line segments, said program comprising: code for determining a stroke width for said curve; code for selecting at least one point on said curve; ooo• 578757.doc -4code for determining an influence value for each selected point, said influence value being dependent on said stroke width; code for determining vertices on said curve utilising said influence values; and code for determining said set of line segments describing said planar curve based on said vertices and said selected points.
According to still another aspect of the present invention there is provided a program for converting a curve into a set of line segments, said program comprising code for performing the following steps: determining a stroke width for said curve; selecting at one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; merging said vertices to form a single vertex and repeating steps to if said vertices are less than a predetermined threshold distance apart, otherwise determining new influence values for said vertices and determining line segments describing said planar curve based on said vertices and each selected point; and repeating steps and for said new influence values.
:600 Brief Description of the Drawings 20 One or more embodiments of the present invention will now be described with reference to the drawings, in which: Fig. 1 shows the letter and the letter described by planar curves; Fig. 2 shows the letter described by a planar outline curve; Fig. 3 shows the letter described by a planar outline curve; 25 Fig. 4 shows an outline shape with key points and estimated stroke width 0 0" indicated; o 0:0e 0 578757.doc Figs. 5(a) shows a curve run between two key points on the outline shape of Fig. 4; Figs. 5(b) shows a curve run between two key points on the outline shape of Fig. 4; Figs. 5(c) shows a curve run between two key points on the outline shape of Fig. 4; Figs. 5(d) shows the curve run of Fig. 5(b) with vertices; Figs. 5(e) shows the curve run of Fig. 5 after the curve has been shortened; Figs. 6(a) shows the curve of Fig. 5(a) after being polygonised; 10 Figs. 6(b) shows the curve of Fig. 5(b) after being polygonised; Figs. 6(c) shows the curve of Fig. 5(c) after being polygonised; Fig. 7 shows the curve of Fig. 4 after being polygonised; Fig. 8(a) shows a curve run between curve key points; Fig. 8(b) shows the interior vertices of the curve of Fig. 8(a) after the curve has 15 been polygonised; Fig. 8(c) shows the interior vertices of the curve of Fig. 8(a) after the vertices have been merged; Fig. 9(a) shows a curve run between curve key points; Fig. 9(b) shows the interior vertices of the curve of Fig. 9(a) after the curve has been polygonised; Fig. 9(c) shows the interior vertices of the curve of Fig. 9(a) after the vertices have been merged; Fig. 10 is a flowchart showing a method of converting a planar curve into a set of line segments; and Fig. 11 is a schematic block diagram of a general purpose computer upon which the arrangements of the present invention can be practiced.
578757.doc -6- Detailed Description including Best Mode Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
Some portions of the description which follows are explicitly or implicitly presented in terms of algorithms and symbolic representations of operations on data within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the aoo 10 substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not •onecessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven a. 15 convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that the above and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, discussions utilising terms such as "scanning", "calculating", "determining", "replacing", "generating" "initialising", "outputting", or the like, refer to the action and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical (electronic) quantities within the registers and memories of the computer system into other data similarly represented as physical quantities within the 578757.doc computer system memories or registers or other such information storage, traasmission or display devices.
The present specification also discloses apparatus for performing the operations of the methods. Such apparatus may be specially constructed for the required purposes, or may comprise a general purpose computer or other device selectively activated or reconfigured by a computer program stored in the computer. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus.
Various general purpose machines may be used with programs in accordance with the teachings herein. Alternatively, the construction of more specialised apparatus to perform 10 the required method steps may be appropriate. The structure of a conventional general purpose computer will appear from the description below.
In addition, the present specification also discloses a computer readable medium comprising a computer program for performing the operations of the methods. The computer readable medium is taken herein to include any transmission medium for 15 communicating the computer program between a source and a designation. The transmission medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer. The transmission medium may also include a hard-wired medium such as exemplified in the Internet system, or wireless medium such as exemplified in the GSM mobile telephone system. The computer program is not intended to be limited to any particular programming language and implementation thereof It will be appreciated that a variety of programming languages and coding thereof may be used to implement the teachings of the invention as described herein.
For some polygonisation applications, such as polygonisation prior to triangulation, homogeneity of individual segment lengths is more desirable than accuracy of fit to an original curve. A method of converting a planar curve into a set of line 578757.doc -8segments by detecting key points along the curve and estimating an expected stroke width, is described below. The method retains key structural points of an original curve and provides finer resolution segmentation for finer featured parts of the original curve whilst maintaining overall homogeneity of line segment length.
The method of converting a planar curve into a set of line segments is preferably practiced using a conventional general-purpose computer system 1100, such as that shown in Fig. 11 wherein the processes described below with reference to Figs. 1 to can be implemented as software, such as an application program executing within the computer system 1100. In particular, the steps of the method of converting a planar curve 10 into a set of line segments are effected by instructions in the software that are carried out by the computer. The software can be divided into two separate parts; one part for carrying out the preferred method; and another part to manage the user interface between i the latter and the user. The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into *a.3 15 the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for performing polygonisation on a curve.
The computer system 1100 comprises a computer module 1101, input devices such as a keyboard 1102 and mouse 1103, output devices including a printer 1115 and a display device 1114. A Modulator-Demodulator (Modem) transceiver device 1116 is used by the computer module 1101 for communicating to and from a communications network 1120, for example connectable via a telephone line 1121 or other functional medium. The modem 1116 can be used to obtain access to the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN).
578757.doc The computer module 1101 typically includes at least one processorunit 1105, a memory unit 1106, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output interfaces including a video interface 1107, and an I/O interface 1113 for the keyboard 1102 and mouse 1103 and optionally a joystick (not illustrated), and an interface 1108 for the modem 1116. A storage device 1109 is provided and typically includes a hard disk drive 1110 and a floppy disk drive 11. A magnetic tape drive (not illustrated) may also be used. A CD- ROM drive 1112 is typically provided as a non-volatile source of data. The ~components 1105 to 1113 of the computer module 1101, typically communicate via an 10 interconnected bus 1104 and in a manner which results in a conventional mode of a..
S.operation of the computer system 1100 known to those in the relevant art. Examples of computers on which the arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
Typically, the application program of the is resident on the hard disk drive 1110 15 and read and controlled in its execution by the processor 1105. Intermediate storage of the program and any data fetched from the network 1120 may be accomplished using the semiconductor memory 1106, possibly in concert with the hard disk drive 1110. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 1-112 or 1111, or alternatively may be read by the user from the network 1120 via the modem device 1116. Still further, the software can also be loaded into the computer system 1100 from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer module 1101 and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing is merely exemplary of relevant computer readable mediums. Other computer 578757.doc readable media may be practiced without departing from the scope and spirit of the invention.
The method of converting a planar curve into a set of line segments can alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of Figs. 1 to 10. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
The methods are described in terms of planar outline curves composed of one or oe more edges, each of which is composed by a continuous set of planar Bezier curve 10 segments. However, the methods can be applied to any type of finite curve in any number of dimensions.
The following description includes a brief review of the terminology to be used in describing the method of converting a planar curve into a set of line segments.
Fig. 1 shows the letter and the letter described by planar curves 101 and 102. Key points (eg. 103 and 104) along the outline curves 101, 102 are shown circled.
These key points can include corners 103 or points of high curvature 104. Corners are herein defined as having first degree continuity between curve segments. Points of high curvature (eg. 104) are herein defined as having second degree continuity within or between curve segments, but with local maximum curvature above some threshold.
Following either of the outline curves 103 or 104 in a particular direction describes a series of edge segments between key points, which may be contained within a single outline curve segment or span several curve segments before a next key point is reached.
For example, a horizontal line is described by the curve segment 105 between the key points 103 and 106. The curve segment 105 is herein referred to as a "run".
Fig. 2 shows a planar shape described by a single planar outline curve 201.
The internal width (eg. 202) (herein referred to as the stroke width) of the shape is 578757.doc -11shown sampled at several points, and can be seen to be relatively uniform across the shape Fig. 3 shows a planar outline 301 describing the letter As seen in Fig. 3 the letter is described herein by a more ornate font, with considerable variation in stroke width across the letter from a point of thin stroke width 302 to a point of thick stroke width 303. In such a case, it is difficult to describe a single uniform stroke width for a closed shape. However, an approximation of stroke width for the letter can be made by considering run lengths between key points. For example, run lengths below a lower threshold (eg. 5% of shape height) can be used to describe ornaments, serifs, or flaws within a shape, whilst run lengths above the lower threshold but below some upper threshold (eg. 25% of shape height) can be used to give an indication of a shape's stroke width. Run length sizes within a range (eg. 25% of shape height) can be averaged to give an estimated stroke width for any shape. For shapes with no key points and hence no run lengths (eg. the letter a default estimate of stroke width (eg. 15% of shape 15 height) can be used. Alternatively, the estimated stroke width from related shapes (eg. the estimated stroke width of other characters within the same font) can be used to estimate the stroke width of a shape.
Fig. 4 shows an outline shape 401 with key points 402, 403, 404 and estimated stroke width 405. In this case, no run lengths fall within the lower and upper thresholds described above and an estimated stroke width can be used.
In accordance with the methods described herein, an 'influence value' is associated with each key point. The influence value indicates the estimated stroke width of a curve at the key point with which the influence value is associated. The influence value is preferably equal to the minimum of: run length to a previous key point; run length to a next key point; or 578757.doc -12estimated stroke width.
Figs. and will be used to describe the influence value. Figs. (b) and show three curve runs 501, 504, 507 between the curve key points (402, 403), (403, 404) and (402, 404), respectively, which together describe the curve 401. The influence of each key point is indicated by the radius of a circle (eg. 502), drawn with the particular key point (eg. 402) at the centre. The influence values 502 and 503 are both limited to their common run length due to the proximity of the key points 402 and 403 to each other. In accordance with the example of Figs. and influence value 505 is the same as value 503 as the influence values 505,503 are associated with the same key point 403), whilst influence values 506 and 508 belong to the same key point (ie., 404). Further, influence values 506 and 508 indicate the estimated stroke width of the shape 401 described by the curve runs 501, 504, 507 since neither run length 504 nor 507 adjoining the values 506, 508 is less than the values 506, 508.
Fig. 10 is a flowchart showing a method of converting a planar curve into a set of e. 15 line segments. The method is preferably configured as an application program being resident on the hard disk drive 1110 and being read and controlled in its execution by the processor 1105. The process begins at step 1001, where the curve to be polygonised is accessed from the hard disk drive 1110 or memory 1106. The curve can be accessed from any suitable source, for example, an image file. At the next step 1003, a stroke width is estimated by the processor 1105 for the shape described by the accessed curve. The stroke width for the shape can be estimated using any of the methods described above.
For example, an approximation of stroke width for the shape can be made by considering run lengths between key points on the particular curve describing the shape. The process continues at the next step 1005 where an edge of the curve is selected. At the next step 1007, the key points for the selected edge are determined by the processor 1105. The process continues at the next step 1009, where the influence values for the key points are 578757.doc -13determined. The influence values are initially set to the stroke width determined at step 1003. At the next step 1011, the processor 1105 selects a run for the chosen edge.
The process continues at the next step 1013, where interior vertices for the run are generated from the end points of the run. As an example, the curve run 504 is shown in Figs. 5(d) and The end point influence values 505 and 506 are intersected with the curve 504 to give polygon vertices 510 and 511 as seen in Fig. The curve run 504 is then shrunk so that the points 510 and 511 become the curve run 504 end key) points. The new influence values 512 and 513 for the points 510 and 511 are determined based on the influence values 505 and 506, respectively, that created them. The new ooooe' S-o 10 influence values 512 and 513 tend towards the estimated stroke width, so if the creating influence value, Ic (516), is less than the estimated stroke width, the new influence value, In (517), is a value in the range between the old influence value and the estimated stroke width. Any suitable interpolating function, such as linear midpoint interpolation, can be used to determine the new influence value as long as the new influence value tends towards the estimated stroke width.
The new influence values 512 and 513 are intersected with the curve run 504 to give new polygonal vertices 514 and 515 that then become the end points of the curve run 504. The vertices 514 and 515 are approximately one estimated stroke width apart so, in accordance with the methods described herein, the division process ends and the polygonal vertices for the run 504 have been determined as vertices 514 and 515.
The process of Fig. 10 continues at step 1015, where a determination is made as to whether the vertices determined at step 1013 are too close together. This determination is made on the basis of a predetermined threshold (eg. 50% of the stroke width). If the result of the determination at step 1015 is true then the process proceeds to step 1017 where the vertices are merged. As an example, Figs. and show a path terminating condition that results from the final division of a run 801. The polygonised 578757.doc -14run 807 has two vertices 804 and 805, as seen in Fig. that are within a predetermined threshold distance from each other, in accordance with this example. The vertices 804 and 805 can be combined to form a single vertex 806, as seen in Fig. and the division process can terminate for the run 801.
As a further example, Figs. and show a path terminating condition that results from the division of the curve run 901. The first division of the run 901 results in two vertices 904 and 905, as seen in Fig. In accordance with the example, the vertices 904 and 905 are close to the opposing end points 907 and 908 within a predetermined threshold (eg. 50% of the end point influence value). The vertices 904 and ooooo 10 905 can be combined with the end points 907 and 908 to leave no interior vertices along ""the resulting line segment 906, as seen in Fig. and the division process terminates for the curve run 901.
If the result of the determination at step 1015 is false then the process proceeds to step 1019 where the run is shortened as described above, and the vertices determined at °,i :15 step 1013 will thus form two vertices on the polygonised curve. The two line segments between each of the key points and the associated vertices will therefore form the polygonised curve At the next step 1021, new end points are assigned for the vertices determined at step 1013 and new influence values are determined for the new end points.
The process then returns to step 1013.
After the vertices are merged at step 1017, the process proceeds to step 1023, where a check is performed by the processor 1105 to determine whether there are any more runs to be processed. If there are more runs to be processed then the process returns to step 1011. Otherwise the process proceeds to step 1025 where if there are more edges to be processed then the process returns to step 1005. The process concludes when all edges of the curve have been processed.
578757.doc 15 The polygonised runs 601, 602 and 603 resulting from the polygonisation of individual runs 501, 504 and 507 between keypoints, are shown in Figs. and The keypoints are shown as dots (eg. 604) on the runs 601, 602 and 603. The' polygonised runs 601, 602 and 603 can be combined to give a single polygonal result 701, as shown in Fig. 7, for the original outline shape 401 as shown in Fig. 7.
The aforementioned preferred methods comprise a particular control flow. There are many other variants of the preferred methods which use different control flows without departing from the spirit or scope of the invention. Furthermore one or more of •the steps of the preferred methods may be performed in parallel rather sequentially.
10 The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
"In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including" and not "consisting only a. 15 of'. Variations of the word comprising, such as "comprise" and "comprises" have corresponding meanings.
o S• 578757.doc

Claims (4)

1. A method of converting a curve into a set of line segments, said method comprising the steps of: determining a stroke width for said curve; selecting at least one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; and determining said set of line segments describing said planar curve based on said vertices and said selected points.
2. The method according to claim 1, where said influence value is set to the minimum of said stroke width, a distance to a previous point from a first selected point and a distance to a next point from said first selected point.
3. The method according to claim 1, including the further step of merging said vertices to form a single vertex if said vertices are less than a predetermined threshold distance apart. 0 20
4. The method of claim 3, wherein said predetermined threshold distance is 0on dependent on said stroke width. The method according to claim 1, including the further step of determining influence values for each of said vertices. 0 2 l 0
578757.doc -17- 6. The method according to claim 5, wherein the influence values determined for each of said vertices are determined using an interpolation process 7. The method according to claim 1, wherein said stroke width is dependent on at least one of a distance between said selected points or another planar curve related to said planar curve. 8. The method according to claim 1, wherein said stroke width is a default value. 9. A method of converting a curve into a set of line segments, said method comprising the steps of: determining a stroke width for said curve; selecting at one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; merging said vertices to form a single vertex and repeating steps to if said vertices are less than a predetermined threshold distance apart, otherwise determining new influence values for said vertices and determining line 20 segments describing said planar curve based on said vertices and each selected point; and repeating steps and for said new influence values. 10. An apparatus for converting a curve into a set of line segments, said apparatus o*oo o comprising: means for determining a stroke width for said curve; means for selecting at least one point on said curve; 00000* 578757.doc -18- means for determining an influence value for each selected point, said influence value being dependent on said stroke width; means for determining vertices on said curve utilising said influence values; and means for determining said set of line segments describing said planar curve based on said vertices and said selected points. 11. The apparatus according to claim 10, further comprising means for setting said influence value is set to the minimum of said stroke width, a distance to a previous point from a first selected point and a distance to a next point from said first selected point. 12. The apparatus according to claim 10, further comprising means for merging said vertices to form a single vertex if said vertices are less than a predetermined threshold distance apart. 13. The apparatus of claim 12, wherein said predetermined threshold distance is dependent on said stroke width. 14. The apparatus according to claim 10, further comprising means for determining *0g0 influence values for each of said vertices. 0: see *°oo 0 S: 000 The apparatus according to claim 14, wherein the influence values determined for each of said vertices are determined using an interpolation process 16. The apparatus according to claim 10, wherein said stroke width is dependent on 0 oo 25 at least one of a distance between said selected points or another planar curve related to said planar curve. 000o00 578757.doc 19- 17. The apparatus according to claim 10, wherein said stroke width is a default value. 18. An apparatus for converting a curve into a set of line segments, said apparatus comprising means configured to perform the following steps: determining a stroke width for said curve; selecting at one point on said curve; determining an influence value for each selected point, said influence value being dependent on said stroke width; determining vertices on said curve utilising said influence values; merging said vertices to form a single vertex and repeating steps to if said vertices are less than a predetermined threshold distance apart, otherwise determining new influence values for said vertices and determining line segments describing said planar curve based on said vertices and each selected point; and repeating steps and for said new influence values. 19. A program for converting a curve into a set of line segments, said program comprising: 9o 20 code for determining a stroke width for said curve; code for selecting at least one point on said curve; code for determining an influence value for each selected point, said influence value being dependent on said stroke width; code for determining vertices on said curve utilising said influence values; and 25 code for determining said set of line segments describing said planar curve based 0d S* ]°on said vertices and said selected points. 578757.doc The program according to claim 19, where said influence value is set to the minimum of said stroke width, a distance to a previous point from a first selected point and a distance to a next point from said first selected point. 21. The program according to claim 19, further comprising code for merging said vertices to form a single vertex if said vertices are less than a predetermined threshold distance apart. 22. The program according to claim 21, wherein said predetermined threshold distance is dependent on said stroke width. 23. The program according to claim 19, further comprising code for determining influence values for each of said vertices. 24. The program according to claim 23, wherein the influence values determined for each of said vertices are determined using an interpolation process 6066 :oo 25. A program for converting a curve into a set of line segments, said program 6* OS comprising code for performing the following steps determining a stroke width for said curve; selecting at one point on said curve; determining an influence value for each selected point, said influence value 6 oo*O o •g being dependent on said stroke width; o o• 25 determining vertices on said curve utilising said influence values; o •S 0 578757.doc -21- merging said vertices to form a single vertex and repeating steps to if said vertices are less than a predetermined threshold distance apart, otherwise determining new influence values for said vertices and determining line segments describing said planar curve based on said vertices and each selected point; and repeating steps and for said new influence values. 26. The program according to any one of claims 19 to 25, said program being stored in a memory medium of an apparatus and being executed by a processor configured within said apparatus. 27. A method of converting a planar curve into a set of line segments, substantially as herein before described with reference to Figs. 1 to 28. A program for converting a planar curve into a set of line segments, substantially as herein before described with reference to Figs. 1 to 29. An apparatus for converting a planar curve into a set of line segments, substantially as herein before described with reference to Figs. 1 to DATED this Eighteenth Day of December 2003 Canon Kabushiki Kaisha Patent Attorneys for the Applicant SPRUSON FERGUSON *o*oo 578757.doc
AU97314/01A 2000-12-20 2001-12-18 Method and apparatus for adaptive polygonisation Ceased AU770441B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU97314/01A AU770441B2 (en) 2000-12-20 2001-12-18 Method and apparatus for adaptive polygonisation

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPR2172A AUPR217200A0 (en) 2000-12-20 2000-12-20 Method and apparatus for adaptive polygonisation
AUPR2172 2000-12-20
AU97314/01A AU770441B2 (en) 2000-12-20 2001-12-18 Method and apparatus for adaptive polygonisation

Publications (2)

Publication Number Publication Date
AU9731401A AU9731401A (en) 2002-06-27
AU770441B2 true AU770441B2 (en) 2004-02-19

Family

ID=25641863

Family Applications (1)

Application Number Title Priority Date Filing Date
AU97314/01A Ceased AU770441B2 (en) 2000-12-20 2001-12-18 Method and apparatus for adaptive polygonisation

Country Status (1)

Country Link
AU (1) AU770441B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586232A (en) * 1994-06-20 1996-12-17 Fujitsu Limited Projection view creation method with vector discrimination onto plane-represented curved surfaces
US5604852A (en) * 1995-01-31 1997-02-18 Compaq Computer Corporation Method and apparatus for displaying a parametric curve on a video display
US5666472A (en) * 1992-11-06 1997-09-09 Canon Kabushiki Kaisha Image processing apparatus and method for generating polygons for use in rendering an object

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666472A (en) * 1992-11-06 1997-09-09 Canon Kabushiki Kaisha Image processing apparatus and method for generating polygons for use in rendering an object
US5586232A (en) * 1994-06-20 1996-12-17 Fujitsu Limited Projection view creation method with vector discrimination onto plane-represented curved surfaces
US5604852A (en) * 1995-01-31 1997-02-18 Compaq Computer Corporation Method and apparatus for displaying a parametric curve on a video display

Also Published As

Publication number Publication date
AU9731401A (en) 2002-06-27

Similar Documents

Publication Publication Date Title
US7872648B2 (en) Random-access vector graphics
JP2806961B2 (en) Image coding method
US7535471B1 (en) Scale-adaptive fonts and graphics
US20100097383A1 (en) Graphics processing systems
JP2002523844A (en) Character recognition
US20040085559A1 (en) Apparatus for printing using non-overlapping graphic objects
JP2006521582A (en) Method and apparatus for determining anti-aliasing strength of pixel components from a two-dimensional distance field representing an object
US6459431B1 (en) Method and apparatus for orientating a set of finite n-dimensional space curves
AU2013221944A1 (en) Improve alignment of start and end of dashed curves
US7030881B2 (en) Method for converting two-dimensional objects to distance fields
AU770441B2 (en) Method and apparatus for adaptive polygonisation
US20040196288A1 (en) Method and apparatus for generating vector font
JP2006521627A (en) How to animate an object as a frame sequence according to a video script
US9218342B2 (en) Conversion of a document while retaining a format of an element of the document
AU770371B2 (en) Method and apparatus for fast skeleton and stroke extraction
Bloomberg et al. Document image applications
US10395621B2 (en) Method, system and apparatus for modifying a font character
JPH08293030A (en) Data storage format as well as method and apparatus for datastorage
AU5793801A (en) Method and apparatus for determining the area enclosed by a planar curve
Zou et al. Vectorization of cartoon drawings
AU743334B2 (en) Method and apparatus for orientating a character stroke
AU767739B2 (en) Method and apparatus for the automatic application of shape enhancement
Sarfraz et al. Towards automatic recognition of fonts using genetic approach
AU768344B2 (en) Animating character outlines
AU743290B2 (en) Method and apparatus for orientating a set of finite N-dimensional space curves

Legal Events

Date Code Title Description
DA3 Amendments made section 104

Free format text: THE NATURE OF THE AMENDMENT IS: SUBSTITUTE PATENT REQUEST REGARDING ASSOCIATED DETAILS

FGA Letters patent sealed or granted (standard patent)