AU743334B2 - Method and apparatus for orientating a character stroke - Google Patents

Method and apparatus for orientating a character stroke Download PDF

Info

Publication number
AU743334B2
AU743334B2 AU44793/99A AU4479399A AU743334B2 AU 743334 B2 AU743334 B2 AU 743334B2 AU 44793/99 A AU44793/99 A AU 44793/99A AU 4479399 A AU4479399 A AU 4479399A AU 743334 B2 AU743334 B2 AU 743334B2
Authority
AU
Australia
Prior art keywords
angle
vector
space curve
vectors
curve
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
AU44793/99A
Other versions
AU4479399A (en
Inventor
Michael Richard Arnold
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 AUPP5578A external-priority patent/AUPP557898A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU44793/99A priority Critical patent/AU743334B2/en
Publication of AU4479399A publication Critical patent/AU4479399A/en
Application granted granted Critical
Publication of AU743334B2 publication Critical patent/AU743334B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Character Discrimination (AREA)

Description

S F Ref: 466680
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIRCATION FOR A STANDARD PATENT
ORIGINAL
lsl Name and Address of Applicant: Actual Inventor(s): Address for Service: Invention Title: ASSOCIATED PROVISIONAL [311 Application No(s) PP5578 Canon Kabushlki Kaisha 30-2, Shimomaruko 3-chome Ohta-ku Tokyo 146
JAPAN
Cameron Bolitho Browne and Michael Richard Arnold.
Spruson Ferguson, Patent Attorneys Level 33 St Martins Tower, 31 Market Street Sydney, New South Wales, 2000, Australia Method and Apparatus for Orientating a Character Stroke 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
I)
-1- METHOD AND APPARATUS FOR ORIENTATING A CHARACTER STROKE Field of Invention The present invention relates to a method and apparatus for orientating a character stroke. The invention also relates to a computer program product comprising a computer readable medium including a computer program for orientating a character stroke. The invention further relates to a method and apparatus for orientating a space curve, including a computer program product therefor.
Background 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 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, particularly the orientation of character strokes.
Summary of the Invention It is an object of the present invention to ameliorate one or more disadvantages 20 of the prior art.
"According to one aspect of the present invention there is provided a method of orientating a space curve, wherein the space curve has two endpoints, the method comprising the steps of: selecting a desired direction; (ii) generating a first vector having a direction which is same as the selected desired direction; (iii) generating at least one second vector, each said second vector having a corresponding direction indicative of a corresponding characteristic of the space curve; (iv) comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientating said direction of said space curve in accordance with said determined direction.
According to another aspect of the present invention there is provided a method of orientating a finite n-dimensional space curve, wherein the space ctrfvC has two endpoints, the method comprising the steps of: selecting a desired direction in response CFP1418AU (OPEN39) 466680 fl:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM CFPI4I8AU (OPEN39) 466680 [I:\ELEC\CI5RA\OPEN\0PEN391466680.doc:PWM to user input; (ii) generating a first vector having a direction which is same as the selected desired direction; (iii) generating at least one second vector based upon the finite ndimensional space curve; (iv) comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientating said finite n-dimensional space curve to the determined direction.
According to still another aspect of the present invention there is provided a method of orientating a character stroke, the method comprising the steps of: selecting a desired direction for orientating the character stroke; (ii) generating a first vector having a direction which is same as the selected desired direction; (iii) generating a space curve representative of the character stroke, wherein the space curve has two endpoints; (iv) generating two second vectors, each connecting both said endpoints and having opposite directions; comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and wherein said comparing step comprises the sub-steps of: determining a first angle between one of said two second vectors and said first vector; detenrmining a second angle between the other one of said two second 20 vectors and said first vector; and comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction; (vi) orientating said direction of said space curve in accordance with said determined direction; and (vii) orientating the character stroke in accordance with the direction of the space curve.
According to still another aspect of the present invention there is provided 0•oo S. apparatus for orientating a space curve, wherein the space curve has two endpoints, the apparatus comprising: selection means for selecting a desired direction; first generation means for generating a first vector having a direction which is same as the selected desired direction; means for providing a space curve; second generation means for generating at least one second vector, each said second vector having a corresponding direction indicative of a corresponding characteristic of the space curve; comparing the CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientation means for orientating said direction of said space curve in accordance with said determined direction.
According to still another aspect of the present invention there is provided apparatus for orientating a finite n-dimensional space curve, wherein the space curve has two endpoints, the apparatus comprising: means for selecting a desired direction in response to user input; means for generating a first vector having a direction which is same as the selected desired direction; means for providing a n-dimensional space curve; means for generating at least one second vector based upon the finite n-dimensional space curve; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and means for orientating said finite n-dimensional space curve to the determined direction.
According to still another aspect of the present invention there is provided apparatus for orientating a character stroke, the apparatus comprising: means for selecting a desired direction for orientating the character stroke; means for generating a first vector 20 having a direction which is same as the selected desired direction; means for generating a space curve representative of the character stroke, wherein the space curve has two; means for generating two second vectors, each connecting both said endpoints and having opposite directions; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is S 25 along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and wherein said comparison means comprising: means for determining a first angle between one of said two second vectors and said first vector; means for determining a second angle between the other one of said two second vectors and said first vector; and means for comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second directiorr, opposite the first direction; means for orientating said direction of said space curve in accordance CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]46668.doc:PWM with said determined direction; and means for orientating the character stroke in accordance with the direction of the space curve.
According to still another aspect of the present invention there is provided a computer program product comprising a computer readable medium having a computer program for orientating a space curve, wherein the space curve has two endpoints, the computer program product comprising: selection means for selecting a desired direction; first generation means for generating a first vector having a direction which is same as the selected desired direction; means for providing a space curve; second generation means for generating at least one second vector, each said second vector having a corresponding direction indicative of a corresponding characteristic of the space curve; first comparison means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientation means for orientating said direction of said space curve in accordance with said determined direction.
According to still another aspect of the present invention there is provided a computer program product comprising a computer readable medium including a computer program for orientating a finite n-dimensional space curve, wherein the space curve has two endpoints, the computer program product comprising: means for selecting a desired direction in response to user input; means for generating a first vector having a direction which is same as the selected desired direction; means for providing a n-dimensional space curve; means for generating at least one second vector based upon the finite ndimensional space curve; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and means for orientating said finite ndimensional space curve to the determined direction.
According to still another aspect of the present invention there is provided a computer program product comprising a computer readable medium including a computer program for orientating a character stroke, the computer program product comprising: means for selecting a desired direction for orientating the character stroke; means for generating a first vector having a direction which is same as the selected desired direction; means for generating a space curve representative of the character stroke, wherein the CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM space curve has two endpoints, means for generating two second vectors, each connecting both said endpoints and having opposite directions; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and wherein said comparison means comprises: means for determining a first angle between one of said two second vectors and said first vector; means for determining a second angle between the other one of said two second vectors and said first vector; and means for comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction; means for orientating said direction of said space curve in accordance with said determined direction; and means for orientating the character stroke in accordance with the direction of the space curve.
Brief Description of the Drawings Embodiments of the invention are described with reference to the drawings, in which: Fig. 1 is a flow diagram of a method of orientating an n-dimensional finite space curve in accordance with a preferred embodiment of the invention; Fig. 2 illustrates an example 2-dimensional curve with end points labelled; ~Fig. 3 illustrates an example set of two preferred direction vectors for the 2dimensional case; Fig. 4 illustrates an example set of three preferred direction vectors for the 3dimensional case; 25 Figs. 5A and 5B illustrate vectorial relationships between the curve end points; *000*Figs. 6A and 6B illustrate the relationship between end point vectors and the preferred direction vector; Figs. 7A to 7F illustrate the special case of ambiguous orientation and its o.
solution using the second preferred direction vector; Fig. 8 illustrates the special case of coincident start and end points for a closed curve; Fig. 9 illustrates a variety of 2-dimensional curves oriented to varruus-preferred directions; CFP141AU (OPEN39) 466680 I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM Fig. 10 illustrates an example 2-dimensional curve with end points and end tangent directions shown; Fig. 11 illustrates an example preferred direction vector for the 2-dimensional case; Figs. 12A and 12B illustrate the relationship between end tangent vectors and the preferred direction vector; Fig. 13 illustrates the special example of parallel end tangent vectors; Figs. 14A to 14D illustrate a solution to the problem shown in Fig. 12 based on end point position; Figs. 15A to 15F illustrate the resolution of the ambiguous end point case using a second preferred direction; Fig. 16 illustrates the special case of coincident start and end points for a closed curve; Fig. 17 illustrates a variety of 2-dimensional curves oriented to various preferred directions; and Fig. 18 is a block diagram of a general purpose computer with which the embodiments can be implemented; Detailed Description Where reference is made in any one or more of the drawings to steps and/or 20 features which have the same reference numerals, those steps and/or features are for the purposes of the description the same, unless the contrary appears.
The principles of the preferred method have general applicability to ndimensional finite space curves. However, for ease of explanation, 2-dimensional examples are also described, in particular the orientation of 2-dimensional curves that describe the paths of stroke-based typeface characters. It is not intended that the present invention be limited to these 2-dimensional examples. The preferred method can have application for generating and/or modifying typefaces, fonts, or characters suitable for display or printing but is not specifically limited thereto.
Some portions of the detailed descriptions which follow 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 substance of their work to others skilled in the art. An algorithm is here, and generally, CFP141AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM 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, 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", "providing", "comparing", "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 20 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 .oo* S°comprising a computer readable medium including a computer program for orientating a space curve. 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 magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a general'ptrpose computer. The transmission medium may also include a hard-wired medium such as CFP141AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM 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. 1 is a flow diagram of a method of orientating a n-dimensional finite space curve in accordance with a preferred embodiment of the invention. The preferred method allows orientation of a space curve in a simple and consistent manner with limited user input. The method commences at step 102 and any necessary processes and parameters are initialized. In the next step 104, the user selects a preferred direction for orientating the n-dimensional finite curve space. Alternatively, the preferred direction may be preset.
The processing continues at the next step 106, where a preferred vector is generated having the same direction as the preferred direction. Also during this step, n-1 additional preferred vectors are generated from the preferred direction supplied by the user. Each of these additional preferred vectors is non-zero and is linearly independent of the other preferred vectors, thus forming a basis. Alternatively, the user may input each desired direction of these additional preferred vectors. In this way, any ambiguous result of S•orientating the space curve can be resolved. In the next step 108, an n-dimensional finite space curve is provided, which may be accessed from memory or may be implicitly generated. This n-dimensional space curve may be derived from the shape of a character.
The processing continues at the next step 110, where one or more vector(s) based upon a characteristic of the space curve are generated. Preferably, the method automatically °generates these vector(s) of the space curve according to a predetermined technique.
Alternatively, the method can include a step (not shown) whereby a user is able to select the desired technique for generating the vector(s) of the space curve. These techniques and some typical examples of vectors of space curves are given in the examples described below. In the next step 112, a comparison is made between one or two vectors of space curves and the initial preferred vector to determine that direction of the space curve closest to the desired direction. If both vectors of the space curves are equally close then the additional preferred vectors are utilized to resolve the ambiguity. In step 114, the ndimensional finite space curve is then orientated to that direction determined by step 112.
During this step, the corresponding character can also be orientated in the same direction.
In the decision box 116, a check is made whether any more space curves are to be CFP1418AU (OPEN39) 466680 [I:\ELEC\CISPRA\OPEN\OPEN39]466680.doc:PWM processed. If the decision box returns true, the processing continues at step 108.
Otherwise, the processing terminates at step 118. For a more detailed explanation of the preferred method reference is made to the following examples.
Example(s) Turning initially to Fig. 2, there is shown a sample 2-dimensional space curve describing the stroke path 21 of the character Two end points A 22 and B 23 have been labelled, and the curve is not oriented at this stage. The end points are selected such that all points along the curve lie within the interval formed by these end points. This 2dimensional curve is derived from a complex character shape Any of the known processes for obtaining the stroke path from the character shape would be suitable. This complex character shape may be stored in memory for processing by the preferred method. Alternatively, the complex character shape may be implicitly generated.
Turning to Fig. 3, there is shown the "preferred vector" vl 31 that describes an angle theta 32 with the X-axis. The angle theta is supplied by the user as a single continuous-value parameter, and controls the overall orientation that is enforced on the set of curves to be oriented. A "second preferred vector" v2 33 is calculated relative to vl such that it is orthogonal to vl and lies in the 2-dimensional plane occupied by the set of *0 *e curves to be oriented. The second preferred vector is used to resolve cases where the preferred vector yields an ambiguous solution. The direction of orthogonality (left orthogonal or right orthogonal in the 2-dimensional case) is not important provided that the same convention is used consistently. Note that if the second preferred vector is nonzero and linearly independent of the preferred vector, then ambiguity resolution is •guaranteed. Alternatively, other types of non-zero linearly independent vectors may be used instead of orthogonal vectors.
For the general case of n-dimensional curves, n-I additional preferred vectors are calculated from the initial preferred vector provided by the user, such that each successive preferred vector is non-zero and linearly independent of preceding preferred vectors, forming a basis.
For instance, Fig 4 shows a preferred vector set for a 3-dimensional example.
There is shown vl 41, the initial preferred vector nominated by the user, v2 42 the second preferred vector that is orthogonal to vl, and v3 43 the third preferred vector that is orthogonal to both vl and v2 44. The second preferred vector is used to resolve cases where the preferred vector gives an ambiguous solution, and the third preferred vector is CFP1418AU (OPEN39) 466680 I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM used to resolve cases where the preferred and second preferred vectors both give ambiguous results. This chain of ambiguity resolution can be extended to n preferred vectors in n-dimensions as required. The preferred vectors need not be orthogonal to previous preferred vectors, but must be non-zero and linearly independent of previous preferred vectors. Any number of vectors may be specified (either linearly dependent or independent) provided that this set includes at least n linearly independent vectors.
Referring to Figs. 5A and 5B, there are illustrated two arrangements of the planar figure 21 based upon its end points A 22 and B 23 (Fig. The first arrangement (Fig.
shows the end points related by the vector BA 51, and the second arrangement (Fig.
5B) shows the end points related by the vector AB 52. This is one way to derive the "characteristic vector" based upon the curve's characteristics, and its "matching" vector, which in this case is co-linear with and in an opposite direction to the characteristic vector. Any process that describes the curve in terms of a single characteristic vector may be applied, for instance integrating the curve to obtain the average direction vector.
Turning now to Figs. 6A and 6B, there are shown the angles alpha 61 and beta 62 given by the acute angle between vectors BA and vl, and vectors AB and vl respectively.
The relative magnitudes of angles alpha and beta define the final orientation of the curve, and can be conveniently calculated as the dot product of the vector pairs. If the magnitude of alpha is less that the magnitude of beta then the curve is described as being oriented 20 "from B to and if the magnitude of alpha is greater than the magnitude of beta then the curve is described as being oriented "from A to Alternatively, the magnitude of alpha can be compared against a threshold of 900. If alpha is less than 900 the direction of the curve is "from B to If alpha is greater than the 900 threshold then the direction of the curve is "from A to B".
In the case that alpha and beta are of equal magnitude (the dot product is 0 in both cases), then the second preferred vector v2 can be used to resolve this ambiguity, as .shown in Figs. 7A to 7F. The end points of the 2-dimensional curve 70 are related by the vectors DC 71 and CD 72, but the acute angles alpha 74 and beta 75 formed by these vectors and the preferred vector vl are identical (both give a dot product of The second preferred vector v2 is now used as follows. The acute angles gamma 76 and delta 77 formed by the vectors DC and CD and v2 are calculated, and their relative magnitude is used to determine the curve's orientation in a manner similar to the comparison between alpha and beta. That is, if the magnitude of gamma is less that the magnitude of delta CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -11 then the curve is described as being oriented "from D to and if the magnitude of gamma is greater than the magnitude of delta then the curve is described as being oriented "from C to For the 2-dimensional case, if alpha and beta are of equal magnitude then it is not possible for gamma and delta to also be of equal magnitude. Alternatively, the magnitude of gamma can be compared against a threshold of 900. If gamma is less than the direction of the curve is "from D to If gamma is greater than the 90' threshold then the direction of the curve is "from C to D".
For the general case of an n-dimensional curve, the coordinates of the difference vector AB in the basis formed by the set of linearly independent preferred vectors is non zero when A is not equal to B. Here, the process is to choose the orientation "from A to B" if the first non-zero coordinate is positive, and choose the orientation "from B to A" if the first non-zero coordinate is negative. It is not possible for all n linearly dependent preferred vector comparisons to be ambiguous.
Turning now to Fig. 8, there is shown a closed curve 81, a special case of a finite curve with no clearly defined start or end point. In this instance, either it can be decided that the orientation process applies only to open curves, or a second non-ambiguous technique can be chosen to deal with this case. One example of such a non-ambiguous technique follows.
Given that the only restriction on end points is that all curve points must lie within the interval described by them, then any point on the closed curve may be chosen such that the start point A and end point B are coincident at this chosen point 82. Given no other criteria, it is sensible to choose this coincident start/end position as a point on the curve whose outward normal is most similar to the preferred vector vl 83. Alternatively, the point to be nominated as the coincident start/end point may be chosen randomly along the curve interval, pseudo-randomly for reproducibility, or according to some other relevant criteria. The vectors AB and BA are in fact NULL and have no length or direction. Consequently, alternative vectors AB' 84 and BA' 85 can be defined tangent to the curve at point A/B and heading in opposite directions. Once AB' and BA' have been defined, the same process as previously described for determining orientation in the nonoooo closed case applies. Note that in this particular example, AB' and BA' are perpendicular to the preferred vector vl, so the second preferred vector v2 will be the deciding vector here.
CFP1418AU (OPEN39) 466680 [:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM -12- Turning now to Fig. 9, there are shown five different sets of stroke curves. The first curve set 900 to 905 illustrates a group of complex curves representing the character The second curve set 910 to 915 illustrates a single curve of the character The third curve set 920 to 925 represents an asterisk-like character. The fourth curve set 930 to 935 represents a group of complex curves representing the character The fifth curve set 940 to 945 represents a group of complex curves representing the character Also shown is the direction of the preferred vector vi measured in degrees (950 to 955) in an anti-clockwise direction from the "9 o'clock" position. The direction of each of the stroke curves of Fig. 9 are shown for each direction of the preferred vector utilising the method described with reference to Figs. 5A to 7F.
Further Examples Turning initially to Fig. 10, there is shown a sample 2-dimensional curve describing the path of the character 101. Two end points A 102 and B 103 have been labelled, and the curve is not oriented at this stage. The end points are selected such that all points along the curve lie within the interval formed by these end points. The outwardly directed end tangent associated with end point A, Ta 104, and the outwardly directed end tangent associated with end point B, Tb 105, are also shown. The tangent direction at end points can be calculated by standard mathematical techniques. This is only one way in which the dual "characteristic vectors" Ta and Tb may be calculated.
20 Any process that describes the curve in terms of a dual characteristic vector pair may be applied, for instance integrating the curve to obtain the weighted average direction vector relative to each end.
Turning to Fig. 11, there is shown the "preferred vector" vlI 111 that describes an angle theta 112 with the X-axis. The angle theta is supplied by the user as a single 25 continuous-value parameter, and controls the overall orientation that is enforced on the set of curves to be oriented.
Referring to Figs. 12A and 12B, there are shown the angles alpha 121 and beta 122 given by the acute angle between vectors Ta and vl, and vectors Tb and vl respectively. The relative magnitudes of angles alpha and beta define the final orientation of the curve, and can be conveniently calculated as the dot product of the vector pairs. If the magnitude of alpha is less that the magnitude of beta then the curve is described as being oriented "from B to and if the magnitude of alpha is greater than the magnitude of beta then the curve is described as being oriented "from A to B".
CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM -13- Turning now to Fig. 13, there is shown the special case 131 where alpha and beta are of equal magnitude (end tangent vectors Ta 132 and Tb 133 are parallel). An additional technique can be used to resolve this ambiguity, similar to that described with reference to and illustrated in Figs. 5A and 5B. This technique is described in more detail with reference to Figs. 14A to 14D. The end points A 141 and B 142 of the 2dimensional curve 140 are connected by the vectors AB 143 and BA 144. The angles alpha 146 and beta 147 are given by the acute angle between vectors AB and vl, and vectors BA and vl respectively. If the magnitude of alpha is less that the magnitude of beta then the curve is described as being oriented "from B to and if the magnitude of alpha is greater than the magnitude of beta then the curve is described as being oriented "from A to Alternatively, the magnitude of alpha can be compared against a threshold of 900. If alpha is less than 900 the direction of the curve is "from B to If alpha is greater than the 900 threshold then the direction of the curve is "from A to B".
Illustrated in Figs. 15A to 15F is the case where alpha 146 and beta 147, of the previous example (Figs. 14C and 14D), are identical (both give a dot product of In this case, both alpha 146 and beta 147 are right angles. A "second preferred vector" v2 150 is used to solve the ambiguity. The second preferred vector v2 150 is selected relative to vl 145 such that it is non-zero and linearly independent of vl and lies in the 2dimensional plane occupied by the curve 140. The second preferred vector v2 is used to resolve cases where the preferred vector vl yields an ambiguous solution. For convenience, v2 is defined to be orthogonal to vl where direction of orthogonality (left orthogonal or right orthogonal in the 2-dimensional case) is not important provided that "the same convention is used consistently. Note that if the second preferred vector is nonzero and linearly independent of the preferred vector, then ambiguity resolution is guaranteed. The second preferred vector v2 150 is used as follows. The angles gamma 151 and delta 152 formed by the vectors AB and BA and v2 are calculated, and their relative magnitude is used to determine the curve's orientation similar to the comparison between alpha and beta. That is, if the magnitude of gamma y is less than the magnitude of delta then the curve is described as being orientated "from B to and if the magnitude of gamma y is greater than the magnitude of delta, then the curve is described as being orientated "from A to For the 2-dimensional case, if alpha and beta are equal in magnitude then it is not possible for gamma and delta to also be of equai ragnitude.
Alternatively, the magnitude of gamma can be compared against a threshold of 90'. If CFP1418AU (OPEN39) 466680 [1:\FLEC\CISRA\OPEN\OPEN39]466680.doc:PWM CFPI4ISAU (OPEN39) 466680 [I:\ELEC\CI5RA\OPEN\OPEN39]466680.doc:PWM -14gamma is less than 900 the direction of the curve is "from B to If gamma is greater than the 900 threshold then the direction of the curve is "from A to B".
Turning now to Fig. 16, there is shown a closed curve 161, a special case of a finite curve with no clearly defined start or end point. In this instance, either it can be decided that the orientation process applies only to open curves, or a second nonambiguous technique can be chosen to deal with this case. One example of such a nonambiguous technique follows.
Given that the only restriction on end points is that all curve points must lie within the interval described by them, then any point on the closed curve may be chosen such that the start point A and end point B are coincident at this chosen point 162. Given no other criteria, it is sensible to choose this coincident start/end position as a point on the curve whose outward normal is most similar to the preferred vector vl 163.
Alternatively, the point to be nominated as the coincident start/end point may be chosen randomly along the curve interval, pseudorandomly for reproducibility, or according to some other relevant criteria. The end tangent vectors Ta 165 and Tb 166 are calculated, and the same process as previously described for determining orientation in the nonclosed case applies. Note that in this particular example, Ta and Tb are perpendicular to the preferred vector vl so the second preferred vector v2 will be the deciding vector here.
Referring to Fig. 17, there are shown a variety of character shapes described by S 20 2-dimensional stroke paths similar to that shown in Fig. 9. However, in this case, the direction of the preferred vector vl is measured anti-clockwise from a "3 o'clock" position. Furthermore, the method utilised for orientating the stroke curves is that described with reference to Figs. 11 to If a curve to be oriented is already in an oriented format (that is, it occupies a monotonically increasing interval) then either: a) the original direction can be retained, or b) the curve can be reoriented, depending on the outcome of the orientation process. If the curve is to be reoriented, this can in general be achieved by relabelling the end points, reversing or reparameterising the curve along its interval, or performing whatever action is relevant to the curve's specific format.
CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM Preferred Embodiment of Apparatus(s) The preferred method is preferably practiced using a conventional generalpurpose computer, such as the one shown in Fig. 18, wherein the processes of Figs. 1 to 17 may be implemented as software executing on the computer. In particular, the steps of the method 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 orientation method; and another part to manage the user interface between 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 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 orientating a character stroke or n-dimensional finite space curves in accordance with the embodiments of the invention.
The computer system 1800 consists of the computer 1802, a video display 1816, and input devices 1818, 1820. In addition, the computer system 1800 can have any of a number of other output devices including line printers, laser printers, plotters, and other reproduction devices connected to the computer 1802. The computer system 1800 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 include a local area network (LAN), a wide area network (WAN), an Intranet, and/or the Internet The computer 1802 itself consists of a central processing unit(s) (simply referred to as a processor hereinafter) 1804, a memory 1806 which may include random access 25 memory (RAM) and read-only memory (ROM), input/output (IO) interfaces 1808, a video interface 1810, and one or more storage devices generally represented by a block 1812 in Fig. 1. The storage device(s) 1812 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 1804 to 1812 is typically connected to one or more of the other Sdevices via a bus 1814 that in turn can consist of data, address, and control buses.
The video interface 1810 is connected to the video display 1816" in provides video signals from the computer 1802 for display on the video display 1816. User input CFP1418AU (OPEN39) 466680 [1:\ELEC\C IS RA\OPPEN\OPEN339]466680.doc:PWM CFPI4I8AU (OPEN39) 466680 (I \ELEC\CISRA\OPEN\OPEN39]466680.doc:P WM -16to operate the computer 1802 can be provided by one or more input devices 1808. For example, an operator can use the keyboard 1818 and/or a pointing device such as the mouse 1820 to provide input to the computer 1802.
The system 1800 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 include IBM-PC/ATs or compatibles, one of the Macintosh (TM) family of PCs, Sun Sparcstation or the like. The foregoing are merely exemplary of the types of computers with which the 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 1812 in Fig. 18) as the computer readable medium, and read and controlled using the processor 1804. Intermediate storage of the program and pixel data and any data fetched from the network may be accomplished using the semiconductor memory 1806, possibly in concert with the hard disk drive 1812.
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 1812), or alternatively could 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 1800 from other computer readable medium including magnetic tape, a ROM or integrated 20 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 :Internet and Intranets including 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 25 the scope and spirit of the invention.
The preferred method of orientation may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the steps of the method. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
Industrial Applicability The preferred embodiments are general purpose tools and may find applications in many computer graphic process(es). For example, the preferred embodiments may be CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM -17used in character recognition for stroke-based fonts; evaluation of validity or artistic merit of stroke-base fonts; computerised aids for teaching calligraphic techniques; and application of artistic effects to objects described by arbitrary space curves. Curve orientation is especially important in the area of calligraphy, where incorrectly strokes are easily recognised and indicative of poor technique. The present embodiment(s) 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 on computers.
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 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.
a.
*i CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM CFPI4I8AU (OPEN39) 466680 [I:\ELEC\CI5RA\OPEN\0PEN391466680.doc:PWM

Claims (13)

1. A method of orientating a space curve, wherein the space curve has two endpoints, the method comprising the steps of: selecting a desired direction; (ii) generating a first vector having a direction which is same as the selected desired direction; (iii) generating at least one second vector, each said second vector having a corresponding direction indicative of a corresponding characteristic of the space curve; (iv) comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientating said direction of said space curve in accordance with said determined direction.
2. A method as claimed in claim 1, wherein said step (iii) comprises the substeps of: (iii)(a) determining said endpoints of said space curve; and 20 (iii)(b) generating one said second vector connecting both said endpoints.
3. A method as claimed in claim 1, wherein said step (iii) comprises the substeps of: (iii)(a) determining said endpoints of said space curve; and 25 (iii)(b) generating two said second vectors, each connecting both said endpoints and having opposite directions.
4. A method as claimed in claim 3, wherein said comparing step (iv) comprises the sub-steps of; 30 determining a first angle between one of said second vectors and said first vector; determining a second angle between the other one of said second vectors and said first vector; CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -19- comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction. A method as claimed in claim 2, wherein said comparing step (iv) comprises the sub-steps of: determining a first angle between said first vector and said second vector; comparing said first angle with a first threshold value; wherein if said first angle is less than said first threshold value then the determined direction of the space curve is in a first direction, and if said first angle is greater than said first threshold value then the determined direction of the space curve is in a second direction, opposite the first direction.
6. A method as claimed in claim 5, wherein said first threshold value is
7. A method as claimed in claim 4, wherein said method further comprises the step of generating a vector orthogonal to said first vector.
8. A method as claimed in claim 5, wherein said method further comprises the step of generating a vector orthogonal to said first vector.
9. A method as claimed in claim 7 or 8, wherein said orthogonal vector is generated 25 in a predetermined manner.
10. A method as claimed in claim 7 or 8, wherein said orthogonal vector is generated in accordance with a user selected direction.
11. A method as claimed in claim 7, wherein, if said first angle equals said second angle, the comparing step (iv) further comprises the sub-steps of: determining a third angle between one of said second vecTbors and said orthogonal vector; CFP141AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM 20 determining a fourth angle between the other one of said second vectors and said orthogonal vector; comparing said third angle with said fourth angle, wherein if said third angle is less than said fourth angle then the determined direction of the space curve is in a third direction, and if said third angle is greater than said fourth angle then the determined direction of the space curve is in a fourth direction, opposite the third direction.
12. A method as claimed in claim 8, wherein, if said first angle equals said first threshold value, the comparing step (iv) further comprises the sub-steps of: determining a second angle between said second vector and said orthogonal vector; comparing said second angle with a second threshold value; wherein if said second angle is less than said second threshold value then the determined direction of the space curve is in a third direction, and if said second angle is greater than said second threshold value then the determined direction of the space curve is in a fourth direction, opposite the third direction.
13. A method as claimed in claim 12, wherein said second threshold value is
900. 14. A method as claimed in claim 1, wherein said step (iii) comprises the substeps of: (iii)(a) determining endpoints of said curve; and (iii)(b) generating, at each said endpoint, a said second vector tangent to said 25 curve. 15. A method as claimed in claim 14, wherein said comparing step (iv) comprises the sub-steps of; determining a first angle between one of said second vectors and said first vector; determining a second angle between the other one of said second vectors and said first vector; CFPI418AU (OPEN39) 466680 1:\ELEC\C IS RA\OP EN\OP EN3 91466680.doc: PWM -21 comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction. 16. A method as claimed in claim 15, wherein said step (iii) further comprises the substeps of: (iii)(c) generating one said third vector connecting both said endpoints. 17. A method as claimed in claim 15, wherein said step (iii) further comprises the substeps of: (iii)(c) generating two said third vectors, each connecting both said endpoints and having opposite directions. 18. A method as claimed in claim 17, wherein said comparing step (iv) further comprises the sub-steps of; determining a third angle between one of said third vectors and said first vector; determining a fourth angle between the other one of said third vectors and said first vector; comparing said third angle with said fourth angle; wherein if said third angle is less than said fourth angle then the determined direction of the space curve is in a third direction, and if said third angle is greater than said fourth angle then the determined 25 direction of the space curve is in a fourth direction, opposite the third direction. o o 19. A method as claimed in claim 16, wherein said comparing step (iv) comprises the sub-steps of: determining a third angle between said third vector and said first vector; comparing said third angle with a first threshold value; wherein if said third angle is less than said first threshold value then the determined direction of the space curve is in a third direction, and if said third angle is greater than said first threslold value CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]46680.doc:PWM -22- then the determined direction of the space curve is in a fourth direction, opposite the third direction. A method as claimed in claim 19, wherein said first threshold value is 21. A method as claimed in claim 18, wherein said step (iii) comprises the substep of: (iii)(a) generating a vector orthogonal to said first vector. 22. A method as claimed in claim 19, wherein said step (iii) comprises the substep of: (iii)(a) generating a vector orthogonal to said first vector. 23. A method as claimed in claim 21 or 22, wherein said orthogonal vector is generated in a predetermined manner. 24. A method as claimed in claim 21 or 22, wherein said orthogonal vector is generated in accordance with a user selected direction. 25. A method as claimed in claim 21, wherein, if said third angle equals said fourth angle, the comparing step further comprises the following sub-steps: determining a fifth angle between said first one of said third vectors and said orthogonal vector; 25 determining a sixth angle between said other one of said third vectors and said orthogonal vector; comparing said fifth angle with said sixth angle, wherein if said fifth S angle is less than said sixth angle then the determined direction of the space curve is in a fifth direction, and if said fifth angle is greater than said sixth angle then the determined direction of the space curve is in a sixth direction, opposite the fifth direction. 26. A method as claimed in claim 22, wherein, if said third angle equals said first threshold value, the comparing step (iv) comprises the following sub-steps: CFP1418AU (OPEN39) 466680 I:\ELEC\CISRA\OP EN\0PEN39j466680.doc:PWM 23 determining a fourth angle between said third vector and said orthogonal vector; comparing said fourth angle with a second threshold value; wherein if said fourth angle is less than said second threshold value then the determined direction of the space curve is in a fourth direction, and if said fourth angle is greater than said second threshold value then the determined direction of the space curve is in a fifth direction, opposite the fourth direction. 27. 900. A method as claimed in claim 26, wherein said second threshold value is O00 49 9O 9 OO..o t O 9. 9 0O 9.O 9 99 *9 9*9* O 9 9o .9oo9 o g. 28. A method as claimed in claim 1, wherein the method comprises the step of providing further space curves and performing the steps (iii) to on each space curve. 29. A method as claimed in claim 1, wherein the method comprises a plurality of techniques for generating the second vectors and a step for selecting one of said techniques in response to user input. A method of orientating a finite n-dimensional space curve, wherein the space 20 curve has two endpoints, the method comprising the steps of: selecting a desired direction in response to user input; (ii) generating a first vector having a direction which is same as the selected desired direction; (iii) generating at least one second vector based upon the finite n- 25 dimensional space curve; (iv) comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientating said finite n-dimensional space curve to the determined direction. 31. A method of orientating a character stroke, the method comprising the steps of: CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM -24- selecting a desired direction for orientating the character stroke; (ii) generating a first vector having a direction which is same as the selected desired direction; (iii) generating a space curve representative of the character stroke, wherein the space curve has two endpoints; (iv) generating two second vectors, each connecting both said endpoints and having opposite directions; comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and wherein said comparing step comprises the sub-steps of: determining a first angle between one of said two second vectors and said first vector; determining a second angle between the other one of said two second vectors and said first vector; and comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first fo r 20 direction; (vi) orientating said direction of said space curve in accordance with said °,determined direction; and 0S p (vii) orientating the character stroke in accordance with the direction of the space curve. 32. Apparatus for orientating a space curve, wherein the space curve has two endpoints, the apparatus comprising: selection means for selecting a desired direction; first generation means for generating a first vector having a direction which is same as the selected desired direction; means for providing a space curve; CFPI418AU (OPEN39) 466680 [!:\ELEC\CISRA\OPENOPEN391466680.doc:PWM second generation means for generating at least one second vector, each said second vector having a corresponding direction indicative of a corresponding characteristic of the space curve; comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientation means for orientating said direction of said space curve in accordance with said determined direction. 33. Apparatus claimed in claim 32, wherein said second generation means comprises: means for determining said endpoints of said space curve; and means for generating one said second vector connecting both said endpoints. 34. Apparatus as claimed in claim 32, wherein said second generating means comprises: means for determining said endpoints of said space curve; and means for generating two said second vectors, each connecting both said 0@ 00 20 endpoints and having opposite directions. too@ .o 35. Apparatus as claimed in claim 34, wherein said first comparison means 5005 comprises: oge• means for determining a first angle between one of said second vectors and said oeO 25 first vector; means for determining a second angle between the other one of said second vectors and said first vector; S.. *.means for comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in OS a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction. CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -26- 36. Apparatus as claimed in claim 33, wherein said first comparison means comprises: means for determining a first angle between said first vector and said second vector; means for comparing said first angle with a first threshold value; wherein if said first angle is less than said first threshold value then the determined direction of the space curve is in a first direction, and if said first angle is greater than said first threshold value then the determined direction of the space curve is in a second direction, opposite the first direction. 37. Apparatus as claimed in claim 36, wherein said first threshold value is 900. 38. Apparatus as claimed in claim 35, wherein said apparatus further comprises means for generating a vector orthogonal to said first vector. 39. Apparatus as claimed in claim 36, wherein said apparatus further comprises means for generating a vector orthogonal to said first vector. :40. Apparatus as claimed in claim 38 or 39, wherein said orthogonal vector is 20 generated in a predetermined manner. oooe :i 41. Apparatus as claimed in claim 38 or 39, wherein said orthogonal vector is generated in accordance with a user selected direction. 42. Apparatus as claimed in claim 38, wherein the first comparison means further comprises: ****.means for determining a third angle between one of said second vectors and said orthogonal vector; ooo, means for determining a fourth angle between the other one of said second vectors and said orthogonal vector; means for comparing said third angle with said fourth angle, wherein if said third angle is less than said fourth angle then the determined direction of the space curve is in a CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -27- third direction, and if said third angle is greater than said fourth angle then the determined direction of the space curve is in a fourth direction, opposite the third direction. 43. Apparatus as claimed in claim 39, wherein the first comparison means further comprises: means for determining a second angle between said second vector and said orthogonal vector; means for comparing said second angle with a second threshold value; wherein if said second angle is less than said second threshold value then the determined direction of the space curve is in a third direction, and if said second angle is greater than said second threshold value then the determined direction of the space curve is in a fourth direction, opposite the third direction. 44. Apparatus as claimed in claim 43, wherein said second threshold value is 900. Apparatus as claimed in claim 32, wherein said second generation means comprises: means for determining endpoints of said curve; and means for generating, at each said endpoint, a said second vector tangent to said curve. 46. Apparatus as claimed in claim 45, wherein said first comparison means comprises means for determining a first angle between one of said second vectors and said first vector; means for determining a second angle between the other one of said second vectors and said first vector; means for comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposit- the first direction. CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM -28- 47. Apparatus as claimed in claim 46, wherein said second generation means comprises: means for generating one said third vector connecting both said endpoints. 48. Apparatus as claimed in claim 46, wherein said second generation means further comprises: means for generating two said third vectors, each connecting both said endpoints and having opposite directions. 49. Apparatus as claimed in claim 48, wherein said first comparison means further comprises: means for determining a third angle between one of said third vectors and said first vector; means for determining a fourth angle between the other one of said third vectors and said first vector; means for comparing said third angle with said fourth angle; wherein if said third angle is less than said fourth angle then the determined direction of the space curve is in a third direction, and if said third angle is greater than said fourth angle then the determined direction of the space curve is in a fourth direction, opposite the third direction. 50. Apparatus as claimed in claim 47, wherein said first comparison means comprises: means for determining a third angle between said third vector and said first vector; means for comparing said third angle with a first threshold value; wherein if said S third angle is less than said first threshold value then the determined direction of the space curve is in a third direction, and if said third angle is greater than said first threshold value 3 then the determined direction of the space curve is in a fourth direction, opposite the third direction. 51. Apparatus as claimed in claim 50, wherein said first threshold value is CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM -29- 52. Apparatus as claimed in claim 49, wherein said second generation means comprises: means for generating a vector orthogonal to said first vector. 53. Apparatus as claimed in claim 50, wherein said second generation means comprises: means for generating a vector orthogonal to said first vector. 54. Apparatus as claimed in claim 52 or 53, wherein said orthogonal vector is generated in a predetermined manner. Apparatus as claimed in claim 52 or 53, wherein said orthogonal vector is generated in accordance with a user selected direction. 56. Apparatus as claimed in claim 52, wherein the first comparison means further comprises: means for determining a fifth angle between said first one of said third vectors and said orthogonal vector; means for determining a sixth angle between said other one of said third vectors and said orthogonal vector; means for comparing said fifth angle with said sixth angle, wherein if said fifth angle is less than said sixth angle then the determined direction of the space curve is in a fifth direction, and if said fifth angle is greater than said sixth angle then the determined •direction of the space curve is in a sixth direction, opposite the fifth direction. 57. Apparatus as claimed in claim 53, wherein the first comparison means further comprises the following: means for determining a fourth angle between said third vector and said orthogonal vector; means for comparing said fourth angle with a second threshold value; wherein if said fourth angle is less than said second threshold value then the determined direction of the space curve is in a fourth direction, and if said fourth angle is greater thal said second CFPI4I18AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM threshold value then the determined direction of the space curve is in a fifth direction, opposite the fourth direction. 58. Apparatus as claimed in claim 57, wherein said second threshold value is 900. 59. Apparatus as claimed in claim 32, wherein the apparatus comprises means for providing further space curves and performing the operations of the second generation means, first comparison means and orientation means on each space curve. Apparatus as claimed in claim 32, wherein the apparatus comprises a plurality of techniques for generating the second vectors and means for selecting one of said techniques in response to user input. 61. Apparatus for orientating a finite n-dimensional space curve, wherein the space curve has two endpoints, the apparatus comprising: means for selecting a desired direction in response to user input; means for generating a first vector having a direction which is same as the selected desired direction; means for providing a n-dimensional space curve; means for generating at least one second vector based upon the finite n- •dimensional space curve; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and means for orientating said finite n-dimensional space curve to the determined direction. -7.i 62. Apparatus for orientating a character stroke, the apparatus comprising: means for selecting a desired direction for orientating the character stroke; means for generating a first vector having a direction which is same as the selected desired direction; CFP141AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM -31- means for generating a space curve representative of the character stroke, wherein the space curve has two; means for generating two second vectors, each connecting both said endpoints and having opposite directions; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and wherein said comparison means comprising: means for determining a first angle between one of said two second vectors and said first vector; means for determining a second angle between the other one of said two second vectors and said first vector; and means for comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction; means for orientating said direction of said space curve in accordance with said determined direction; and 20 means for orientating the character stroke in accordance with the direction of the :°oo.o ospace curve. 63. A computer program product comprising a computer readable medium having a •computer program for orientating a space curve, wherein the space curve has two endpoints, the computer program product comprising: selection means for selecting a desired direction; first generation means for generating a first vector having a direction which is same as the selected desired direction; means for providing a space curve; second generation means for generating at least one second vector, each said second vector having a corresponding direction indicative of a corresponding characteristic of the space curve; CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM -32- first comparison means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and orientation means for orientating said direction of said space curve in accordance with said determined direction. 64. A computer program product claimed in claim 63, wherein said second generation means comprises: means for determining said endpoints of said space curve; and means for generating one said second vector connecting both said endpoints. A computer program product as claimed in claim 63, wherein said second generating means comprises: means for determining said endpoints of said space curve; and means for generating two said second vectors, each connecting both said endpoints and having opposite directions. 66. A computer program product as claimed in claim 65, wherein said first S 20 comparison means comprises: means for determining a first angle between one of said second vectors and said first vector; means for determining a second angle between the other one of said second vectors and said first vector; S 25 means for comparing said first angle with said second angle; wherein if said first **angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction. 67. A computer program product as claimed in claim 64, wherein said first comparison means comprises: CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM -33- means for determining a first angle between said first vector and said second vector; means for comparing said first angle with a first threshold value; wherein if said first angle is less than said first threshold value then the determined direction of the space curve is in a first direction, and if said first angle is greater than said first threshold value then the determined direction of the space curve is in a second direction, opposite the first direction. 68. A computer program product as claimed in claim 67, wherein said first threshold value is 69. A computer program product as claimed in claim 66, wherein said computer program product further comprises means for generating a vector orthogonal to said first vector. A computer program product as claimed in claim 67, wherein said computer program product further comprises means for generating a vector orthogonal to said first vector. 71. A computer program product as claimed in claim 69 or 70, wherein said o orthogonal vector is generated in a predetermined manner. 72. A computer program product as claimed in claim 69 or 70, wherein said °orthogonal vector is generated in accordance with a user selected direction. S. 73. A computer program product as claimed in claim 69, wherein the first comparison means further comprises: means for determining a third angle between one of said second vectors and said orthogonal vector; means for determining a fourth angle between the other one of said second vectors and said orthogonal vector; means for comparing said third angle with said fourth angle, whereif i'said third angle is less than said fourth angle then the determined direction of the space curve is in a CFPI418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -34- third direction, and if said third angle is greater than said fourth angle then the determined direction of the space curve is in a fourth direction, opposite the third direction. 74. A computer program product as claimed in claim 70, wherein the first comparison means further comprises: means for determining a second angle between said second vector and said orthogonal vector; means for comparing said second angle with a second threshold value; wherein if said second angle is less than said second threshold value then the determined direction of the space curve is in a third direction, and if said second angle is greater than said second threshold value then the determined direction of the space curve is in a fourth direction, opposite the third direction. A computer program product as claimed in claim 74, wherein said second threshold value is 900. 76. A computer program product as claimed in claim 63, wherein said second generation means comprises: S•means for determining endpoints of said curve; and 20 means for generating, at each said endpoint, a said second vector tangent to said curve. 0*00 77. A computer program product as claimed in claim 76, wherein said first °comparison means comprises 25 means for determining a first angle between one of said second vectors and said S. first vector; %see* means for determining a second angle between the other one of said second vectors and said first vector; means for comparing said first angle with said second angle; wherein if said first angle is less than said second angle then the determined direction of the space curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first direction. CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM 78. A computer program product as claimed in claim 77, wherein said second generation means comprises: means for generating one said third vector connecting both said endpoints. 79. A computer program product as claimed in claim 77, wherein said second generation means further comprises: means for generating two said third vectors, each connecting both said endpoints and having opposite directions. A computer program product as claimed in claim 79, wherein said first comparison means further comprises: means for determining a third angle between one of said third vectors and said first vector; means for determining a fourth angle between the other one of said third vectors and said first vector; means for comparing said third angle with said fourth angle; wherein if said third angle is less than said fourth angle then the determined direction of the space curve is in a third direction, and if said third angle is greater than said fourth angle then the determined 20 direction of the space curve is in a fourth direction, opposite the third direction. 81. A computer program product as claimed in claim 78, wherein said first comparison means comprises: means for determining a third angle between said third vector and said first vector; means for comparing said third angle with a first threshold value; wherein if said ."third angle is less than said first threshold value then the determined direction of the space curve is in a third direction, and if said third angle is greater than said first threshold value then the determined direction of the space curve is in a fourth direction, opposite the third direction. 82. A computer program product as claimed in claim 81, wherein said firsrthreshold value is CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -36- 83. A computer program product as claimed in claim 80, wherein said second generation means comprises: means for generating a vector orthogonal to said first vector. 84. A computer program product as claimed in claim 81, wherein said second generation means comprises: means for generating a vector orthogonal to said first vector. 85. A computer program product as claimed in claim 83 or 84, wherein said orthogonal vector is generated in a predetermined manner. 86. A computer program product as claimed in claim 83 or 84, wherein said orthogonal vector is generated in accordance with a user selected direction. 87. A computer program product as claimed in claim 83, wherein the first comparison means further comprises: means for determining a fifth angle between said first one of said third vectors and said orthogonal vector; 20 means for determining a sixth angle between said other one of said third vectors V •.and said orthogonal vector; means for comparing said fifth angle with said sixth angle, wherein if said fifth angle is less than said sixth angle then the determined direction of the space curve is in a fifth direction, and if said fifth angle is greater than said sixth angle then the determined direction of the space curve is in a sixth direction, opposite the fifth direction. 88. A computer program product as claimed in claim 84, wherein the first comparison means further comprises: means for determining a fourth angle between said third vector and said orthogonal vector; means for comparing said fourth angle with a second threshold value; wherein if said fourth angle is less than said second threshold value then the determined direction of the space curve is in a fourth direction, and if said fourth angle is greater than said second CFP148AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN391466680.doc:PWM -37- threshold value then the determined direction of the space curve is in a fifth direction, opposite the fourth direction. 89. A computer program product as claimed in claim 88, wherein said second threshold value is 900. A computer program product as claimed in claim 63, wherein the computer program product comprises means for providing further space curves and performing the operations of the second generation means, first comparison means and orientation means on each space curve. 91. A computer program product as claimed in claim 63, wherein the computer program product comprises a plurality of techniques for generating the second vectors and means for selecting one of said techniques in response to user input. 92. A computer program product comprising a computer readable medium including a computer program for orientating a finite n-dimensional space curve, wherein the space curve has two endpoints, the computer program product comprising: S. S means for selecting a desired direction in response to user input; 20 means for generating a first vector having a direction which is same as the selected desired direction; •means for providing a n-dimensional space curve; means for generating at least one second vector based upon the finite n- •dimensional space curve; 25 means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said S. curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and means for orientating said finite n-dimensional space curve to the determined direction. CFP1418AU (OPEN39) 466680 I:\ELEC\CISRA\OPEN\OPEN39466680doc:PWM -38- 93. A computer program product comprising a computer readable medium including a computer program for orientating a character stroke, the computer program product comprising: means for selecting a desired direction for orientating the character stroke; means for generating a first vector having a direction which is same as the selected desired direction; means for generating a space curve representative of the character stroke, wherein the space curve has two endpoints, means for generating two second vectors, each connecting both said endpoints and having opposite directions; means for comparing the first and second vectors so as to determine a direction of said space curve, wherein said determined direction of said space curve is along said curve from a first said endpoint to a second said endpoint and which is closest to said selected desired direction; and wherein said comparison means comprises: means for determining a first angle between one of said two second vectors and said first vector; means for determining a second angle between the other one of said two second vectors and said first vector; and means for comparing said first angle with said second angle; wherein if 20 said first angle is less than said second angle then the determined direction of the space S. curve is in a first direction, and if said first angle is greater than said second angle then the determined direction of the space curve is in a second direction, opposite the first SOQS direction; means for orientating said direction of said space curve in accordance with said determined direction; and means for orientating the character stroke in accordance with the direction of the S.. space curve. V0069 94. A method of orientating a n-dimensional finite space curve, the method S. S S" 30 substantially as described herein with reference to Figs. 1 to 17 of the accompanying drawings. CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39466680.doc:PWM -39- Apparatus for orientating a n-dimensional finite space curve, the apparatus substantially as described herein with reference to Figs. 1 to 18 of the accompanying drawings. 96. A computer program product comprising a computer readable medium including a computer program for orientating a n-dimensional finite space curve, the computer program product substantially as described herein with reference to Figs. 1 to 18 of the accompanying drawings. DATED this TWENTY-FOURTH day of AUGUST 1999 Canon Kabushiki Kaisha Patent Attorney for the Applicant SPRUSON FERGUSON @0 00 S 0e S. 0 S. SO 0 S OPSS S r 0505 0 S. S @055 *c S 0S S 0@0@ S. CFP1418AU (OPEN39) 466680 [I:\ELEC\CISRA\OPEN\OPEN39]466680.doc:PWM
AU44793/99A 1998-08-28 1999-08-27 Method and apparatus for orientating a character stroke Ceased AU743334B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU44793/99A AU743334B2 (en) 1998-08-28 1999-08-27 Method and apparatus for orientating a character stroke

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPP5578 1998-08-28
AUPP5578A AUPP557898A0 (en) 1998-08-28 1998-08-28 Method and apparatus for orientating a character stroke
AU44793/99A AU743334B2 (en) 1998-08-28 1999-08-27 Method and apparatus for orientating a character stroke

Publications (2)

Publication Number Publication Date
AU4479399A AU4479399A (en) 2000-03-30
AU743334B2 true AU743334B2 (en) 2002-01-24

Family

ID=25626916

Family Applications (1)

Application Number Title Priority Date Filing Date
AU44793/99A Ceased AU743334B2 (en) 1998-08-28 1999-08-27 Method and apparatus for orientating a character stroke

Country Status (1)

Country Link
AU (1) AU743334B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0120598A2 (en) * 1983-02-28 1984-10-03 Taito Corporation Method of and an apparatus for displaying a picture
US5734384A (en) * 1991-11-29 1998-03-31 Picker International, Inc. Cross-referenced sectioning and reprojection of diagnostic image volumes
US5751853A (en) * 1996-01-02 1998-05-12 Cognex Corporation Locating shapes in two-dimensional space curves

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0120598A2 (en) * 1983-02-28 1984-10-03 Taito Corporation Method of and an apparatus for displaying a picture
US5734384A (en) * 1991-11-29 1998-03-31 Picker International, Inc. Cross-referenced sectioning and reprojection of diagnostic image volumes
US5751853A (en) * 1996-01-02 1998-05-12 Cognex Corporation Locating shapes in two-dimensional space curves

Also Published As

Publication number Publication date
AU4479399A (en) 2000-03-30

Similar Documents

Publication Publication Date Title
Hayashi et al. GlyphGAN: Style-consistent font generation based on generative adversarial networks
Bezdek et al. Visual assessment of clustering tendency for rectangular dissimilarity matrices
US7236180B2 (en) Dynamic rendering of ink strokes with transparency
CN107610200B (en) Character library rapid generation method based on characteristic template
Freeman et al. Learning style translation for the lines of a drawing
US6459431B1 (en) Method and apparatus for orientating a set of finite n-dimensional space curves
JP2007188506A (en) Pruning method of icon tree and information processor
Lin et al. Complete font generation of Chinese characters in personal handwriting style
JP2002523844A (en) Character recognition
US11288499B2 (en) Interactive method for generating strokes with Chinese ink painting style and device thereof
JPH04502969A (en) A system for generating aesthetically changeable character designs
JPH10116340A (en) Bit map comparing device and method therefor
Del Bimbo et al. Shape indexing by multi-scale representation
de Figueiredo Adaptive sampling of parametric curves
Ko et al. SKFont: skeleton-driven Korean font generator with conditional deep adversarial networks
AU743334B2 (en) Method and apparatus for orientating a character stroke
Atarsaikhan et al. Guided neural style transfer for shape stylization
Chang et al. Deformed trademark retrieval based on 2D pseudo-hidden Markov model
Gips et al. An investigation of algorithmic aesthetics
US6937239B1 (en) Method and apparatus for orientating a character stroke
Kim et al. Standardizing design-based font classification system for Hangul font services
US5068803A (en) Method and apparatus for filling contours in digital typefaces
Yang et al. Easy recognition of artistic Chinese calligraphic characters
Ding et al. Super‐pixel image segmentation algorithm based on adaptive equalisation feature parameters
CN112232022B (en) Method and system for dynamically adjusting parameters and designing Chinese character patterns and layouts

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)