AU743290B2 - Method and apparatus for orientating a set of finite N-dimensional space curves - Google Patents
Method and apparatus for orientating a set of finite N-dimensional space curves Download PDFInfo
- Publication number
- AU743290B2 AU743290B2 AU44788/99A AU4478899A AU743290B2 AU 743290 B2 AU743290 B2 AU 743290B2 AU 44788/99 A AU44788/99 A AU 44788/99A AU 4478899 A AU4478899 A AU 4478899A AU 743290 B2 AU743290 B2 AU 743290B2
- Authority
- AU
- Australia
- Prior art keywords
- traversal
- curves
- modulations
- edge
- graph
- 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
Links
Landscapes
- Complex Calculations (AREA)
- User Interface Of Digital Computer (AREA)
Description
S F Ref: 466678
AUSTRALIA
PATENTS ACT 1990 COMPLEE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
Name and Address of Applicant: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome Ohta-ku Tokyo 146
JAPAN
Actual Inventor(s): Address for Service: Invention Title: ASSOCIATED PROVISIONAL [31) Application No(s) PP5579 Cameron Bolitho Browne, Michael Richard Arnold and Neil Eric Carlyle.
Spruson Ferguson, Patent Attorneys Level 33 St Martins Tower, 31 Market Street Sydney, New South Wales, 2000, Australia Method and Apparatus for Orientating a Set of Finite N-Dimensional Space Curves APPLICATION DETAILS [333 Country
AU
[32] Application Date 28 August 1998 The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5815 -1- METHOD AND APPARATUS FOR ORIENTATING A SET OF FINITE N-DIMENSIONAL SPACE CURVES Field of Invention The present invention relates to a method and apparatus for orientating a set of finite n-dimensional space curves. The present invention also relates to a method and apparatus for orientating a set of stroke curves of characters. The invention further relates to a computer program product comprising a computer readable medium including a computer program for orientating a set of finite n-dimensional space curves. The invention also relates to a computer program product comprising a computer readable medium including a computer program for orientating a set of stroke curves of characters.
Background of Invention United States Patent No. 5,771,035 discloses a character generation device for :producing new fonts from a basic font and paste components. The device has a shape recogniser for extracting an element of a character of the basic font and recognising it's 15 shape. The shape recogniser determines the stroke angle of the element and the paste components are superposed at the angle matching the angle of the stroke. The device allows the easy generation of characters of a font without manually designing each character. However, this device suffers from the disadvantage that it is not possible to manipulate the stored basic font.
Summary of Invention It is an object of the present invention to ameliorate one or more disadvantages of the prior art.
According to one aspect of the invention there is provided a method of S"orientating a set of finite n-dimensional curves, the method comprising the steps of: generating an undirected graph having edges and vertices based upon a set of finite ndimensional curves; (ii) determining one or more of said vertices as one or more starting points; (iii) selecting one or more traversal modulations; (iv) traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; and orientating said set of finite ndimensional curves in accordance with said directed graph.
According to another aspect of the invention there is provided apparatus for Rorientating a set of finite n-dimensional curves, the apparatus comprising: generation CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 I \466678AU.doc means for generating an undirected graph having edges and vertices based upon a set of finite n-dimensional curves; determination means for determining one or more of said vertices as one or more starting points; selection means for selecting one or more traversal modulations; traversal means for traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; and orientation means for orientating said set of finite ndimensional curves in accordance with said directed graph.
According to another aspect of the invention there is provided a computer program product comprising a computer readable medium including a computer program for orientating a set of finite n-dimensional curves, the computer program product comprising: generation means for generating an undirected graph having edges and vertices based upon a set of finite n-dimensional curves; determination means for determining one or more of said vertices as one or more starting points; selection means 15 for selecting one or more traversal modulations; traversal means for traversing the edges go i of the undirected graph, commencing at said one or more starting points and assigning a "I direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; and orientation means for orientating said set of finite n-dimensional curves in accordance with said directed graph.
20 According to another aspect of the invention there is provided a method of orientating a set of stroke curves, the method comprising the steps of: deriving a set of 2-dimensional finite curves from a set of stroke curves; (ii) generating an undirected •graph having edges and vertices based upon said set of finite 2-dimensional curves; (iii) determining one or more of said vertices as one or more starting points; (iv) selecting one 25 or more traversal modulations; selecting a graph traversal technique; (vi) traversing the edges of the undirected graph in accordance with said selected technique, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; (vii) orientating said set of finite 2-dimensional curves in accordance with said directed graph; and (viii) orientating a set of stroke curves in accordance with said orientated set of curves.
According to another aspect of the invention there is provided a method of orientating a set of stroke curves, the method comprising the steps of: deriving a set of S2-dimensional finite curves from a set of stroke curves; (ii) generating an undirected CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 1\466678AU.doc graph having edges and vertices based upon said derived set of finite 2-dimensional curves; (iii) determining one or more of said vertices of said undirected graph as one or more starting points; (iv) selecting one or more traversal modulations; traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; wherein said traversing step (v) comprises the substeps of: setting all said edges as unmarked; traversing an unmarked edge; assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking said currently traversed edge; and repetitively performing substeps to commencing with said ::one or more starting points, until all edges have been marked;(vi) orientating said set of 15 finite 2-dimensional curves in accordance with said directed graph; and (vii) orientating a o set of stroke curves in accordance with said orientated set of curves.
"i According to another aspect of the invention there is provided apparatus for orientating a set of stroke curves, the apparatus comprising: means for deriving a set of 2dimensional finite curves from a set of stroke curves; means for generating an undirected 20 graph having edges and vertices based upon said set of finite 2-dimensional curves; means for determining one or more of said vertices as one or more starting points; means for selecting one or more traversal modulations; means for selecting a graph traversal S°technique; means for traversing the edges of the undirected graph in accordance with said .o selected technique, commencing at said one or more starting points and assigning a 25 direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; means for orientating said set of finite 2dimensional curves in accordance with said directed graph; and means for orientating a set of stroke curves in accordance with said orientated set of curves.
According to another aspect of the invention there is provided apparatus for orientating a set of stroke curves, the apparatus comprising: means for deriving a set of 2dimensional finite curves from a set of stroke curves; means for generating an undirected graph having edges and vertices based upon said derived set of finite 2-dimensional curves; means for determining one or more of said vertices of said undirected graph as one or more starting points; means for selecting one or more traversal modulations; LCFP1417AU OPEN41 466678AU I:ELEC\CISRA\OPENOPEN41\466678AU.doc CFP1417AU OPEN41 466678AU I:\ELEC\CL5RA\OPEN\OPEN41\466678AU.doc -4traversal means for traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; wherein said traversing means comprises: setting means for setting all said edges as unmarked; traversing means for traversing an unmarked edge; first assignation means for assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; second assignation means for assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking means for marking said currently traversed edge; and repetition means for repetiting the operations of the traversing means, first and second assignation means, and marking means, commencing with said one or more starting points, until all edges have been marked; means for orientating said set of finite 2-dimensional curves in accordance with said directed graph; and means for 15 orientating a set of stroke curves in accordance with said orientated set of curves.
According to another aspect of the invention there is provided a computer "•program product comprising a computer readable medium including a computer program for orientating a set of stroke curves, the computer program product comprising: means for deriving a set of 2-dimensional finite curves from a set of stroke curves; means for 20 generating an undirected graph having edges and vertices based upon said set of finite 2dimensional curves; means for determining one or more of said vertices as one or more starting points; means for selecting one or more traversal modulations; means for o selecting a graph traversal technique; means for traversing the edges of the undirected graph in accordance with said selected technique, commencing at said one or more 25 starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; means for orientating said set of finite 2-dimensional curves in accordance with said directed graph; and means for orientating a set of stroke curves in accordance with said orientated set of curves.
According to another aspect of the invention there is provided a computer program product comprising a computer readable medium including a computer program for orientating a set of stroke curves, the computer program product comprising: means for deriving a set of 2-dimensional finite curves from a set of stroke curves; means for L generating an undirected graph having edges and vertices based upon said derived set of CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41 \466678AU.doc finite 2-dimensional curves; means for determining one or more of said vertices of said undirected graph as one or more starting points; means for selecting one or more traversal modulations; traversal means for traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; wherein said traversing means comprises: setting means for setting all said edges as unmarked; traversing means for traversing an unmarked edge; first assignation means for assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; second assignation means for assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking means for marking said currently traversed edge; and repetition means for repetiting the operations of the traversing means, first and second assignation means, and marking 15 means, commencing with said one or more starting points, until all edges have been marked; means for orientating said set of finite 2-dimensional curves in accordance with i "said directed graph; and means for orientating a set of stroke curves in accordance with said orientated set of curves.
Brief Description of the Drawings S 20 Embodiments of the invention are described with reference to the accompanying drawings, in which: S.Fig. 1 illustrates a flow diagram of the preferred method for orienting a set of finite n-dimensional space curves; o" Fig. 2 illustrates a flow diagram of step 112 of Fig. 1 shown in more detail; Fig. 3A illustrates a particular shape of the text character Fig. 3B illustrates the skeleton of the character shown in Fig. 3A; Fig. 3C illustrates the set of space curves of the skeleton shown in Fig. 3B; Fig. 3D illustrates the undirected graph representation of Fig. 3B; Fig. 3E illustrates a directed graph representation of Fig. 3D as a result of the preferred method; CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41 \466678AU.doc Fig. 3F illustrates an orientated set of curves in accordance with the directed graph of Fig. 3E; Figs. 4A and 4B illustrate a step for selecting starting point(s) on a graph based on vertex position; Figs. 5A to 5D illustrate a step for selecting starting point(s) on a graph based on vertex cardinality; Figs. 6A and 6B illustrate edge orders resulting from different graph traversal methods; Figs. 6C and 6D illustrate the implementation of step 204 of Fig. 2; 0to Figs. 7A to 7D illustrate edge direction modulation by alternating phase; Figs. 8A to 8D illustrate edge direction modulation by inverting phase; Fig. 9 illustrates a vertex with an incoming visited edge, and several outgoing unvisited edges that must be ordered; Fig. 10 illustrates the ordering of unvisited edges based on rotation from the visited edge; Fig. 11 illustrates the ordering of unvisited edges based on direction relative to visited edge; Fig. 12 illustrates a sample 2-dimensional graph directed according to a certain parameter set; 20 Fig. 13 illustrates a sample 2-dimensional graph directed according to a certain parameter set; ~Fig. 14 illustrates a sample 2-dimensional graph directed according to a certain parameter set; Fig. 15 illustrates a sample 2-dimensional graph directed according to a certain parameter set.
*00* Fig. 16 is a block diagram of a general purpose computer with which the embodiments can be implemented; Detailed Description The principles of the preferred method described herein have general applicability to n-dimensional space curves. However, for ease of explanation, the steps of the preferred method are described with reference to 2-dimensional examples. It is not intended that the present invention be limited to only these 2-dimensional examples.
Some portions of the detailed descriptions which follow are explicitly or implicitly presented in terms of algorithms and symbolic representations of operations on CFP1417AU OPEN41 466678AU I :\ELEC\CISRA\OPEN\OPEN4 \466678AU.doc 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 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 necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven 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 all of these and similar terms, such as space curves, edges, vertices, are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as "selecting", "determining", "generating", "deriving", "traversing", "orientating" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to apparatus for performing the operations "herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer 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, or it may prove convenient to construct more specialized apparatus to perform the required method "steps. The structure of a conventional general-purpose computer will appear from the description below.
In addition, the present invention also relates to a computer program product S. comprising a computer readable medium including a computer program for orientating a set of finite n-dimensional space curves. The computer readable medium is taken herein to include any transmission medium for transmitting the computer program between a source and a designation. The transmission medium may include storage devices such as CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 I \466678AU.doc -8magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general purpose computer. The transmission medium may also include a hardwired 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 described with reference to any particular programming language and implementation thereof It will be appreciated that a variety of programming languages and implementations thereof may be used to implement the teachings of the invention as described herein.
Fig. I illustrates a flow diagram of the preferred method for orienting a set of 1o finite n-dimensional space curves. The preferred method allows orientation of curves in a consistent manner according to well-defined rules, with the user only providing a limited amount of information. The method commences at step 100 and any necessary processes and parameters are initialised. In the next step 102, a set of n-dimensional space curves are provided.
Fig. 3A illustrates an example of a complex character shape suitable for display on a monitor or printing. This text character 30 may be stored in a quadratic Bspline format and accessed from memory for processing by the preferred method.
Alternatively, the text character 30 may be implicitly generated. The format of the text character is then preferably converted to a cubic Bezier curves format for ease of 20 processing. A skeleton 31 of the text character 30 is generated which may be utilised as the set of 2-dimensional space curves.
3B illustrates' how the skeleton 31 of the text character 30 shown in Fig. 3A is obtained. An algorithm is applied to the character 30 for finding the centre of the strokes to obtain a skeleton 31. Any of the known algorithms for achieving this purpose 25 would be suitable.
In the next step 104 of the method, an undirected graph based on the ndimensional space curves is generated. The primitive curves and endpoints of the space curves are determined and an undirected graph based on these points and curves is generated.
Fig. 3C illustrates how stroke sets composed of connected primitive curves 31 may be derived from the skeleton 31. Typically, the curves of the skeleton 31 are divided at points of continuity change, much as an artist drawing the character shape would break their pen/brush stroke at these points. These "break points" 33 are distinct from "junction points" at which stroke ends meet other strokes 34, 35. These points 33,34 and 35 can be CFP1417AU OPEN41 466678AU I:\ELEC\CIS RA\OPEN\OPEN41 \466678AU.doc -9algorithmically determined. Again, any of the known algorithms for achieving this purpose would be suitable.
Fig. 3D illustrates how these points 33,34 and 35 and curves 32 may be presented as an undirected graph 36. Stroke end points 37 38, break point 39, and junction points 40 41 define the graph vertices, and the primitive stroke curves define the graph edges. In the case where break points coincide with junction or end points, the point in question will be deemed to be a junction point. Therefore end points can be recognised as graph vertices with cardinality 1, break points can be recognised as graph vertices with cardinality 2, and junction points can be recognised as graph vertices with cardinality greater than 2.
Fig. 3E shows an example of a directed graph representation of Fig. 3D as generated by the preferred method. Fig. 3F shows an example of orientated stroke curves in accordance with the directed graph representation of Fig. 3E. The generation of the directed graph and orientation character stroke examples are discussed in more detail below.
Returning now to Fig. 1, the next step 106 in the preferred method selects a starting point or a set of starting points from which to begin traversal. A number of alternative methods for selecting starting points exist, and comprise: a) by absolute point position, 20 b) by absolute edge direction, c) by cardinality, d) by time stamp, or e) distance from graph centroid.
This list is not exhaustive and any consistent (and preferably reproducible) method S• 25 for selecting the set of starting points may be applied.
Fig. 4A illustrates one example of the step for selecting a starting point on a graph based on vertex position. In this example, a single starting point 43 for the graph 42 is chosen by selecting the point with the minimum value y. If there are several points having the same minimum y value, then that point is chosen having the minimum x value from amongst those points having the same minimum y value.
S° Fig. 4B illustrates one example of the step for selecting starting point(s) on a graph based on edge direction. The starting point(s) are chosen by selecting the point with an edge most closely approximating a given angle. This may be achieved by determining the dot products of a user selected vector v 47 and the edges of the graph 45 and 46 and CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 \466678AU.doc selecting the edge 45 (and it's starting point 44) which has the maximum dot product. The edges 45 and 46 of the graph are treated as vectors having a direction pointing away from the potential starting points 44, 48 and 49. Where two or more edges and corresponding starting points have the same dot product, then all these can be utilised. For the general ndimensional case, the selection criteria for the starting points should provide unique solutions in n dimensions.
Turning now to Figs. 5A to 5D, there is shown one example of the step for selecting starting point(s) on a graph based on cardinality. In this example, the members of the starting point set are chosen according to their cardinality (the number of edges with this point as vertex). Good choices for starting set criteria might comprise: cl) points with cardinality 1 (end points) 51 (Fig. c2) points with cardinality 2 (break points) 52 (Fig. c3) points with cardinality 2 (junction points) 53 (Fig. 5C), and c4) points with cardinality 1 (break and junction points) 54 (Fig. If the starting point set contains more than one member, then the starting points should be ordered by priority and processed in that order. This ordering might be based on position, direction, time stamp, etc, or some other criteria.
Returning now to Fig. 1. In the next steps 108 and 110 of the preferred method, the user inputs the desired traversal technique and traversal modulations to be performed.
In the next step 112, the edges of the undirected graph are traversed in a consistent manner determined by the user input of step 108. During the traversal the direction of each edge is determined based on the modulation determined by the user input step 110. Initially all edges are marked as "unvisited" and have no direction. The undirected graph is then traversed such that every edge is processed. As each edge is 25 processed it is assigned a direction based on the phase of the point from which it is visited, and the modulations applied. The edge is then marked as "visited". In the absence of modulation, directions are consecutive. To avoid cycles in the graph, edges should be visited only once.
Fig. 2 illustrates in more detail the flow diagram of step 112 of Fig. 1. In the 30 initial step 200, all edges are marked as "unvisited" and have no direction. In the next step :°.ooo 202, an edge is traversed according to the graph traversal technique selected by the user in step 110.
Turning now to Fig. 6A and 6B, there are shown two methods for graph traversal that produce consistent and distinct results and that may be utilised in step 202. Depth- CFP1417AU OPEN41 466678AU I :\ELEC\CISRA\OPEN\OPEN4 \466678AU.doc -11first traversal 61 visits vertices according to edge distance from the starting point(s) in the order farthest to nearest. Breadth-first traversal 62 visits vertices in order of edge distance from the starting point(s). The order in which edges are visited are marked 1,2,3,4,5,6 and 7. The starting points 63 and 64 are shown for each graph. Where there are a plurality of starting points, all edges that can be traversed from one starting point are first visited, then all edges that can be traversed from the next starting point are visited and so on until all edges have been traversed. In a still further embodiment, all of the starting points are first traversed in a predetermined order, then all remaining edges traversed according to one of the above traversal methods. Such methods, or any consistent (and preferably reproducible) method, may be chosen for graph traversal.
In the next step 204, the current traversed edge is assigned a direction based on the phase of the vertex from which it is visited, and the modulation selected by the user in step 110.
Before proceeding further with a description of the embodiments, a brief review of terminology used herein is provided with reference to the examples shown in Fig. 6C and 6D. The term "direction" of an edge used herein refers to whether the edge 65) is pointing towards 67c) the terminating vertex 66) called herein the forward direction or away 67d) from the terminating vertex 66) called herein the reverse direction. The term "traversal modulation" used herein refers to an operation, which 20 operates on a phase of the initial vertex of the currently traversed edge to generate the S. direction of that currently traversed edge. The term "phase" of a vertex used herein refers -•to a characterising feature of the vertex, which has one of two states( forward or reverse phase). Generally, the phase of a vertex 66) is indicative of whether the previously traversed edge 65) is oriented in a direction 67c towards the vertex 66), 25 or in the opposite direction 67d away from the vertex 66). In the former case the vertex 66 Fig. 6C) has forward phase, whereas in the latter case the vertex (e.g.
66 fig. 6D) has reverse phase. A phase may also be assigned for each starting point. In example shown in Fig. 6C, the user has selected no traversal modulation (null traversal modulation) to be applied. In these circumstances, the direction of the current traversed edge 68 (Fig. 6C) will take that of the phase of the initial vertex 66 (Fig. 6C), namely the forward direction. In the example shown in Fig. 6D, the user has selected an inverse modulation. The direction of the current traversed edge 69d takes the reverse of the phase of vertex 66 (Fig. 6D), namely the forward direction. The terms "directed graph", "undirected graph", "breadth-first traversal" and "depth-traversal" are used herein CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 \466678AU.doc -12in the same context as used in the text "Data Structures and Program Design in C" by R.L.
Kruse, B.P. Leung, C.L. Tondo, published by Prentice Hall 1991.
Figs. 7A to 7D illustrate further modulations that may be applied when deciding edge orientation. Shown are two graphs 70 (Fig. 7A) and 75 (Fig. 7C) oriented in a forward consecutive manner 71 72 as a result of a starting point having a forward phase and the application of no (null) modulation. The graphs 73 (Figs. 7B) and 75 (Fig. 7D) are oriented in an alternating manner as a result of the starting point having a forward phase and an alternating modulation. These modulations may be applied during step 204. Many other types of modulations are possible. Some other examples are reversal (which is 1o described below with reference to Figs. 8A to 8D), inversion (which is described above with reference to Fig. 6D), forward, double alternating forward, forward, reverse, reverse) and so on. Preferably, one modulation is selected by the user and is applied consistently throughout the traversal. Alternatively, it is possible to apply different modulations to different starting points. In a still further embodiment, the user can select 1s to apply a local modulation. Namely, the user may select to apply a particular modulation to a specific designated location within the graph.
In the next step 206, the terminating vertex of the current edge is assigned a phase based upon the assigned direction of the current traversed edge. Specifically, if the assigned direction is forward the phase will be assigned as forward. Similarly, if the 20 assigned direction is reverse the phase will be assigned as reverse.
".After step 206, the processing continues at step 208 where the current edge is marked as "visited". Preferably once the terminating vertex is assigned a phase, the vertex is also marked as "visited". In this way, only "unvisited" vertices may be assigned a phase and the phase of "visited" vertices may not be reassigned. It will be apparent that step 206 25 may occur anytime after step 202 and before decision block 210. After step 208, the processing continues at decision block 210.
In the decision block 210, a check is made whether or not all edges of the undirected graph have been traversed. If decision block 210 returns true (yes), nothing is done and processing continues at decision block 114. Otherwise, if decision block 210 returns false processing continues at step 202.
Fig. 9 illustrates an example of the traversal process of Fig. 2. Given a starting point 91 with an associated phase, the direction of edge 92 is determined based on that phase and any current modulations, and edge 92 is marked as "visited". The adjoining vertex 93 is then assigned a phase based upon the phase of vertex 91 and any CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 \466678AU.doc 13 modulations. Unvisited edges 94, 95 96 are then traversed in a consistent order.
Additional visited edges are ignored. The ordering of unvisited edges from a vertex may be based on: a) rotation from visited edge, b) direction relative to visited edge, or c) time stamp.
This list is not exhaustive and any consistent (and preferably reproducible) method for ordering unvisited edges from a vertex may be applied. For the general case of n-dimensional curves, the ordering method may have to be modified to produce valid results in n dimensions.
Turning now to Fig. 10, there is shown the abovementioned method where unvisited edges are ordered by rotation from the visited edge 100. Rotating about vertex 101 in a clockwise direction, the unvisited edges are encountered in the order 102, 103 then 104, which becomes the traversal order 1,2 and 3 for those edges. The anticlockwise direction could be chosen if preferred.
Fig. 11 illustrates the abovementioned method where unvisited edges are ordered according to how closely their outward directions match the inward direction of the vector AB formed by the incoming visited edge 111. In this case, it can be seen that the direction unvisited edge 112 most closely matches this direction, so it is given highest priority. The remaining unvisited edges are prioritised in the order 113 then 114 based on their outward direction. The traversal order 1,2 and 3 for those edges are 112, 113 114.
If two unvisited edges are equally matched in terms of their direction relative to the incoming visited edge, then some consistent mechanism should be used to resolve this deadlock, for instance always choose the left or right alternative.
S° 25 Returning now to the method shown in Fig. 1. After step 112, the processing continues at decision block 114. In the decision block 114, a check is made whether or not any post traversal modulation is desired by the user. If decision block 114 returns no (false), nothing is done and processing continues at step 118. Otherwise, if decision block 114 returns yes (true), processing continues at step 116. In step 116, the desired post traversal modulation is applied to the directed graph.
Figs. 8A to 8D illustrate a possible post traversal modulation that may be applied in step 116, after edge orientations have been decided. Directed graphs 81 82 may have their edges reoriented in the opposite direction 83 84 (phase reversal modulation).
This modulation is applied after the graph has been converted to a directed graph CFP]417AU OPEN41 466678AU I :\ELEC\CISRA\OPEN\OPEN4 I \466678AU.doc 14following the graph traversal step. Alternatively, this modulation may be applied as each edge direction is decided during the graph traversal step.
On the completion of step 112 or step 116, all edges have been visited and oriented in the desired manner, resulting in a directed graph.
Fig. 3E shows an example of a directed graph generated from the text character shown in Fig. 3A. The directed graph 30e is generated by implementing the preferred method, wherein the starting point 31e is selected by position, i.e. the bottom left hand vertex, the phase of the starting point is default i.e. forward phase, the traversal is breadth first and the modulation selected is null (no) modulation. In this way, the directed graph of the text character A may be represented by the undirected graph such as shown in Fig.
3D and the following information; starting point=bottom left hand vertex, phase =forward, traversal=breadth first and modulation-null modulation.
In the next step 118 of the preferred method, the n-dimensional space curves are re-oriented, if necessary, in accordance with the directed graph. The direction of the space curves now have an orientation the same as the corresponding edges of the directed curve. Finally in step 120, the original stroke curves oriented according to the directed space curves may be displayed and/or printed. Alternatively, other stroke curves may be selected and oriented according to the directed space curves.
Fig. 3F shows an example of stroke curves, other than the original stroke curves 20 Fig. 3A, orientated in accordance with the directed graph of Fig. 3E. These stroke curves are in the form of bones consisting of segments 300, 301, 302, 303, and 304 orientated o-.according to the directed graph of Fig. 3E.
i" If the set of curves to be oriented is already in an oriented format (that is, it occupies a monotonically increasing interval) then for each curve either: 25 a) the original direction can be retained, or b) the curve must be reoriented, depending on the outcome of the orientation algorithm. If the curve is to be reoriented, **this can in general be achieved by relabelling the end points, reversing or o oo reparameterising the curve along its interval, or performing whatever action is relevant to the curve's specific format.
a°.9° Examples By way of example, Fig. 12 illustrates a 2-dimensional directed graph 121 with edges directed according to the following parameters: start point set topmost and left CFP1417AU OPEN41 466678AU I :\ELEC\CISRA\OPEN\OPEN41 \466678AU.doc most vertex 122, phase of starting point=forward, traversal breadth first, no (Null) modulation. This graph contains potentially ambiguous edges 123 124 whose directions are determined by the order in which the graph is traversed, and (ii) the ordering of unvisited edges at each vertex. The order in which the vertices are visited is labelled as 0,1,2,3,4,5,6 and 7. Note that for these parameters, edges are oriented from lower-numbered vertices towards higher-numbered vertices.
Referring to Fig. 13, there is shown an example 2-dimensional directed graph 131 with edges directed according to the following parameters: start point set topmost and left most vertex 132, phase of starting point=forward, traversal breadth first, 1o modulation alternative. The order in which the vertices are visited is labelled as 0,1,2,3,4,5,6 and 7.
Fig. 14 illustrates an example 2-dimensional directed graph 141 with edges directed according to the following parameters: start point set points with cardinality of 1 (142, 143 144), phase of starting points forward, traversal breadth first, no (Null) modulation. The order in which the vertices are visited is labelled as 0,1,2,3,4,5,6 and 7.
Fig. 15 illustrates an example 2-dimensional directed graph 151 with edges directed according to the following parameters: start point set points with cardinality 1, phase of starting points=forward, traversal breadth first, modulation reversal. The order in which the vertices are visited is labelled as 0,1,2,3,4,5,6 and 7. In this case a majority of vertices are nominated as starting points, which fully determines the order in which vertices are visited, essentially overriding the traversal order.
•Preferred Embodiment of Apparatus(s) The preferred method is preferably practiced using a conventional generalpurpose computer, such as the one shown in Fig. 16, wherein the processes of Figs. 1 and 25 2 may be implemented as software executing on the computer. In particular, the steps of the preferred methods are effected by instructions in the software that are carried out by the computer. The software may be divided into two separate parts; one part for carrying out the method of orienting of a set of finite n-dimensional space curves; and another part to manage the user interface between the latter and the user. The software may be stored in a computer readable medium, comprising the storage devices described below, for example. The software is loaded into 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 CFP1417AU OPEN41 466678AU 1:\ELEC\CISRA\OPEN\OPEN4 I \466678AU.doc -16computer program product in the computer preferably effects an advantageous apparatus for orienting a set of finite n-dimensional space curves in accordance with the embodiments of the invention.
The computer system 1600 consists of the computer 1602, a video display 1616, and input devices 1618, 1620. In addition, the computer system 1600 can have any of a number of other output devices comprising line printers, laser printers, plotters, and other reproduction devices connected to the computer 1602. The computer system 1600 can be connected to one or more other computers via a communication interface using an appropriate communication channel such as a modem communications path, a computer network, or the like. The computer network may comprise a local area network (LAN), a wide area network (WAN), an Intranet, and/or the Internet The computer 1602 itself consists of a central processing unit(s) (simply referred to as a processor hereinafter) 1604, a memory 1606 which may comprise random access memory (RAM) and read-only memory (ROM), input/output (10) interfaces, a video interface 1610, and one or more storage devices generally represented by a block 1612 in Fig. 16. The storage device(s) 1612 can consist of one or more of the following: a floppy disc, a hard disc drive, a magneto-optical disc drive, CD-ROM, magnetic tape or any other of a number of non-volatile storage devices well known to those skilled in the art.
Each of the components 1604 to 1612 is typically connected to one or more of the other 20 devices via a bus 1614 that in turn can consist of data, address, and control buses.
The video interface 1610 is connected to the video display 1616 and provides
S.
video signals from the computer 1602 for display on the video display 1616. User input
*SS.
to operate the computer 1602 can be provided by one or more input devices For
*SSS
example, an operator can use the keyboard 1618 and/or a pointing device such as the o25 mouse 1620 to provide input to the computer 1602.
The system 1600 is simply provided for illustrative purposes and other configurations can be employed without departing from the scope and spirit of the invention. Exemplary computers on which the embodiment can be practiced comprise IBM-PC/ATs or compatibles, one of the Macintosh TM family of PCs, Sun Sparcstation 30 TM, or the like. The foregoing are merely exemplary of the types of computers with which embodiments of the invention may be practiced. Typically, the processes of the embodiments, described hereinafter, are resident as software or a program recorded on a hard disk drive (generally depicted as block 1612 in Fig. 16) as the computer readable medium, and read and controlled using the processor 1604. Intermediate storage of the CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 I\466678AU.doc 17program and pixel data and any data fetched from the network may be accomplished using the semiconductor memory 1606, possibly in concert with the hard disk drive 1612.
In some instances, the program may be supplied to the user encoded on a CD-ROM or a floppy disk (both generally depicted by block 1612), or alternatively could s be read by the user from the network via a modem device connected to the computer, for example. Still further, the software can also be loaded into the computer system 1600 from other computer readable medium comprising magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer and another device, a computer readable card such as a PCMCIA card, and the 0to Internet and Intranets comprising email transmissions and information recorded on websites and the like. The foregoing are merely exemplary of relevant computer readable mediums. Other computer readable mediums may be practiced without departing from the scope and spirit of the invention.
Applications The preferred embodiment has many areas of application and a number of examples follow but are not seen as exhaustive. Such applications comprise, artistic tools for generating stroke based fonts, tools for calligraphic applications, and the generation of artistic effects on objects described by arbitrary space curves. The preferred method has special application in the area of calligraphy, where incorrectly oriented strokes are easily S 20 recognised and indicative of poor technique. The preferred method may be used to strictly enforce stroke orientation rules intuitively used by artists in the creation of "calligraphic designs or similar decorative curve-based artwork.
The foregoing only describes a small number of embodiments of the present invention, however, modifications and/or changes can be made thereto by a person skilled O* o* 25 in the art without departing from the scope and spirit of the invention.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including" and not "consisting only of'. Variations of the word comprising, such as "comprise" and "comprises" have corresponding meanings.
CFP1417AU OPEN4 466678AU :\ELEC\CISRA\OPEN\OPEN4\466678AU.doc CFPI417AU OPEN41 466678AU I :\ELEC\CISRA\OPENOPEN41k466678AU.doc
Claims (45)
1. A method of orientating a set of finite n-dimensional curves, the method comprising the steps of: generating an undirected graph having edges and vertices based upon a set of finite n-dimensional curves; (ii) determining one or more of said vertices as one or more starting points; (iii) selecting one or more traversal modulations; (iv) traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; and orientating said set of finite n-dimensional curves in accordance with said directed graph. 15 2. A method as claimed in claim 1, wherein said traversing step (iv) comprises the substeps of: setting all said edges as unmarked; traversing an unmarked edge; assigning a said direction of the currently traversed edge based on a phase 20 of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; 25 marking said currently traversed edge; and repetitively performing substeps to commencing with said one or more starting points, until all edges have been marked.
3. A method as claimed in claim 2, wherein step further comprises setting all said vertices as unmarked, and step further comprises marking said terminating vertex of the currently traversed edge. CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc
19- 4. A method as claimed in claim 1, wherein said method further comprises the step of selecting a graph traversal technique, and wherein said traversing step (iv) comprises traversing the edges of the undirected graph in accordance with said selected technique. 5. A method as claimed in claim 4, wherein said selected graph traversal technique is a breadth first traversal technique which visits vertices in order of edge distance from the one or more said starting points. 6. A method as claimed in claim 4, wherein said selected graph traversal technique is a depth first traversal technique which visits vertices according to edge distance from the said one or more starting points in the order from farthest to nearest. 7. A method as claimed in claim 1, wherein said step (iii) comprises selecting one of said one or more traversal modulations. 8. A method as claimed in claim 1, wherein different said traversal modulations are applied to different said starting points. •go• 9. A method as claimed in claim i, where a said traversal modulation is applied 20 locally to a selected vertex of the undirected graph. ••go o *10. A method as claimed in claim 1, further comprising the step of applying one or •more said traversal modulations to said directed graph. S 25 11. A method as claimed in claim 1, wherein said step (ii) comprises determining said one or more starting points in accordance with a predetermined manner. 12. A method as claimed in claim 1, wherein said step (ii) further comprises the substep of ordering said one or more starting points in a predetermined manner; and said step (iv) further comprises commencing at the one or more starting points in accordance with said predetermined order. 13. A method as claimed in claim 1, wherein said edges having a common vertex are traversed in a predetermined manner. CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc 14. A method as claimed in claim 1, wherein said method further comprises the step of: (vi) orientating a set of stroke curves in accordance with said orientated set of curves. A method as claimed in claim 1, wherein prior to step said set of n- dimensional curves are derived from a set of stroke curves. 16. A method as claimed in claim 1, wherein said n-dimensional curves are 2- dimensional curves. 17. A method as claimed in claim 16, wherein said set of curves are derived from a 1 set of stroke curves of a text character. o 18. A method as claimed in claim 1, wherein said orientated set of curves are displayed and/or printed. 19. A method as claimed in claim 14, wherein said orientated stroke curves are 20 displayed and/or printed.
20. A method as claimed in claim 1, wherein said starting points, one or more said t traversal modulations and said graph traversal technique are selected in a predetermined Sa.: manner.
21. Apparatus for orientating a set of finite n-dimensional curves, the apparatus comprising: generation means for generating an undirected graph having edges and vertices based upon a set of finite n-dimensional curves; determination means for determining one or more of said vertices as one or more starting points; selection means for selecting one or more traversal modulations; R/y traversal means for traversing the edges of the undirected graph, commencing at aid one or more starting points and assigning a direction of each said edge so traversed CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41 \466678AU.doc -21- dependent on one of said one or more traversal modulations so as to form a directed graph; and orientation means for orientating said set of finite n-dimensional curves in accordance with said directed graph.
22. Apparatus as claimed in claim 21, wherein said traversal means comprises: setting means for setting all said edges as unmarked; traversing means for traversing an unmarked edge; first assignation means for assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; second assignation means for assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; 15 marking means for marking said currently traversed edge; and V. repetition means for repeating the operations of the second traversal means, first V °and second assignation means, and said marking means, commencing with said one or o• more starting points, until all edges have been marked. set* oo
23. Apparatus as claimed in claim 21, wherein said setting means further comprises ,means for setting all said vertices as unmarked, and said marking means further comprises means for marking said terminating vertex of the currently traversed edge. o •o
24. Apparatus as claimed in claim 21, wherein said apparatus further comprises 25 selection means for selecting a graph traversal technique, and wherein said traversing means traverses the edges of the undirected graph in accordance with said selected technique. Apparatus as claimed in claim 24, wherein said selected graph traversal technique is a breadth first traversal technique which visits vertices in order of edge distance from the one or more said starting points. CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN4 I\466678AU.doc 22-
26. Apparatus as claimed in claim 24, wherein said selected graph traversal technique is a depth first traversal technique which visits vertices according to edge distance from the said one or more starting points in the order from farthest to nearest.
27. Apparatus as claimed in claim 21, wherein said selection means comprises means for selecting one of said one or more traversal modulations.
28. Apparatus as claimed in claim 21, wherein different said traversal modulations are applied to different said starting points.
29. Apparatus as claimed in claim 21, where a said traversal modulation is applied locally to a selected vertex of the undirected graph.
30. Apparatus as claimed in claim 21, further comprising means for applying one or 1 15 more said traversal modulations to said directed graph.
31. Apparatus as claimed in claim 21, wherein said determination means determines said one or more starting points in accordance with a predetermined manner. 0 20 32. Apparatus as claimed in claim 21, wherein said determination means further 000. 0. comprises means for ordering said one or more starting points in a predetermined manner; and said traversal means further comprises means for commencing at the one or more starting points in accordance with said predetermined order. .0 .:000:
33. Apparatus as claimed in claim 21, wherein said edges having a common vertex are traversed in a predetermined manner.
34. Apparatus as claimed in claim 21, wherein said apparatus further comprises means for orientating a set of stroke curves in accordance with said orientated set of curves. Apparatus as claimed in claim 21, wherein the apparatus further comprises means for deriving said set of n-dimensional curves from a set of stroke curves. CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc -23-
36. Apparatus as claimed in claim 21, wherein said n-dimensional curves are 2- dimensional curves.
37. Apparatus as claimed in claim 36, wherein said set of curves are derived from a set of stroke curves of a text character.
38. Apparatus as claimed in claim 21, wherein said orientated set of curves are displayed and/or printed.
39. Apparatus as claimed in claim 34, wherein said orientated stroke curves are displayed and/or printed. Apparatus as claimed in claim 21, wherein said starting points, one or more said traversal modulations and said graph traversal technique are selected in a predetermined 15 manner.
41. A computer program product comprising a computer readable medium including a computer program for orientating a set of finite n-dimensional curves, the computer program product comprising: 20 generation means for generating an undirected graph having edges and vertices based upon a set of finite n-dimensional curves; determination means for determining one or more of said vertices as one or more starting points; selection means for selecting one or more traversal modulations; traversal means for traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; and orientation means for orientating said set of finite n-dimensional curves in accordance with said directed graph.
42. A computer program product as claimed in claim 41, wherein said traversal means comprises: 0 RA setting means for setting all said edges as unmarked; SO CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc 24- traversing means for traversing an unmarked edge; first assignation means for assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; second assignation means for assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking means for marking said currently traversed edge; and repetition means for repeating the operations of the second traversal means, first and second assignation means, and said marking means, commencing with said one or more starting points, until all edges have been marked.
43. A computer program product as claimed in claim 41, wherein said setting means further comprises means for setting all said vertices as unmarked, and said marking means further comprises means for marking said terminating vertex of the currently S•traversed edge. oooo o.oo
44. A computer program product as claimed in claim 41, wherein said computer program product further comprises selection means for selecting a graph traversal 20 technique, and wherein said traversing means traverses the edges of the undirected graph in accordance with said selected technique.
45. A computer program product as claimed in claim 44, wherein said selected graph g. •-traversal technique is a breadth first traversal technique which visits vertices in order of edge distance from the one or more said starting points.
46. A computer program product as claimed in claim 44, wherein said selected graph traversal technique is a depth first traversal technique which visits vertices according to edge distance from the said one or more starting points in the order from farthest to nearest.
47. A computer program product as claimed in claim 41, wherein said selection SRA4 means comprises means for selecting one of said one or more traversal modulations. ~TCFP1417AU OEN41 466678AU :ELEC\CISRA\OPENOPEN41\466678AU.doc CFP1 41 7AU OPEN4 466678AU I:\ELEC\CISRA\OPEN\OPEN4I\466678AU.doc
48. A computer program product as claimed in claim 41, wherein different said traversal modulations are applied to different said starting points.
49. A computer program product as claimed in claim 41, where a said traversal modulation is applied locally to a selected vertex of the undirected graph. A computer program product as claimed in claim 41, further comprising means for applying one or more said traversal modulations to said directed graph.
51. A computer program product as claimed in claim 41, wherein said determination means determines said one or more starting points in accordance with a predetermined manner.
52. A computer program product as claimed in claim 41, wherein said determination means further comprises means for ordering said one or more starting points in a predetermined manner; and said traversal means further comprises means for commencing at the one or more starting points in accordance with said predetermined order.
53. A computer program product as claimed in claim 41, wherein said edges having a common vertex are traversed in a predetermined manner.
54. A computer program product as claimed in claim 41, wherein said computer program product further comprises means for orientating a set of stroke curves in accordance with said orientated set of curves. A computer program product as claimed in claim 41, wherein the computer program product further comprises means for deriving said set of n-dimensional curves from a set of stroke curves.
56. A computer program product as claimed in claim 41, wherein said n-dimensional curves are 2-dimensional curves. CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc -26
57. A computer program product as claimed in claim 56, wherein said set of curves are derived from a set of stroke curves of a text character.
58. A computer program product as claimed in claim 41, wherein said orientated set of curves are displayed and/or printed.
59. A computer program product as claimed in claim 54, wherein said orientated stroke curves are displayed and/or printed.
60. A computer program product as claimed in claim 41, wherein said starting points, one or more said traversal modulations and said graph traversal technique are selected in a predetermined manner.
61. A method of orientating a set of stroke curves, the method comprising the steps S 15 of: deriving a set of 2-dimensional finite curves from a set of stroke curves; (ii) generating an undirected graph having edges and vertices based upon the set of finite 2-dimensional curves; (iii) determining one or more of said vertices as one or more starting points; S 20 (iv) selecting one or more traversal modulations; selecting a graph traversal technique; (vi) traversing the edges of the undirected graph in accordance with said selected technique, commencing at said one or more starting points and assigning a direction of -"each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; (vii) orientating said set of finite 2-dimensional curves in accordance with said directed graph; and (viii) orientating a set of stroke curves in accordance with said orientated set of curves.
62. A method of orientating a set of stroke curves, the method comprising the steps of: deriving a set of 2-dimensional finite curves from a set of stroke curves; CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.do -27- (ii) generating an undirected graph having edges and vertices based upon said derived set of finite 2-dimensional curves; (iii) determining one or more of said vertices of said undirected graph as one or more starting points; (iv) selecting one or more traversal modulations; traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; wherein said traversing step comprises the substeps of: setting all said edges as unmarked; traversing an unmarked edge; assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; 15 assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking said currently traversed edge; and repetitively performing substeps to commencing 20 with said one or more starting points, until all edges have been marked; (vi) orientating said set of finite 2-dimensional curves in accordance with said directed graph; and S:(vii) orientating a set of stroke curves in accordance with said orientated set of curves.
63. Apparatus for orientating a set of stroke curves, the apparatus comprising: means for deriving a set of 2-dimensional finite curves from a set of stroke curves; means for generating an undirected graph having edges and vertices based upon said set of finite 2-dimensional curves; means for determining one or more of said vertices as one or more starting points; c RA 1 means for selecting one or more traversal modulations; means for selecting a graph traversal technique; CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc -28- means for traversing the edges of the undirected graph in accordance with said selected technique, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; means for orientating said set of finite 2-dimensional curves in accordance with said directed graph; and means for orientating a set of stroke curves in accordance with said orientated set of curves.
64. Apparatus for orientating a set of stroke curves, the apparatus comprising: means for deriving a set of 2-dimensional finite curves from a set of stroke curves; means for generating an undirected graph having edges and vertices based upon said derived set of finite 2-dimensional curves; 1 5 means for determining one or more of said vertices of said undirected graph as one or more starting points; means for selecting one or more traversal modulations; traversal means for traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed S 20 dependent on one of said one or more traversal modulations so as to form a directed S•graph; wherein said traversing means comprises: setting means for setting all said edges as unmarked; traversing means for traversing an unmarked edge; i first assignation means for assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; second assignation means for assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking means for marking said currently traversed edge; and repetition means for repeating the operations of the traversing means, first and second assignation means, and marking means, commencing with said one or more starting points, until all edges have been marked; CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc -29- means for orientating said set of finite 2-dimensional curves in accordance with said directed graph; and means for orientating a set of stroke curves in accordance with said orientated set of curves. A computer program product comprising a computer readable medium including a computer program for orientating a set of stroke curves, the computer program product comprising: means for deriving a set of 2-dimensional finite curves from a set of stroke curves; means for generating an undirected graph having edges and vertices based upon said set of finite 2-dimensional curves; means for determining one or more of said vertices as one or more starting points; 1 5 means for selecting one or more traversal modulations; means for selecting a graph traversal technique; means for traversing the edges of the undirected graph in accordance with said selected technique, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal S 20 modulations so as to form a directed graph; means for orientating said set of finite 2-dimensional curves in accordance with said directed graph; and means for orientating a set of stroke curves in accordance with said orientated set of curves.
66. A computer program product comprising a computer readable medium including a computer program for orientating a set of stroke curves, the computer program product comprising: means for deriving a set of 2-dimensional finite curves from a set of stroke curves; means for generating an undirected graph having edges and vertices based upon said derived set of finite 2-dimensional curves; RA4 means for determining one or more of said vertices of said undirected graph as one or more starting points; CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc CFPI 417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc means for selecting one or more traversal modulations; traversal means for traversing the edges of the undirected graph, commencing at said one or more starting points and assigning a direction of each said edge so traversed dependent on one of said one or more traversal modulations so as to form a directed graph; wherein said traversing means comprises: setting means for setting all said edges as unmarked; traversing means for traversing an unmarked edge; first assignation means for assigning a said direction of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; second assignation means for assigning a phase to the terminating vertex of the currently traversed edge based on a phase of the initial vertex of the currently traversed edge and one of said one or more traversal modulations; marking means for marking said currently traversed edge; and :0 15 repetition means for repeating the operations of the traversing means, •first and second assignation means, and marking means, commencing with said one or more starting points, until all edges have been marked; means for orientating said set of finite 2-dimensional curves in accordance with said directed graph; and 20 means for orientating a set of stroke curves in accordance with said orientated set of curves. S. 67. A method of orientating a set of finite n-dimensional curves, the method •substantially as described herein with reference to Figs. 1 to 15 of the accompanying drawings.
68. Apparatus for orientating a set of finite n-dimensional curves, the apparatus substantially as described herein with reference to Figs. 1 to 16 of the accompanying drawings.
69. A computer program product comprising a computer program for orientating a set of finite n-dimensional curves, the computer program product substantially as 4A% described herein with reference to Figs. 1 to 16 of the accompanying drawings. CFP1417AU OPEN41 466678AU I:\ELEC\CISRA\OPEN\OPEN41\466678AU.doc .9 4 31- Dated 27 August, 1999 Canon Kabushiki Kaisha Patent Attorneys for the Applicant/Nominated Person SPRUSON FERGUSON S. OS S SS 55 S S S 555* S 0005 SOS. S OSSS OS.. SO 55 0505 S S 55 0 50 0 0 SS *550 S *0o5 S. S OSSO 0 *5 S 55 S SO [R:\LIBF]09I 98.doc:dlg
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU44788/99A AU743290B2 (en) | 1998-08-28 | 1999-08-27 | Method and apparatus for orientating a set of finite N-dimensional space curves |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPP5579 | 1998-08-28 | ||
AUPP5579A AUPP557998A0 (en) | 1998-08-28 | 1998-08-28 | Method and apparatus for orientating a set of finite N-dimensional space curves |
AU44788/99A AU743290B2 (en) | 1998-08-28 | 1999-08-27 | Method and apparatus for orientating a set of finite N-dimensional space curves |
Publications (2)
Publication Number | Publication Date |
---|---|
AU4478899A AU4478899A (en) | 2000-03-30 |
AU743290B2 true AU743290B2 (en) | 2002-01-24 |
Family
ID=25626915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU44788/99A Ceased AU743290B2 (en) | 1998-08-28 | 1999-08-27 | Method and apparatus for orientating a set of finite N-dimensional space curves |
Country Status (1)
Country | Link |
---|---|
AU (1) | AU743290B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1990000289A1 (en) * | 1988-06-27 | 1990-01-11 | Hitachi, Ltd. | Computer graphics |
US5384902A (en) * | 1991-12-24 | 1995-01-24 | Aldus Corporation | Method for generating a fast inverse table |
US5771035A (en) * | 1995-10-13 | 1998-06-23 | Sharp Kabushiki Kaisha | Character generation device |
-
1999
- 1999-08-27 AU AU44788/99A patent/AU743290B2/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1990000289A1 (en) * | 1988-06-27 | 1990-01-11 | Hitachi, Ltd. | Computer graphics |
US5384902A (en) * | 1991-12-24 | 1995-01-24 | Aldus Corporation | Method for generating a fast inverse table |
US5771035A (en) * | 1995-10-13 | 1998-06-23 | Sharp Kabushiki Kaisha | Character generation device |
Also Published As
Publication number | Publication date |
---|---|
AU4478899A (en) | 2000-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6459431B1 (en) | Method and apparatus for orientating a set of finite n-dimensional space curves | |
US7468727B2 (en) | Methods of visualizing graphs | |
US7236180B2 (en) | Dynamic rendering of ink strokes with transparency | |
US9103059B2 (en) | Methods and apparatus to manipulate embroidery designs via a communication network | |
US7190375B2 (en) | Rendering ink strokes of variable width and angle | |
JP2007058868A (en) | Method and system for providing substitute computer font | |
Yang et al. | Context-aware text-based binary image stylization and synthesis | |
de Figueiredo | Adaptive sampling of parametric curves | |
AU743290B2 (en) | Method and apparatus for orientating a set of finite N-dimensional space curves | |
US20090279453A1 (en) | Shirnk wrap technique for enclosing mulitple polygons | |
US6937239B1 (en) | Method and apparatus for orientating a character stroke | |
CN112232022B (en) | Method and system for dynamically adjusting parameters and designing Chinese character patterns and layouts | |
US6972764B1 (en) | Method and apparatus for transforming a set of closed curves | |
AU743334B2 (en) | Method and apparatus for orientating a character stroke | |
US5574839A (en) | Method and apparatus for automatic gap closing in computer aided drawing | |
US6356267B1 (en) | Method of creating two dimensional shapes drawing system | |
CN112083865A (en) | Image generation method and device, terminal and readable storage medium | |
CN106959939B (en) | Hollow character library generation method and hollow character library generation system | |
Sarfraz et al. | A web based system for capturing outlines of 2d objects | |
Philbrick et al. | A primitive for manual hatching | |
AU744461B2 (en) | Method and apparatus for transforming a set of closed curves | |
US8064724B2 (en) | Apparatus, and associated method, for displaying data using data painting of an asymmetrical facial image | |
JP2912602B1 (en) | Brush character drawing method | |
AU768344B2 (en) | Animating character outlines | |
Su et al. | A hybrid approach to rendering handwritten characters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FGA | Letters patent sealed or granted (standard patent) |