Technical Field The present invention relates to a method and a device for presenting yraphical information in the form of an image on a display member, such as a visual display unit (VDU), on which the image is assembled from a plurality of symbols defined in advance, which s~mbols are displayed ~o as to appear connected one to another.
A method and a de~ice according to the invention are intended to generate an image of the symbols, preferably manually, on, for example, a VDU. One example of such an image is acircuit diagram of an electrical plant, which may be manually composed initially and then strored in a memory for re-presentation whenever required. In the case of a circuit diagram, the symbols required would consist of pictorial representations of the different components of the plant, e.g. symbols in the form of line segments, inter-sections or rights angles, circles and cirGuit components such as resistors, capacitors, etc. Further a set of alpha-numeric symbols (letters and figures) is also required. The symbols must be able to have a varying size and shape.
Further, each new symbol used must be able to be oriented in a certain way in relation to a previously written symbol.
If, as is desirable, there are several possible write direc-tions in which the image can be displayed, this orientation becomes dependent on which particular write direction is chosen.
Generating an image of the kind mentioned above has hitherto been an extremely time-consuming and, therefore, a costly operation. The invention aims to provide a method and a device which make possible a rapid and simple gene-ration of such images.
Disclosure of the Invention More particularly,according to the present invention, there is provided a method for presenting graphical infor-mation in the form of an image on a display member of the ., , ',~
raster scan type on which the image is built up from aplurality of symbols each in the form of dot matrices but not each of the same size, in which each symbol is defined in advance and in which at least certain symbols amongst said plural.ity of symbols are associated with a plurality of entry poi.nts and/or a plurality of exit points, comprising selecting temporarily a write direction from a plurality of different predetermined write directions, selecting the symbol to be subsequently presented on the display member, automatically selecting an exit point of a symbol previously presented on the display member in dependence on the selected write direction, automatically selecting an entry point of the selected symbol in depen-dence on the selected write direction, and automatically locating the selected symbol on the image with its selected entry point immediately adjacent to the selected exit point of the previously presented symbol.
The present invention also relates to a device for presenting graphical information in the form of an image built up from a plurality of symbols each in the form of dot matrices but not each of the same size, each symbol being defined in advance and at least certain symbols amongst said plurality of symbols being associated with a plurality of entry points and/or a plurality of exit points, said device comprising:
- an input member compri~ingmeans for feeding in information identifying one of said symbols selected to be presented and having entry and exit points, and means for selecting a write direction from a plurality of different predetermined write directions;
~ memory means for storing information about the configuration of the selected symbol and about its entry and exit points, and information associating each entry or exit point of the selected symbol with one of the 7a~l predetermined write directions;
- means for automatically selecting an exit point of a previously presented symbol and an entry point of the selected symbol associated with the selected write direction; and - a display member for displaying said image,said display member comprising means for automatically displaying the selected symbol on the image in such a position that its selected entry point is immediately adjacent to the selected exit point of the previously presented symbol.
Brief Description of Drawings The objects, adv~ntages and other features oE the present invenfion will become more apparent from the fol-lowing non restrictive description of a preferred embodiment thereof, given for the purpose of exemplification only with reference to the accompanying drawings, in which:-Figure 1 is a schematic representation of a device according to the invention, Figure 2 is a flow diagram indicating the operating sequence for symbol generation in the device of Figure 1, Figures 3a to 3f show some stages in the generation of part of a simple image in accordance with the method of the invention, /
_ 4 _ Fogure 4 shows how the symbol memory of the device of Figure 1 may be arranged, Figures 5a to 5d indicate how information may be stored in the memory of Figure 4, Figures 6a and 5b~ 7a and 7b and 8a and 8b show three examples of symbols and the mernory-stored information for generating each, and Figure 9 indicates possible entry and exit points of a symbol in the case of different write directions.
Best .~ode of carrying out the Invention Figure 1 shows a device for carrying out the method accord-ing to the invention and includes a VDU 7 as a display member on which each symbol (assumed in a known manner to be built up from a dot matrix which is detected/written line bv line, for example according to the disclosure of U.S. Patent Specification 4,131,883) is displayed.
Two input members lA and lB are shown in Figure 1. The member lB is a keyboard by means of which the image can be generated step by step - i.e. symbol by symbol - on the VDU 7.
With the aid of the keyboard lB, information about what symbol is to be written next and the desired write direction is generated. An electronic marker (see Figure 3a) may be dis-played on the VDU 7 and may be manually displaced to any desired position (see Figure 3b) with the aid of the keyboard lB. Although the invention is primarily intended for manual generation of an image with the aid of the keyboard lB, information necessary for generating the image may, of course, be obtained via the other input member l.A, for example a computer.
The information from the input members lA, lB is supplied via a buffer memory 2 to a symbol generator 3. The symbol generator 3 processes the incomi.ng information and, in depend-7~(~
ence thereon and on the information from a symbol memory 4, it controls the location of the symbols and the displacement of the electronic marker.
Information about a chosen symbol is supplied to the symbol generator 3 in the form of a coded signal. The code is used to address a location in the symbol memory 4 where information about the shape, size and entry and exit points of the symbol is stored. Examples of how the symbol memory 4 may be designed are shown in Figures 4 - 8b.
The symbol generator 3 picks up the symbol description frbm the symbol memory 4 and starting from the current write direction and marker position, calculates a) where on the VDU 7 the symbol is to be written~ and b) where the electronic marker is to be displaced to after writing the symbol.
The symbol generator 3 transmits the symbol description and information about the location of the symbol on the VDU 7 to a refresh memory 5. In this memory 5, the complete contemporary image is stored, that is, all the previously written symbols, including the current marker position.
Each new symbol is stored in the refresh memory 5 at its intended place with the entry point of the new symbol corres-ponding to the current marker position. Thereafter (or simul-taneously) the marker is displaced to the exit point of the last entered symbol.
A regenerative circuit 6 is used to cyclically scan the refresh memory 5 and present the information stored in the memory 5 to the VDU 7, where the image is displayed.
The manner in which the symbol generator 3 operates can be taken from the flow diagram in Figure 2.
Three types of commands may be fed into the symbol generator 3 from the input members lA/lB; these being:-a) a '~Displacement command", which orders a dis~lacement ofthe electronic marker to a new position, b) a "Write-direction command", which indicates the desired l~rite direction at ~he time in question, and c) a "Symbol code", which identifies the next symbol required for display on the VDU 7 The symbol generator 3 operates with an auxiliary quan-tity tor flag) R, which may assume either the value "0"
or the value "1". When R equals "1" it indicates that the marker is temporarily located at an exit point of a symbol.
The designations used in the flow diagram of Figure 2 for the different operations have the following significance:
N: Set R equal to "0" and select a certain predetermined write direction, for example hori7ontally to the right.
P: Is a new code fed into the buffer memory 2? If the answer is yes, an output NC is used; otherwise an output NC.
A~ Pick up the code (command) from the buffer memory 2.
B: Is the code a displacement command for the electronic marker? If the answer is yes, an output MC is used;
otherwise an output MC.
I: Set R equal to "0".
J: Move the marker to the ordered coordinate.
C: Is the code from the buffer memory 2 a new command of write direction? If the answer is yes, an output DC is used;
otherwise an output DC.
K: Replace the previous write direction with the new write direction.
L: Is R equal to "0"? If the answer is yes, an output R=0 is used; otherwise an output R~0.
M: Detect and move the marlcer to the exit point of the last written symbol that corresponds to the new write direction selected.
D: Detect the entry of a new symbol for the current write direction.
E: Write the new symbol with its entry point coincident with the marker position.
F: Detect the exit point of the new symbol that corresponds to the current write direction.
G: Move the marker to the exit point determined according to F.
H: Set R equal to "1!l.
After START the symbol generator 3 sets R equal to "0"
and selects the predetermined write direction (operation N).
Thereafter the symbol generator 3 remains inactive in the loop around P until the buffer memory 2 indicates that a new code (new command) has arrived from the input member lA or lB and is ready to be picked up. Depending on which of the above-mentioned three types of commands that has arrived, the flow diagram in Figure 2 will be traversed along one of the three different paths, described below.
a) If the command is a "Displacement command".
From the output MC of the block B, the flow path passes to the block I, where the symbol generator 3 sets R equal to "0", which indicat,es that the association of the marker to the exit point of the preceding symbol has been broken. In the block J, the marker is moved to the coordinate indica~ed in the "Displacement com~and". Thereafter a jurnp to the block P takes place, where the symbol generator 3 awalts the next command.
b) If the command is a "~rite-direction command".
If the answer in the block B is negative (i.e. the output MC is used) and the answer in the block ~ is positive (i.e.
the output DC is used), the command is a new l'Write-direction command". In the block K, the previously prevailing write direction is replaced with the new one. If R equals "0", no further processing is necessary and a jump back to the block P
takes place. If ~ equals "1", the exit point of the last written symbol that corresponds to the new write direction is detected in the block M, and the marker is displaced to this exit point.
- c) If the command is a "Symbol code".
; If the answers are negative both in the block B and in the block C, the incoming command will be a "Symbol code". The symbol, identified through the code, will then be written on - 20 the VDU 7 via the refresh memory 5 and the marker will be displaced to the proper exit point of the symbol.
In the block D, the entry point of the new symbol for the prevailing write direction is detected.
In the block E the symbol is written in the refresh memory 5 and on the VDU 7~ the entry point selected in the block D
then coinciding with the marker position. When writing a continuous sequence of symbols, the marker will normally be located on the exit point of the preceding symbol that corres-ponds to the prevailing write direction. Alternatively, however, the marker may be displaced so as not to be positioned on an exit point of a preceding symbol. When writing the first symbol of an image there is of course no preceding symbol.
In the block F, the exit po:int of the written symbol that corresponds to the prevailing write direction is detected, in the block G the marker is displaced to this exit point, and in the block H, R equal "1" is set, after 1~hich a j ump back to the block P takes place.
With reference to Figures 3a to 3_, an example of the appli-cation of the invention will now be described. It is assumed that an operator wishes to generate an image on the VDU shown in Figure 3f via the keyboard 13 in Figure 1. Figure 3_ shows the initial position after the command "START" has been given in Figure 2. The marker (shown as a cross) is then automatic-ally located in a predetermined initial position, in this case at the upper left-hand corner of the VDU 7. A predetermined write direction, in this case horizontally to the right, is then automatically selected.
In Figure 3b, the operator has fed in an appropriate "Displacement command", and the marker has been displaced to the desired starting position. The loop P-A-~-I-J in Fig~re
2 has been completed, possibly a number of times. The quan-tity R has been set at "0", which indicates that the markeris not located at an exit point of a symbol.
- In Figure 3c, the operator has written the symbol "horizontal line segment". This symbol is now written with its entry point (for the current write direction i.e. the left-hand end of the line segment) located at the position of themarkerO The loop P-A-B-C-D-E-F-G-H-P in Figure 2 has now been completed. The marker is displaced automatically to the exit point of the written symbol (for the current write direc-tion~ the right-hand end of the line segment), which is indicated by the quantity R being set at "1".
In Figure 3d the operator has fed in a circle symbol. The same procedure as under Figure 3c is repeated. The quantity R is still ~1".
74(3 In Figure 3e the operator has selected a new write direc-tion, in this case vertically downwards. The loop P-A-B-C-K-L-M-P in Figure 2 has now been completed. The quantity R was "1" and indicated that the marker was at an exit point of a symbol. The symbol generalor 3 therefore detects the exit point of the last written symbol that corres-ponds to the new write direction and places the marker at this exit point.
In Figure 3_ the operator has fed in the symbol "vertical line segment"~ The loop P-A-B-C-D-E-F-G-H-P in Figure 2 has now been completed. After writing the symbol, the symbol generator 3 places the marker at the proper exit point for the current write direction (i.e. the lower end of the line segment).
The operator may now continue in this way to generate the complete image, symbol by symbol. For each new symbol, the operator may either continue in the same write direction or select a new write direction. Similarly, he may choose between either continuing in immediate connection to the preceding symbol (as described with reference to Figure 3f) or by dis-placing the marker to a new position spaced from the last written symbol.
The input member lA or lB delivers, among other things, symbol codes to the symbol generator 3, which symbol codes identify the symbol to be written. In the symbol memory 4, information is stored about the appearance of each symbol and about its entry and exit points for different write directions.
Figure 4 shows an example of how the symbol memory 4 may be organized. The memory 4 consists of two parts, one part being an address transformation area (ATA) and the other part a symbol description area (SDA). The address transformation area is a cross-reference table between the incoming symbol code and the symbol description area. The address ADR to a mem-ory cell in the address transformation area ATA may be described as i'74(~
ADR = BASADR + SC
where BASADR is a base address, for example to the flrst cell of the address transformation area. An incoming symbol code SC thus gives the address to a memory cell in the address transformation area. In this cell there is stored an address pointer AP which cons~itutes the address to the first word or field in that part of the symbol descrip~ion area which contains the description SD of the symbol in question.
Figures 5_ to 5d show further examples of the information about a symbol that may be stored in the symbol description area SDA.
A symbol is constructed from modules with a number of fundamentally arbitrary rows and columns in each symbol.
The number of columns may be different for different rows in the symbol.
A module consists of m x n image elements, where m and n are arbitrary constants. In this example and in the following examples, m-n=~, that is,each module consists of nine image elements.
Each row of modules in the symbol may start in an arbit-rary module column in relation to the preceding module row.
The rows need not be given in any special order in the memory, which means that, for example, empty rows may be omitted.
Figure 5_ shows a module which consists of nine image elements~ numbered frorn 1 to 9.
Figures 5b, 5c and 5d show the formats of the fields occurring in the symbol description area SDA of the memory 4.
Three different kinds of fields may occur.
- The first type of field (see Figure 5b) described the form and location of a module within the symbol. The first o bit (a) in the field - a zero - indicates that the field is of this kind. The next two bits (b) are the so-called "link bits", which have the following significance:
where the "link bits'! are "00" the row continues with at least one further module, where the "link bits" are "01" this module is the last module on the row, where the "link bits" are "10" a displacement is necessary where the "link bits" are "11" this module is the last module in the symbol.
The following four bits (c) correspond to the four poss-ible write directions in the example. A "1" in any of these bits indicates that that module is the entry point for the complete symbol when the write direction is that corres-ponding to the bit. In the example chosen this also means thatthe module i8 the exit point for the complete symbol when using the opposite write direction.
Each one of the last nine bits (d) indlcates whether the corresponding image elements (cf. Figure 5a~ of the module are to be written or not.
If the "link bits! in a symbol format field according to Figure 5b are"10", a displacement field is stored in the memory immediately after this symbol format field, and such a displacement field is shown in Figure 5c. In such a displace-ment field ~x indicates in what column the next module of thesymbol is to be located relative to the current column, and ~y indicates in what row the symbol continues relative to the current row (see the further examples in Figures 6-8).
The third kind of field is shown in Figure 5d and indi-cates a jump in the memory. The first bit (e) indicates that ~9f~74(~
the field is of this kind, and the other bits (f) contain the relative address to the field in the memory where the next module of the symbol is stored. The address - BASADR + (f) (see Figure 4).
Figures 6a and 6b show, as an example, how the letter "A"
may be stored in the symbol memory. Figure 6a shows how-the letter consists of four, nine element modules ml-m4. Figure 6b shows the four fields in the symbol description area of the symbol mernory. The first field is designated the defin-ition field of the symbol and it is the address of this field that is obtained from the address transformation area of the symbol memory. The corresponding module (ml) is designated the definition module of the symbol. This field contains firstly (cf. Figure 5b) the dot pattern of the definition module. Secondly it indicates that the module constitutes the entry point for either of the write directions in the upward direction or the rightward direction (and the exit point for either of the two opposite write directions). Thirdly the "link bits" "00" indicate that the next module (m2) is on the same row as the module ml. The next field, which is in the following address, is the entry point for the symbol if the write direction is to the le~t (and the exit point of the sym-bol if the write direction is to the right). The "link bits"
"01" in module m2 indicate that the module row is finished when this module has been written. The module (m3) in the next field in the memory will thus be located in the next-above module row and directly above the module ml. The fourth and last field includes the "link bits" "11" which indicate that this module (m4) is the last one to be written to complete the symbol.
Figures 7a and 7b show how an angle symbol,which does not have a rectangular limiting boundary, ~n be written. Figure 7a shows that the angle symbol consists of three modules (ml, m2, m3). Figure 7b shows the four fields, belonging to the angle symbol, in the symbol description area of the symbol memory. The s~cond field has the "link b;ts" "10", 74(~
which indicates that the following field is a displacement field. The displacement (cf. Figure 5c) is Ax="0" and ~y ~ '. The displacement is always counted relative to the last module (m2) and is positive for the rightward or downward direction. The last module (m3) will thus be written in the same column as the module m2, but displaced one module interval upwards, that is, on the row above it.
Figure 8a shows a lower-case letter (a "y") which extends below the base line (shown dashed in Figure 8a) on which the letters are being written. After the first four fields in the symbol memory there follows a displacement field (see Figure 8b) which indicates that the next module (m5) is to be written displaced one column to the left and two rows downwards relative to the last module ~m4).
In each of the symbols discussed with reference to Figures 6_, 7a and 8a, it will be noted that the fourth,_ fifth, sixth and seventh bits in the fields of each module indicate the entry and exit points available for the complete symbol. Thus taking the symbol "y" of Figure 8a as an example, if the selected write direction is vertically upwards, module m5 must be the entry point and module m3 the exit point.
Where the selected write direction is to the left, module m2 represents the entry point of the symbol and module ml is the exit point.
Further, in accordance with the invention, the exit point of a last-written symbol must be immediately adjacent to an entry point of the next-to-be-written symbol so that, for example if a write direction to the right is selected and the symbol "A" of Figure 6a is to be followed by the symbol "y"
of Figure 8_, module m2 of Figure 6_ will abut module ml of Figure 8a.
In the above-mentioned examples, it has been assumed that there are only four possible write directions and just four bits (the fourth, fifth, sixth and seventh in Figure 5b) have 7~
been allocated in the field for the designatiorl of ;:rite direction. However, the number of write directions may be arbitrary. Figure 9 shows an example of a symbol (only the limiting boundary of which is shown) having entry and exit points for eight different write directions and if this arrange-ment is required, eight bits must be allocated in the field of each module to designate the various entry and exit points.
For example, the point marked 4 in Figure 9 is the entry point for the write direction in an oblique downward-leftward direc-tion and the exit point for the write direction in an obliqueupward-rightward direction.
In the above-described examples, each exit point of a symbol for a certain write direction serves as the entry point for the opposite write direction, and vice versa.
However, in general, this need not be the case.
It has been described above how the information about entry and exit points is directly stored in immediate conjunc-tion with the symbol description (Figures 5b, 5b, 7b and ~b).
Alternatively, the information about the entry and exit points of a symbol for the different write directions may be calculated with the aid of algorithms.
It may be desired to write a certain symbol after it has been rotated by a multiple of, for example, 90 in relation to a basic position. To reduce the demands on the memory it may then be corivenient to store the symbol configuration only once and obtain a rotational transformation of the symbol by moving the entry and exit points.
It has been described above how a VDU is used as a means of presentation. The invention may also be applied in connec-tion with other types of display members, for example a co-ordinate recorder or a typewriter.
The various units in a device according to the invention may consist of conventional electronic components (memory circuits, logic circuits, etc.) which provide the functions ~6740 mentioned above. Alternatively, the functions of the units may wholly or partially (for example, the logic functions of the symbol generator 3) consist of a processor or computer which is programmed, for example, accordirg to the flow diagram Or Figure 2.
As is clear from the above descripticn, according to the invention an image may be generated in a rapid and simple manner by an operator direct from a keyboard. The symbols used may have arbitrary size and sha,e. Large characters of a certain kind (e~g. letters) may be mixed with small ones without the operator having to think about or take the charac ter sizes into consideration. By the sim~le choice of one or a plurality of possible write directions and by placing the symbols automatically in correct relative positions in dependence on the selected write direction, even very compli-cated images, for example complete electric circuit diagrams, may be generated in a rapid and simpie manner.