US3789200A - Circle or arc generator for graphic display - Google Patents

Circle or arc generator for graphic display Download PDF

Info

Publication number
US3789200A
US3789200A US00267800A US3789200DA US3789200A US 3789200 A US3789200 A US 3789200A US 00267800 A US00267800 A US 00267800A US 3789200D A US3789200D A US 3789200DA US 3789200 A US3789200 A US 3789200A
Authority
US
United States
Prior art keywords
chord
defining
circle
mode
bit
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.)
Expired - Lifetime
Application number
US00267800A
Inventor
L Childress
R Gundrum
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of US3789200A publication Critical patent/US3789200A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
    • G09G1/06Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
    • G09G1/08Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam directly tracing characters, the information to be displayed controlling the deflection and the intensity as a function of time in two spatial co-ordinates, e.g. according to a cartesian co-ordinate system
    • G09G1/10Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam directly tracing characters, the information to be displayed controlling the deflection and the intensity as a function of time in two spatial co-ordinates, e.g. according to a cartesian co-ordinate system the deflection signals being produced by essentially digital means, e.g. incrementally

Definitions

  • the problem programmer has only to specify either the starting point Cl 235/198, 3 /3 A of an arc of the center point of a circle, the radius of [51] Int. Cl. G06f 3/14 the arc o circle, and other optional characteristics Field of Search such as whether the circle or are is to be drawn clock- 340/324 A wise or counter clockwise, whether the beam of the I I display is blanked or unblanked, and whether addi- [5 6] References Cited tional instructions for drawing additional arc segments UNITED STATES PATENTS are to be expected or requested by the display. Logic 3,702,922 11/1972 Hall, Jr. et al.
  • 235/151 and timing means are Pmvided for accessing the 3,696,391 /1972 Peronneau 235/198 y in response to these values Specified y the P 3,675,231 7/1972 Bezrodny 340/324 A lem programmer and for generating a desired se- 3,594,756 7/1971 Granberg et al 340/324 A quence of X and Y incremental signals for operating 3,555,538 1/l97l Henderson et al 340/324 A the display, 3,335,416 8/1967 .Hughes 340/324 A 3,199,111 8/1965 Jennings et al.
  • a digital addressed display'of this type is not easily suited for drawing circles and related geometric figures.
  • One familiar technique for drawing circles in a display with a Cartesian coordinate system of trace positioning is to apply a sine voltage to the deflection coils or electrodes of one coordinate and a cosine voltage to the other co ordinate. If the frequencies are the same and the amplitudes are the same, these inputs produce the familiar Lissajous circle pattern. However, in such systems it has been difficult to maintain equal amplitudes so as to maintain the radius equal around the circle. In addition, the use of Lissajous patterns requires an oscillator which may not be required for any other function in the display.
  • a general object of this invention is to provide a new and improved system that produces circles or related figures in response to. digital inputs of the type otherwise used in the display.
  • problem programmers have written instructions for moving the trace in a series of short increments to form a sequence of connected chords that closely approximate a circle.
  • Such a program might include a table of deflection values as calculated by the problem programmer himself or it might contain a set of instructions for generating these values and another set of instructions for putting the values into a form suitable for controlling the display.
  • This procedure is undesirably complex for the problem programmer and it requires significant amount of main storage space in the data processing system for storing the tables and the related instructions.
  • One object of this invention is to relieve the problem programmer of the jobof making up the table.
  • the problem programmer has only to specify the radius of the circle, the center point of the circle, and several optional parameters that make the system more useful.
  • the system of this invention is provided with a storage device that holds a table of trigonometric functions from which a series of chords forming an approximate circle can be generated as a function of the parameters supplied by the problem programmer.
  • Logic and timing circuits are provided for combining the information produced by the problem programmer with the information in the memory to produce electrical signals for controlling the display to producing a corresponding circle.
  • the circuit of this invention is useful for drawing segments of arcs, for drawing circles or segments of arcs of dashed lines, and other geometric figures.
  • This point is treated as the center of the circle in an operation that will be called circle mode and it is treated as the starting point for an are (or a circle) in an operation that will be called arc mode. Otherwise unused bit positions in the data bytes containing the X and Y address are used to identify that the display is to begin a circle mode or an arc mode operation.
  • the problem programmer also arranges to transmit next a byte containing the desired radius and another byte containing the number of the chord that the system is to draw before asking for additional control information or discontinuing the circle mode or arc mode operation.
  • the circuit of this invention accesses the memory for the trigonometric functions for the first chord, multiples the functions by the designated radius to produce AX and AY values, and transmits the incrementing signals to the display for drawing one chord of the arc.
  • the system continues drawing chords from point to point until it reaches the end point defined by the programmer.
  • One of the control bits identifies whether the circle mode or are mode operation is to continue after the end point. If the operation is to continue, the circuit signals the channel that it is ready to accept two more bytes of the type already described for drawing a further arc.
  • the system is also adapted to receive an additional two bytes that specify two successive end points for two sequences of chords, one of which is blanked and the other of which is unblanked. With this feature, the system easily provides dashed line circles or arcs.
  • FIG. 11 is a geometric figure illustrating the method for generating arcs that is used by the system of this invention.
  • FIG. 2 shows schematically a memory and the table of values for generating arcs.
  • FIG. 3 is a block diagram of a circuit for decoding data bytes transmitted to the system of this invention in response to a problem program.
  • FIG. 4 shows a block diagram of the preferred system of this invention.
  • FIG. 1 illustrates the operation of generating a circle as a series of 24 chords.
  • a point 12 is the center of the circle and it is defined by conventional addressing as will be described later.
  • the blanked beam is then moved horizontally to the right by the number of raster units that is specified for the radius by the problem programmer as shown by a line 13 and a point 14. (This direction is arbitrary but it follows a standard convention in designating angular positions in coordinates.)
  • a second radius 16 and a point 17 show the 15 angle of the next radius. As the beam is moved from point 114 to point 17, it traces (unless it is blanked) a first chord 18.
  • a radius line 20 and a third point 21 illustrate another 15 increment for which the beam forms a second chord 22.
  • the operation illustrated by FIG. 1 continues around the circle with particular chords or sequences of chords blanked or unblanked; and the operation may proceed through 24 chords for a complete circle or it may be ended at a point chosen by the problem programmer.
  • AX and AY increments for any chord of the circle is illustrated by the AX and AY increments for moving from point 17 to point 21.
  • the I5 angle to the first radius line is from the reference line 13 for this example but will be designated B for generality.
  • the second angle which is in fact 30 from the reference line 13 will be designated angle A.
  • AX R cos A R cos B which can be rewritten R (cos A cos B). Since cos 15 is larger than cos 30, the term is negative as is appropriate since the trace is moved horizontally to the left in the example.
  • the signs of the trigonometric function of course produce the proper deflection in each quadrant of the circle.
  • the trace is moved upward from point 17 to point 21 according to the function R (sin A sin B).
  • the advantages of dividing a circle into 15 segments are well known in various situations.
  • the system can produce commonly used fractions of a circle such as a half circle, a quarter circle, and so on.
  • the chord subtended by a 15 angle is very close to the actual circumference of the circle and the small difference is not seriously noticeable in a display.
  • the concepts of this invention can be easily extended to providing chords with larger or smaller angles, but smaller angles require additional memory capacity for the table and they provide no significant improvement in ordinary applications; larger angles make the figure noticeably non-circular and limit the number of useful arcs that can be drawn.
  • the three points l4, l7 and 21 are arbitrary positions with respect to point 12 and consequently any desired figure of a reasonable number of segments may be drawn.
  • the radius can be thought of as a scaling factor for such figures.
  • FIG. 2 shows a table of the sin and cos functions explained in FIG. 1 for generating an arc of a circle.
  • the columns cos A cos B and sin A sin B have already been explained.
  • Displays are commonly constructed to respond to an unsigned address and to a sign bit that controls the addition or subtraction of an incremental address.
  • the functions and values that are stored in the memory are stored in 7 bit binary form, but for convenience, the corresponding decimal numbers are written in the table of FIG. 2.
  • the common denominator 128 is used for each fraction; only the numerator of a fraction is shown.
  • FIG. 4 shows such a memory in relation to other components of the system. Such circuits respond to a multi-bit input called an address to produce the data previously stored at the address.
  • a column has been drawn with the addresses I through 24 for the 24 segment generating functions of the table.
  • These addresses in an associatively addressed memory would represent the contents of actual data storage locations, but for more conventional storagedevices, the corresponding logic is contained in an address decoder circuit (30 in FIG. 4) that selects the desired word of the memory from an address supplied on an address bus.
  • the table can be stored in circuits known by such names as decoders and translators.
  • the operation of stepping through the sequence of words in the table as corresponding are generating operations take place in the display can be provided in various known ways. For example, a 24 bit ring can be stepped to successively address each word in sequence.
  • the drawing illustrates the technique common with read only memories of storing the next address with the word that is being read out. The corresponding field in the data register in the memory is then used to access the next word.
  • the actual signals for advancing to the next operation are provided by the signal that the display itself produces as a normal operation to signal that is is ready to accept a next address.
  • the table may include a 0 address term for generating the first increment shown in FIG. 1 as line 13 in which AX R, AY O.
  • the problem programmer provides instructions to the system of this invention in a format that corresponds to the requirements of a particular display.
  • the format and the decoding circuits shown in FIG. 3 are particularly adapted to operate with a commercially available display called the 2,250 and described in a publication entitled IBM System/360 Component Description; IBM 2250 Display Unit," Cat. No. A27270l A272702 and A272721, available from the assignee of this invention.
  • a channel or other apparatus transmits data to the display as a byte of 8 bits and the byte is stored in a register or buffer memory 34.
  • the channel transmits four bytes (32 bits) that contain a 10 bit X address, a 10 bit Y address, and 12 bit positions that are available for various control purposes.
  • the display responds to the X and Y addresses in these bytes to move the trace to a selected point on the face of the display; when the system is in circle mode this point corresponds to point 12 in FIG. 1, the center of the circle to be drawn.
  • the display includes means for recognizing particular bit positions and byte positions in such a group of bytes.
  • a l in bit position 2 of the third byte signals that the circuit of this invention is to operate in circle mode.
  • a l in bit position 2 of the fourth byte of the address group identifies that the circuit of this invention is to operate in arc mode.
  • a latch 35 has its set input connected to an AND gate 36 to receive bit position 2 of the date register and a latch 37 is connected to an AND gate 38 to similarly receive the same bit position.
  • An input 40 provided by the display to identify the third byte, enables gate 36 to set the latch circle in response to the circle mode bit and an input 41 enables gate 38 to similarly respond to the arc mode bit.
  • the problem programmer provides two more bytes that the data processing system transmits to the display in response to a request made by the display as the normal result of completing the preceding operation and the fact that the system is in circle mode or arc mode.
  • the bytes are identified by'signals CONTROL CY'TE I and CONTROL BYTE 2, and this group of two bytes is identified by a signal GROUP 1.
  • Bit position in these bytes identifies whether the operation is to continue beyond the arc segment. This bit would always contain a 0 if the programmer intends to draw a complete circle in one operation, and it will also contain a 0 if the programmer intends to draw only a single segment of an arc and then go-to some other operation.
  • a program can keep the trace blanked for the first arc to move the trace to a particular position on the circumference of the circle and the program can then transmit another are defining a group of bytes to draw a visable arc from that point.
  • the programmer could draw a circle defined by one control word and then draw a further fraction of a circle to position the trace at any particular point on the circumference for beginning some other graphic operation.
  • Bits 1 through 7 of the first of these two bytes define a seven bit radius and this portion of the input data register is transferred to a separate register to to be used for generating the X and Y increments.
  • the gating is similar to the gates described for the latches CON- TINUE except that the block with the legend G represents an individual AND gate for each bit of the radius word.
  • the second of these two bytes contains in bit position 3 through 7 a bit number called END defining the last segment to be drawn and, equivalently, the last word to be fetched from the memory.
  • Logic shown in the drawing loads the word END into a 5 bit register.
  • Logic means similar to the logic for latches CONTINUE provides for simultaneously storing two such END words and for shifting from one to the'other.
  • Bit position 2 defines the negative (clockwise) or positive (counter clockwise) rotation for the arc.
  • Bit position 1 defines whether the beam is blanked or unblanked.
  • the display has responded in its normal fashion to the address and has moved the trace to this position.
  • the radius number has been loaded into register RADIUS and the number of the end point has been loaded into register END.
  • the latches CONTINUE, ROTATION, and BEAM have been set or left reset according to the corresponding bit positions of the two control words.
  • the system is now ready to generate the arc defined by these registers and latches without further control from the channel.
  • the operation just described can also be considered from the standpoint of the program that is supplied by a problem programmer. To draw a circle of a selected radius, the programmer supplies only 6 bytes to register 34 of FIG. 3.
  • Bytes l through'4 contain in conventional format the address of the center of the circle, and bit 2 of byte 3 contains a l to signify that a circle is to be drawn.
  • the system responds to these 4 bytes by moving the trace of the display to the specified address and by setting latch 35 in FIG. 3.
  • Byte 5 contains the radius length in byte positions I through 7. Bit position 0 is insignificant and may be either a l or a 0.
  • Byte 6 has a 0 in bit position 0 to signify that there are no more control bytes in this circle drawing operation. Bit position 1 contains a 0 to signify that the beam is not to be blanked.
  • Bit position 2 contains a I to signify that the circle is to be drawn counter clockwise, and bit positions 3 through 7 contain the number 24 to signify that the system is to draw the 24 chords of a complete circle. The system then operates without further intervention by the problem programmer. If bit 2 of byte 3 had contained a 0 and bit 2 of byte 4 had contained a l, the system would have operated in arc mode to draw the same circle except that the first chord would start from the point addressed in bytes 1 through 4. In the more usual arc mode operation, bit positions 3 through 7 of byte 6 would specify only a fraction of the 24 chords for the full circle of this example.
  • the System of FIG. 4 Circle Mode The components and operations of the system of FIG. 4 can be understood most easily by considering that the only significant changes to the display are shown in the drawing and that in circle mode or are mode the display communicates with the system of this invention in the same way that it would otherwise communicate with the channel or other data source.
  • the display produces a signal REQUEST-on a line to signal the end of a preceding operation and to request control bytes from the channel for a next operation.
  • gates 51, 52 transmit the request directly to the channel except when the system is to receive its deflection signals from the memory.
  • the channel normally transmits control bytes to a display decode circuit that produces the ad dress and control signals that are shown in the drawing.
  • the outputs of the display decode circuit are inactive and some of the signals are produced by the system of FIG. 4.
  • the display decode circuit receives the signal CONTINUE which disables the decode circuit until the last byte group for a circle or arc mode operation has been received. This signal may also be used to permit operations by the display decode circuit and the channel that are independent of the circle or are mode operation.
  • a gate 55 responds to the signals CIRCLE MODE and the signal GROUP ll identifying the presence of the first control byte in the data register for transmitting the multi-bit word RADIUS to the X address input of the display.
  • the display moves the trace to the right by the distance defined by the word RADIUS and it transmits a signal REQUEST.
  • a gate 56 responds to the signal REQUEST, a signal NOT COMPARE that signifies that the system has not yet completed the series of chords defined by the current control bytes, and to a signal described later, to
  • the system of FIG. 4 includes a digital miltiplier 55 that receives the signal RADIUS from the circuit of FIG. 3 and the appropriate function field from the memory data register and produces outputs that are applied to the AX and AY inputs of the display.
  • the AX and AY increments are generated separately in a sequence defined by timing signals X TIME and Y TIME.
  • Gates 57 and 59 respond to the signal X TIME to transmit the contents of the cosine function field of the memory data register to multiplier 55 and to transmit the product produced by multiplier 55 to the display.
  • gates 58 and 60 transmit the contents of the sine function field of the memory data register to multiplier 55 and transmit the output of the multiplier to the display.
  • Many suitable digital multipliers are well known.
  • the contents of the selected function field of the memory data register are shifted once for each bit position of the multi-bit word RADIUS and the shifted fields are accumulated where a 1 appears in the corresponding bit position of the word RADIUS.
  • the display responds to the signals from multiplier 55 in the same way that it would otherwise respond to signals from the channel and it again produces the signal REQUEST at the end of the operation to produce the chord defined by the multiplier output.
  • the operation just described continues from chord to chord until the chord defined by the problem programmer in the word END is reached.
  • a compare circuit 62 compares the current address field of the memory data register with the word END and produces NOT COMPARE, introduced as an input to gate 53, and COMPARE. When the operation has reached the end chord, the function NOT COMPARE O disables gate 56 to prevent the memory from responding to the next request.
  • the signal COMPARE operates in gates 51 and 52 to transmit the request to the channel.
  • a channel may transmit two additional control bytes for drawing another are or it may go to another routine.
  • the last control byte in an arc, drawing operation is identified by the CONTINUE bit in the first control byte and an AND gate 65 responds to the signals COMPARE and NOT CON- TINUE to reset the next address field of the memory data register to address position
  • the System of FIG. 4 GROUP 2 Control Bytes The decode circuit of FIG. 3 is arranged to handle an alternate control byte format that is particularly useful for programming a dashed line circle or other figures in which the system is to continue an operation in the same mode and with the same radius but with some of the other control bits changed.
  • a two byte group identified by a signal GROUP, 2 has the format of control byte 2 of group 1 and this provides two successive end points.
  • a logic network 67,68,69 routes the resulting COM- PARE signal to shift the circuits of FIG. 3 and to enable gate 56 to respond to the associated REQUEST for fetching the next deflection word from the memory.
  • the operation reaches the point defined by the second word END, the resulting compare is routed to circuit 51 for transmitting signal REQUEST to the channel in the way already described.
  • the System of FIG. 4 Arc Mode
  • the components of the system that have been described so far can be used for drawing various noncircular configurations by appropriate arrangement of the control bytes. It is often useful to draw an are from a predetermined point, and the system of FIG. 4 includes components that substantially simplify programmimg such an operation.
  • the latch ARC MODE is set in response to a l in bit position 2 of address byte 4.
  • the signals ARC MODE and CIRCLE MODE are combined in an OR logic function so that many of the operations described for circle mode are performed also for are mode.
  • Gate 55 opens only in response to the signal CIRCLE MODE and consequently the trace is not offset by the radius value as it is in circle mode.
  • the system can provide functions starting at any selected point in the table so that a chord of any available angle can be formed from the previously addressed point on the display face.
  • Logic means is provided for loading the next address field of the memory data register from the END field of control byte 2 of group 1. A group 2 byte is then transmitted with two END words as in the operation on group 2 bytes in circle mode.
  • the preferred embodiment of the invention can be operated to provide a wide variety of geometric figures that are made up from chords defined in the memory and parameters defined by the problem program.
  • the system can be readily adapted to other types of graphic devices having a Cartesian coordinate addressing system and it can be adapted to apparatus having various specific control word formats.
  • the logic and timing functions of FIGS. 3 and 4 can be provided in many well known ways and a specific embodiment will be suggested in part by the organization at least in part of chords of a circle, comprising;
  • means for decoding data bytes supplied by a problem program including first means for decoding a byte defining an operating mode in which the system is to produce one of said figures,
  • said decoding means including second means responsive to a set of control bits supplied by a problem program defining an end chord, and means for comparing said position of an accessed chord and said signal defining said end chord for signalling the completion of the end chord to said means for accessing said table storing means,
  • said means for decoding data bytes comprises third means for storing a radius length word supplied by said problem program, and
  • said means for forming chord defining signals includes a multiplier for multiplying the radius length by a function accessed in said table to produce said chord defining signals, whereby circles or related figures of preselected radius may be formed by said device in response to control bits supplied by said problem program defining said end, said radius, and said operating mode.
  • said first means for decoding bytes produced by a problem program includes means to decode and store a first bit defining a circle mode or a second bit defining an arc mode operation called for by said problem program, and
  • said means to form said chord defining signals includes means operable in said circle mode before forming said first chord to control said device to move its trace in a predetermined direction by said radius length,
  • decoding means includes means operable in arc mode for storing control bits defining a selected starting address in said table storing means, and
  • said means for accessing said table storing means includes means to begin an accessing sequence at a predetermined position in said circle mode and at said selected starting address in are mode.
  • said means for decoding includes fourth means for controlling said device according to a control bit position in a byte supill) plied by a problem program defining a blanked or unblanked condition for said device, whereby the trace may be moved to a position defined by a sequence of chords without visible representation in the device.
  • said second means for decoding includes means operable in response to a first group of control bytes to store said end value and includes means differently responsive to a second group of control bytes to store first and second end values, and
  • said means for signalling the completion of an end chord includes means repsonsive to the completion of a chord succession defined by a first end value to begin an operation defined by the second end value and responsive to the completion of said chord defined by said second end value to produce a request to the problem program source for a next message.
  • said first means for decoding bytes produced by said problem program includes means responsive to predetermined bit positions in the message format for other device operations,
  • said decoding means is operable only when said system is in said mode
  • said decoding means includes fifth means responsive to a bit defining whether the operation is to continue with further such control bytes after an end chord forming operation, and
  • chord forming means includes means responsive to said continue bit to selectively reset or maintain the accessing position for said table storing means at the completion of an end chord forming operatron.

Abstract

The operations in a data processing system for drawing circles or other geometric figures on a display which are conventionally defined by a series of instructions prepared by a problem programmer are included in a standardized form in a small memory that is made part of the display unit. The problem programmer has only to specify either the starting point of an arc of the center point of a circle, the radius of the arc or circle, and other optional characteristics such as whether the circle or arc is to be drawn clockwise or counter clockwise, whether the beam of the display is blanked or unblanked, and whether additional instructions for drawing additional arc segments are to be expected or requested by the display. Logic and timing means are provided for accessing the memory in response to these values specified by the problem programmer and for generating a desired sequence of X and Y incremental signals for operating the display.

Description

United States Patent i 1111 Childress et al. Jan. 29, 1974 CIRCLE OR ARC GENERATOR FOR GRAPHIC DISPLAY Primary Examiner-Felix D. Gruber [75] Inventors: Lorenza S. Childress, Salisbury Attorney Agent or Funk-W Robertson Mills; Ralph J. Gundrum, Rhineback, both of NY. 1 ABS CT [73] Assignee: International Business Machine e operations in a data processing system for drawing circles or other geometric figures on a display Corporation Armonk NY which are conventionally defined by a series of in Filed! J 1972 structions prepared by a problem programmer are included in a standardized form in a small memory that [21] Appl' 267,800 is made part of the display unit. The problem programmer has only to specify either the starting point Cl 235/198, 3 /3 A of an arc of the center point of a circle, the radius of [51] Int. Cl. G06f 3/14 the arc o circle, and other optional characteristics Field of Search such as whether the circle or are is to be drawn clock- 340/324 A wise or counter clockwise, whether the beam of the I I display is blanked or unblanked, and whether addi- [5 6] References Cited tional instructions for drawing additional arc segments UNITED STATES PATENTS are to be expected or requested by the display. Logic 3,702,922 11/1972 Hall, Jr. et al. 235/151 and timing means are Pmvided for accessing the 3,696,391 /1972 Peronneau 235/198 y in response to these values Specified y the P 3,675,231 7/1972 Bezrodny 340/324 A lem programmer and for generating a desired se- 3,594,756 7/1971 Granberg et al 340/324 A quence of X and Y incremental signals for operating 3,555,538 1/l97l Henderson et al 340/324 A the display, 3,335,416 8/1967 .Hughes 340/324 A 3,199,111 8/1965 Jennings et al. 235/151 x 8 Claims, 4 Drawing Figures REQUEST CHANNEL CHANNEL I 67 I M GROUP1 56 g REQUEST GROUPZ REQUEST MEM N01 COMPARE 0 IL NM COMPARh G MEMORY NEXT c X I Y [N 4- NOT ARC MODE 0R ADDRE5S COMPARE -SHIFT C//CIRCLE MODE Y TIME 60 x TIME 6 1 fit; ARC MODE 59 GROUPl 9 END 0 RADIUS 57 MULTIPLY BLANK- NOT CONTINUE j RESET ROTATION *3 1 END 62 v COMPARE n CIRCLE MODE GROUP 2 YADDRESS) GROUP1 G 55 XADDRESS CONTINUE AX CIRCLE MODE i Y l DISPLAY T DEGODE PAIENTED 1112s 1974 until 1 IF 3 FIGJ RCOSB FIG.2
NEXT CHORD SIN A-SIN B 608 A-COS B CHORD PATENTED v 3.789.200
' 56 ADDRESS BYTE 5 CIRCLE 40 & 4
COMPARE,NOT 0 55 OONTYNOE ARC ADDRESS BYTE 4 & 4
. CONTROL BYTE Y & CONTINUE CONTROL BYTE 2 '& B l
N O SHYFT B BYTE GROUP Y OONTROL BYTE T G BIT POSITIONS Y-T O O T I I RADIUS CONTROL BYTE Y & I ROTATION l CONTROL BYTE 2 & & l
N N O SHIFT &
. & A BEAM 1- & & T l
N N O SHIFT &
BIT POSITIONS 5-7 GROUP 4, CONTROL BYTE 2 0R GROUP 2 G CONTROL BYTE Y GROUP 2, CONTROL BYTE 2 G CIRCLE OR ARC GENERATOR FOR GRAPHIC DISPLAY INTRODUCTION Many displays operate as a Cartesian coordinate system and position a viewable trace on a display face in response to electrical signals that represent either an X-Y address to which the trace is to be moved or represent incremental changes from an existing position in the X and Y coordinate system. In the display for which a preferred embodiment of this invention has been developed, the X and Y coordinates are each divided into 1024 increments called raster units and each coordinate is addressable by a 10 bit binary addrsss. Thus, a digital addressed display'of this type is not easily suited for drawing circles and related geometric figures. One familiar technique for drawing circles in a display with a Cartesian coordinate system of trace positioning is to apply a sine voltage to the deflection coils or electrodes of one coordinate and a cosine voltage to the other co ordinate. If the frequencies are the same and the amplitudes are the same, these inputs produce the familiar Lissajous circle pattern. However, in such systems it has been difficult to maintain equal amplitudes so as to maintain the radius equal around the circle. In addition, the use of Lissajous patterns requires an oscillator which may not be required for any other function in the display. A general object of this invention is to provide a new and improved system that produces circles or related figures in response to. digital inputs of the type otherwise used in the display.
Alternatively in the prior art, problem programmers have written instructions for moving the trace in a series of short increments to form a sequence of connected chords that closely approximate a circle. Such a program might include a table of deflection values as calculated by the problem programmer himself or it might contain a set of instructions for generating these values and another set of instructions for putting the values into a form suitable for controlling the display. This procedure is undesirably complex for the problem programmer and it requires significant amount of main storage space in the data processing system for storing the tables and the related instructions.
SUMMARY OF THE INVENTION One object of this invention is to relieve the problem programmer of the jobof making up the table. The problem programmer has only to specify the radius of the circle, the center point of the circle, and several optional parameters that make the system more useful. The system of this invention is provided with a storage device that holds a table of trigonometric functions from which a series of chords forming an approximate circle can be generated as a function of the parameters supplied by the problem programmer.
Logic and timing circuits are provided for combining the information produced by the problem programmer with the information in the memory to produce electrical signals for controlling the display to producing a corresponding circle. With additional features, the circuit of this invention is useful for drawing segments of arcs, for drawing circles or segments of arcs of dashed lines, and other geometric figures.
More specifically, the problem programmerinitially transmits to the display a starting X address and a starting Y address, and the display moves the trace to the designated point in its normal mode of operation. This point is treated as the center of the circle in an operation that will be called circle mode and it is treated as the starting point for an are (or a circle) in an operation that will be called arc mode. Otherwise unused bit positions in the data bytes containing the X and Y address are used to identify that the display is to begin a circle mode or an arc mode operation. The problem programmer also arranges to transmit next a byte containing the desired radius and another byte containing the number of the chord that the system is to draw before asking for additional control information or discontinuing the circle mode or arc mode operation. In response to these inputs, the circuit of this invention accesses the memory for the trigonometric functions for the first chord, multiples the functions by the designated radius to produce AX and AY values, and transmits the incrementing signals to the display for drawing one chord of the arc. The system continues drawing chords from point to point until it reaches the end point defined by the programmer.
One of the control bits identifies whether the circle mode or are mode operation is to continue after the end point. If the operation is to continue, the circuit signals the channel that it is ready to accept two more bytes of the type already described for drawing a further arc.
The system is also adapted to receive an additional two bytes that specify two successive end points for two sequences of chords, one of which is blanked and the other of which is unblanked. With this feature, the system easily provides dashed line circles or arcs.
The specific embodiment of the invention is readily adaptable to various displays and to producing a variety of geometric figures.
THE DRAWINGS FIG. 11 is a geometric figure illustrating the method for generating arcs that is used by the system of this invention.
FIG. 2 shows schematically a memory and the table of values for generating arcs.
FIG. 3 is a block diagram of a circuit for decoding data bytes transmitted to the system of this invention in response to a problem program.
FIG. 4 shows a block diagram of the preferred system of this invention.
THE EMBODIMENT OF THE DRAWING Arc Generation FIG. 1 illustrates the operation of generating a circle as a series of 24 chords. A point 12 is the center of the circle and it is defined by conventional addressing as will be described later. The blanked beam is then moved horizontally to the right by the number of raster units that is specified for the radius by the problem programmer as shown by a line 13 and a point 14. (This direction is arbitrary but it follows a standard convention in designating angular positions in coordinates.) A second radius 16 and a point 17 show the 15 angle of the next radius. As the beam is moved from point 114 to point 17, it traces (unless it is blanked) a first chord 18. Similarly, a radius line 20 and a third point 21 illustrate another 15 increment for which the beam forms a second chord 22. The operation illustrated by FIG. 1 continues around the circle with particular chords or sequences of chords blanked or unblanked; and the operation may proceed through 24 chords for a complete circle or it may be ended at a point chosen by the problem programmer.
The calculation of the AX and AY increments for any chord of the circle is illustrated by the AX and AY increments for moving from point 17 to point 21. The I5 angle to the first radius line is from the reference line 13 for this example but will be designated B for generality. Similarly, the second angle which is in fact 30 from the reference line 13 will be designated angle A. It can be seen that AX R cos A R cos B, which can be rewritten R (cos A cos B). Since cos 15 is larger than cos 30, the term is negative as is appropriate since the trace is moved horizontally to the left in the example. The signs of the trigonometric function of course produce the proper deflection in each quadrant of the circle. Similarly, the trace is moved upward from point 17 to point 21 according to the function R (sin A sin B).
The advantages of dividing a circle into 15 segments are well known in various situations. For example, the system can produce commonly used fractions of a circle such as a half circle, a quarter circle, and so on. In addition, the chord subtended by a 15 angle is very close to the actual circumference of the circle and the small difference is not seriously noticeable in a display. The concepts of this invention can be easily extended to providing chords with larger or smaller angles, but smaller angles require additional memory capacity for the table and they provide no significant improvement in ordinary applications; larger angles make the figure noticeably non-circular and limit the number of useful arcs that can be drawn.
From a more general standpoint, the three points l4, l7 and 21 are arbitrary positions with respect to point 12 and consequently any desired figure of a reasonable number of segments may be drawn. Thus, the radius can be thought of as a scaling factor for such figures.
The Stored Table of FIG. 2 FIG. 2 shows a table of the sin and cos functions explained in FIG. 1 for generating an arc of a circle. The columns cos A cos B and sin A sin B have already been explained. There is also a column for the sign of the function. Displays are commonly constructed to respond to an unsigned address and to a sign bit that controls the addition or subtraction of an incremental address. The functions and values that are stored in the memory are stored in 7 bit binary form, but for convenience, the corresponding decimal numbers are written in the table of FIG. 2. To make the terms more directly convertable to binary form, the common denominator 128 is used for each fraction; only the numerator of a fraction is shown. (The usual decimal representation of binary places to the right of a decimal point as one-half, one-fourth, one-eighth can be equivalently represented as 64/128, 32/128, 16/128 l/l28. Thus, a decimal term of the table such as 33 can be easily represented as 0l0000l corresponding in decimal notation to 32/128 l/128. Note that the numbers in the tables also equal the AX or AY increments for a radius of 128 units.)
Circuits for holding the tables of FIG. 2 are well known in various forms and are commonly called control memories" or read only memories." FIG. 4 shows such a memory in relation to other components of the system. Such circuits respond to a multi-bit input called an address to produce the data previously stored at the address. In the table of FIG. 2, a column has been drawn with the addresses I through 24 for the 24 segment generating functions of the table. These addresses in an associatively addressed memory would represent the contents of actual data storage locations, but for more conventional storagedevices, the corresponding logic is contained in an address decoder circuit (30 in FIG. 4) that selects the desired word of the memory from an address supplied on an address bus. Thus, in the sense that the storage device responds to predetermined input data (an address) and produces related output date (the addressed memory word), the table can be stored in circuits known by such names as decoders and translators.
The operation of stepping through the sequence of words in the table as corresponding are generating operations take place in the display can be provided in various known ways. For example, a 24 bit ring can be stepped to successively address each word in sequence. The drawing illustrates the technique common with read only memories of storing the next address with the word that is being read out. The corresponding field in the data register in the memory is then used to access the next word. The actual signals for advancing to the next operation are provided by the signal that the display itself produces as a normal operation to signal that is is ready to accept a next address. As a modification to the table of the drawing, the table may include a 0 address term for generating the first increment shown in FIG. 1 as line 13 in which AX R, AY O.
The Data Format And The Decode Circuit of FIG. 3 The problem programmer provides instructions to the system of this invention in a format that corresponds to the requirements of a particular display. The format and the decoding circuits shown in FIG. 3 are particularly adapted to operate with a commercially available display called the 2,250 and described in a publication entitled IBM System/360 Component Description; IBM 2250 Display Unit," Cat. No. A27270l A272702 and A272721, available from the assignee of this invention.
In such a system, a channel or other apparatus transmits data to the display as a byte of 8 bits and the byte is stored in a register or buffer memory 34. For positioning the trace at a selected point on the display face, the channel transmits four bytes (32 bits) that contain a 10 bit X address, a 10 bit Y address, and 12 bit positions that are available for various control purposes. In the normal operation, the display responds to the X and Y addresses in these bytes to move the trace to a selected point on the face of the display; when the system is in circle mode this point corresponds to point 12 in FIG. 1, the center of the circle to be drawn. For its normal operations, the display includes means for recognizing particular bit positions and byte positions in such a group of bytes.
In the preferred embodiment of this invention, a l in bit position 2 of the third byte signals that the circuit of this invention is to operate in circle mode. Similarly, a l in bit position 2 of the fourth byte of the address group identifies that the circuit of this invention is to operate in arc mode. For decoding these conditions, a latch 35 has its set input connected to an AND gate 36 to receive bit position 2 of the date register and a latch 37 is connected to an AND gate 38 to similarly receive the same bit position. An input 40, provided by the display to identify the third byte, enables gate 36 to set the latch circle in response to the circle mode bit and an input 41 enables gate 38 to similarly respond to the arc mode bit.
The problem programmer provides two more bytes that the data processing system transmits to the display in response to a request made by the display as the normal result of completing the preceding operation and the fact that the system is in circle mode or arc mode. The bytes are identified by'signals CONTROL CY'TE I and CONTROL BYTE 2, and this group of two bytes is identified by a signal GROUP 1. Bit position in these bytes identifies whether the operation is to continue beyond the arc segment. This bit would always contain a 0 if the programmer intends to draw a complete circle in one operation, and it will also contain a 0 if the programmer intends to draw only a single segment of an arc and then go-to some other operation. If a l is held in this bit position of byte 1, a latch 40 is set and if a l is held in this bit position of byte 2, a latch 41 is set. Logic is provided for shifting the contents of latch 41 to latch 40 for a variation of the simple circle mode operation, as will be described later. In one useful application of the continue bit, a program can keep the trace blanked for the first arc to move the trace to a particular position on the circumference of the circle and the program can then transmit another are defining a group of bytes to draw a visable arc from that point. Similarly, the programmer could draw a circle defined by one control word and then draw a further fraction of a circle to position the trace at any particular point on the circumference for beginning some other graphic operation. I
Bits 1 through 7 of the first of these two bytes define a seven bit radius and this portion of the input data register is transferred to a separate register to to be used for generating the X and Y increments. The gating is similar to the gates described for the latches CON- TINUE except that the block with the legend G represents an individual AND gate for each bit of the radius word.
The second of these two bytes contains in bit position 3 through 7 a bit number called END defining the last segment to be drawn and, equivalently, the last word to be fetched from the memory. Logic shown in the drawing loads the word END into a 5 bit register. Logic means similar to the logic for latches CONTINUE provides for simultaneously storing two such END words and for shifting from one to the'other. Bit position 2 defines the negative (clockwise) or positive (counter clockwise) rotation for the arc. Bit position 1 defines whether the beam is blanked or unblanked. These bits are stored in latches that are similar to the latches already described. The logic and timing for these latches will be easily understood when their operations are described later. The latches of 'FIG. 3 can be thought of as a multi-bit register and from a more general standpoint, they form means for storing single bit parameters specified by the problem program.
As the circuit has been described so far, the following operations have taken place. The display has responded in its normal fashion to the address and has moved the trace to this position. The radius number has been loaded into register RADIUS and the number of the end point has been loaded into register END. The latches CONTINUE, ROTATION, and BEAM have been set or left reset according to the corresponding bit positions of the two control words. The system is now ready to generate the arc defined by these registers and latches without further control from the channel. The operation just described can also be considered from the standpoint of the program that is supplied by a problem programmer. To draw a circle of a selected radius, the programmer supplies only 6 bytes to register 34 of FIG. 3. Bytes l through'4 contain in conventional format the address of the center of the circle, and bit 2 of byte 3 contains a l to signify that a circle is to be drawn. The system responds to these 4 bytes by moving the trace of the display to the specified address and by setting latch 35 in FIG. 3. Byte 5 contains the radius length in byte positions I through 7. Bit position 0 is insignificant and may be either a l or a 0. Byte 6 has a 0 in bit position 0 to signify that there are no more control bytes in this circle drawing operation. Bit position 1 contains a 0 to signify that the beam is not to be blanked. Bit position 2 contains a I to signify that the circle is to be drawn counter clockwise, and bit positions 3 through 7 contain the number 24 to signify that the system is to draw the 24 chords of a complete circle. The system then operates without further intervention by the problem programmer. If bit 2 of byte 3 had contained a 0 and bit 2 of byte 4 had contained a l, the system would have operated in arc mode to draw the same circle except that the first chord would start from the point addressed in bytes 1 through 4. In the more usual arc mode operation, bit positions 3 through 7 of byte 6 would specify only a fraction of the 24 chords for the full circle of this example.
The System of FIG. 4 Circle Mode The components and operations of the system of FIG. 4 can be understood most easily by considering that the only significant changes to the display are shown in the drawing and that in circle mode or are mode the display communicates with the system of this invention in the same way that it would otherwise communicate with the channel or other data source. Thus, the display produces a signal REQUEST-on a line to signal the end of a preceding operation and to request control bytes from the channel for a next operation. In the system of FIG. 4, gates 51, 52 transmit the request directly to the channel except when the system is to receive its deflection signals from the memory.
Similarly, the channel normally transmits control bytes to a display decode circuit that produces the ad dress and control signals that are shown in the drawing. When the system is in circle mode or are mode, the outputs of the display decode circuit are inactive and some of the signals are produced by the system of FIG. 4. Preferably, the display decode circuit receives the signal CONTINUE which disables the decode circuit until the last byte group for a circle or arc mode operation has been received. This signal may also be used to permit operations by the display decode circuit and the channel that are independent of the circle or are mode operation.
A gate 55 responds to the signals CIRCLE MODE and the signal GROUP ll identifying the presence of the first control byte in the data register for transmitting the multi-bit word RADIUS to the X address input of the display. In response to this signal, the display moves the trace to the right by the distance defined by the word RADIUS and it transmits a signal REQUEST.
A gate 56 responds to the signal REQUEST, a signal NOT COMPARE that signifies that the system has not yet completed the series of chords defined by the current control bytes, and to a signal described later, to
transmit a multi-bit next address from the next address field of the memory data register to the address circuit of the memory. In response to such an address, the memory produces in its data-register the function and address fields of the addressed word.
The system of FIG. 4 includes a digital miltiplier 55 that receives the signal RADIUS from the circuit of FIG. 3 and the appropriate function field from the memory data register and produces outputs that are applied to the AX and AY inputs of the display. The AX and AY increments are generated separately in a sequence defined by timing signals X TIME and Y TIME. Gates 57 and 59 respond to the signal X TIME to transmit the contents of the cosine function field of the memory data register to multiplier 55 and to transmit the product produced by multiplier 55 to the display. Similarly, gates 58 and 60 transmit the contents of the sine function field of the memory data register to multiplier 55 and transmit the output of the multiplier to the display. Many suitable digital multipliers are well known. Preferably, the contents of the selected function field of the memory data register are shifted once for each bit position of the multi-bit word RADIUS and the shifted fields are accumulated where a 1 appears in the corresponding bit position of the word RADIUS.
The display responds to the signals from multiplier 55 in the same way that it would otherwise respond to signals from the channel and it again produces the signal REQUEST at the end of the operation to produce the chord defined by the multiplier output. The operation just described continues from chord to chord until the chord defined by the problem programmer in the word END is reached. A compare circuit 62 compares the current address field of the memory data register with the word END and produces NOT COMPARE, introduced as an input to gate 53, and COMPARE. When the operation has reached the end chord, the function NOT COMPARE O disables gate 56 to prevent the memory from responding to the next request. The signal COMPARE operates in gates 51 and 52 to transmit the request to the channel. A channel may transmit two additional control bytes for drawing another are or it may go to another routine. The last control byte in an arc, drawing operation is identified by the CONTINUE bit in the first control byte and an AND gate 65 responds to the signals COMPARE and NOT CON- TINUE to reset the next address field of the memory data register to address position 1.
The System of FIG. 4 GROUP 2 Control Bytes The decode circuit of FIG. 3 is arranged to handle an alternate control byte format that is particularly useful for programming a dashed line circle or other figures in which the system is to continue an operation in the same mode and with the same radius but with some of the other control bits changed. A two byte group identified by a signal GROUP, 2 has the format of control byte 2 of group 1 and this provides two successive end points. When the operation has reached the first point desired at the output of the decode circuit of FIG. 3, a logic network 67,68,69 routes the resulting COM- PARE signal to shift the circuits of FIG. 3 and to enable gate 56 to respond to the associated REQUEST for fetching the next deflection word from the memory. When the operation reaches the point defined by the second word END, the resulting compare is routed to circuit 51 for transmitting signal REQUEST to the channel in the way already described.
The System of FIG. 4 Arc Mode The components of the system that have been described so far can be used for drawing various noncircular configurations by appropriate arrangement of the control bytes. It is often useful to draw an are from a predetermined point, and the system of FIG. 4 includes components that substantially simplify programmimg such an operation.
As has already been explained in relation to FIG. 3, the latch ARC MODE is set in response to a l in bit position 2 of address byte 4. The signals ARC MODE and CIRCLE MODE are combined in an OR logic function so that many of the operations described for circle mode are performed also for are mode. Gate 55 opens only in response to the signal CIRCLE MODE and consequently the trace is not offset by the radius value as it is in circle mode.
In are mode the system can provide functions starting at any selected point in the table so that a chord of any available angle can be formed from the previously addressed point on the display face. Logic means is provided for loading the next address field of the memory data register from the END field of control byte 2 of group 1. A group 2 byte is then transmitted with two END words as in the operation on group 2 bytes in circle mode.
Other Operations The preferred embodiment of the invention can be operated to provide a wide variety of geometric figures that are made up from chords defined in the memory and parameters defined by the problem program. The system can be readily adapted to other types of graphic devices having a Cartesian coordinate addressing system and it can be adapted to apparatus having various specific control word formats. The logic and timing functions of FIGS. 3 and 4 can be provided in many well known ways and a specific embodiment will be suggested in part by the organization at least in part of chords of a circle, comprising;
means for storing a table of functions defining a succession of chords,
means for decoding data bytes supplied by a problem program including first means for decoding a byte defining an operating mode in which the system is to produce one of said figures,
means operable when said system is in said mode for accessing said table storing means for a function defining a next chord,
means connected to receive the accessed function for forming chord defining signals and means for transmitting said signals to said device, and
means for identifying the position of an accessed chord in said succession of chords, said decoding means including second means responsive to a set of control bits supplied by a problem program defining an end chord, and means for comparing said position of an accessed chord and said signal defining said end chord for signalling the completion of the end chord to said means for accessing said table storing means,
whereby a graphic device is controlled to form a selected figure in response to said bytes supplied by said problem program without further intervention by said problem program.
2. The system of claim 1 wherein said means for decoding data bytes comprises third means for storing a radius length word supplied by said problem program, and
said means for forming chord defining signals includes a multiplier for multiplying the radius length by a function accessed in said table to produce said chord defining signals, whereby circles or related figures of preselected radius may be formed by said device in response to control bits supplied by said problem program defining said end, said radius, and said operating mode. 3. The system of claim 2 wherein said first means for decoding bytes produced by a problem program includes means to decode and store a first bit defining a circle mode or a second bit defining an arc mode operation called for by said problem program, and
said means to form said chord defining signals includes means operable in said circle mode before forming said first chord to control said device to move its trace in a predetermined direction by said radius length,
whereby the trace position defined by an operation immediately preceding said radius length storing operation defines the center of a circle or a partial circle to be formed.
4. The system of claim 3 wherein said decoding means includes means operable in arc mode for storing control bits defining a selected starting address in said table storing means, and
said means for accessing said table storing means includes means to begin an accessing sequence at a predetermined position in said circle mode and at said selected starting address in are mode.
5. The system of claim 2 wherein said means for decoding includes fourth means for controlling said device according to a control bit position in a byte supill) plied by a problem program defining a blanked or unblanked condition for said device, whereby the trace may be moved to a position defined by a sequence of chords without visible representation in the device.
6. The system of claim 5 wherein said second means for decoding includes means operable in response to a first group of control bytes to store said end value and includes means differently responsive to a second group of control bytes to store first and second end values, and
said means for signalling the completion of an end chord includes means repsonsive to the completion of a chord succession defined by a first end value to begin an operation defined by the second end value and responsive to the completion of said chord defined by said second end value to produce a request to the problem program source for a next message.
7. The system of claim 6 wherein said first means for decoding bytes produced by said problem program includes means responsive to predetermined bit positions in the message format for other device operations,
and said decoding means is operable only when said system is in said mode,
whereby the trace of said device moved to a starting position for drawing one of said figures in response to a message containing a mode defining bit and thereafter responds to a subsequent message containing bits defining said end chord, said radius, and other parameters.
8. The system of claim 7 wherein said decoding means includes fifth means responsive to a bit defining whether the operation is to continue with further such control bytes after an end chord forming operation, and
said chord forming means includes means responsive to said continue bit to selectively reset or maintain the accessing position for said table storing means at the completion of an end chord forming operatron.

Claims (8)

1. A system for controlling a graphic device to produce one of a plurality of geometric figures composed at least in part of chords of a circle, comprising; means for storing a table of functions defining a succession of chords, means for decoding data bytes supplied by a problem program , including first means for decoding a byte defining an operating mode in which the system is to produce one of said figures, means operable when said system is in said mode for accessing said table storing means for a function defining a next chord, means connected to receive the accessed function for forming chord defining signals and means for transmitting said signals to said device, and means for identifying the position of an accessed chord in said succession of chords, said decoding means including second means responsive to a set of control bits supplied by a problem program defining an end chord, and means for comparing said position of an accessed chord and said signal defining said end chord for signalling the completion of the end chord to said means for accessing said table storing means, whereby a graphic device is controlled to form a selected figure in response to said bytes supplied by said problem program without further intervention by said problem program.
2. The system of claim 1 wherein said means for decoding data bytes comprises third means for storing a radius length word supplied by said problem program, and said means for forming chord defining signals includes a multiplier for multiplying the radius length by a function accessed in said table to produce said chord defining signals, whereby circles or related figures of preselected radius may be formed by said device in response to control bits supplied by said problem program defining said end, said radius, and said operating mode.
3. The system of claim 2 wherein said first means for decoding bytes produced by a problem program includes means to decode and store a first bit defining a circle mode or a second bit defining an arc mode operation called for by said problem program, and said means to form said chord defining signals includes means operable in said circle mode before forming said first chord to control said device to move its trace in a predetermined direction by said radius length, whereby the trace position defined by an operation immediately preceding said radius length storing operation defines the center of a circle or a partial circle to be formed.
4. The system of claim 3 wherein said decoding means includes means operable in arc mode for storing control bits defining a selected starting address in said table storing means, and said means for accessing said table storing means includes means to begin an accessing sequence at a predetermined position in said circle mode and at said selected starting address in arc mode.
5. The system of claim 2 wherein said means for decoding includes fourth means for controlling said device according to a control bit position in a byte supplied bY a problem program defining a blanked or unblanked condition for said device, whereby the trace may be moved to a position defined by a sequence of chords without visible representation in the device.
6. The system of claim 5 wherein said second means for decoding includes means operable in response to a first group of control bytes to store said end value and includes means differently responsive to a second group of control bytes to store first and second end values, and said means for signalling the completion of an end chord includes means repsonsive to the completion of a chord succession defined by a first end value to begin an operation defined by the second end value and responsive to the completion of said chord defined by said second end value to produce a request to the problem program source for a next message.
7. The system of claim 6 wherein said first means for decoding bytes produced by said problem program includes means responsive to predetermined bit positions in the message format for other device operations, and said decoding means is operable only when said system is in said mode, whereby the trace of said device moved to a starting position for drawing one of said figures in response to a message containing a mode defining bit and thereafter responds to a subsequent message containing bits defining said end chord, said radius, and other parameters.
8. The system of claim 7 wherein said decoding means includes fifth means responsive to a bit defining whether the operation is to continue with further such control bytes after an end chord forming operation, and said chord forming means includes means responsive to said continue bit to selectively reset or maintain the accessing position for said table storing means at the completion of an end chord forming operation.
US00267800A 1972-06-30 1972-06-30 Circle or arc generator for graphic display Expired - Lifetime US3789200A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US26780072A 1972-06-30 1972-06-30

Publications (1)

Publication Number Publication Date
US3789200A true US3789200A (en) 1974-01-29

Family

ID=23020171

Family Applications (1)

Application Number Title Priority Date Filing Date
US00267800A Expired - Lifetime US3789200A (en) 1972-06-30 1972-06-30 Circle or arc generator for graphic display

Country Status (5)

Country Link
US (1) US3789200A (en)
JP (1) JPS5311332B2 (en)
DE (1) DE2332818A1 (en)
FR (1) FR2191783A5 (en)
GB (1) GB1387957A (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3925765A (en) * 1973-10-29 1975-12-09 Hughes Aircraft Co Digital raster rotator
US3952297A (en) * 1974-08-01 1976-04-20 Raytheon Company Constant writing rate digital stroke character generator having minimal data storage requirements
US3984664A (en) * 1975-01-20 1976-10-05 Hughes Aircraft Company Digital system for generating a circle on a raster type television display
US4029947A (en) * 1973-05-11 1977-06-14 Rockwell International Corporation Character generating method and system
FR2373840A1 (en) * 1976-12-07 1978-07-07 Sperry Rand Corp AP
US4146925A (en) * 1977-08-04 1979-03-27 Smiths Industries, Inc. Graphics generator
US4181956A (en) * 1977-11-07 1980-01-01 General Signal Corporation Digital indicia generator employing compressed data
USRE30679E (en) * 1979-06-14 1981-07-14 Rockwell International Corporation Character generating method and system
US4296930A (en) * 1975-11-26 1981-10-27 Bally Manufacturing Corporation TV Game apparatus
US4371933A (en) * 1980-10-06 1983-02-01 International Business Machines Corporation Bi-directional display of circular arcs
US4459676A (en) * 1980-06-18 1984-07-10 Nippon Electric Co., Ltd. Picture image producing apparatus
WO1984002993A1 (en) * 1983-01-20 1984-08-02 Dicomed Corp Method and apparatus for representation of a curve of uniform width
US4475172A (en) * 1978-05-30 1984-10-02 Bally Manufacturing Corporation Audio/visual home computer and game apparatus
US4674058A (en) * 1981-12-07 1987-06-16 Dicomed Corporation Method and apparatus for flexigon representation of a two dimensional figure
US4692887A (en) * 1983-05-10 1987-09-08 Casio Computer Co., Ltd. Circle and circular arc generator
US4736201A (en) * 1985-02-08 1988-04-05 Hitachi, Ltd. High speed image drawing method and apparatus therefor
EP0350854A2 (en) * 1988-07-15 1990-01-17 Honeywell Inc. Elliptical arc segment generator
US5128609A (en) * 1988-09-02 1992-07-07 Renishaw Plc Setting up of quadrature signals
US5420970A (en) * 1991-03-13 1995-05-30 Martin Marietta Corporation Method for determining computer image generation display pixels occupied by a circular feature

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5857186A (en) * 1981-09-30 1983-04-05 富士通株式会社 Display indicator
JPS62234805A (en) * 1986-04-04 1987-10-15 日本ピラ−工業株式会社 Flat cable

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3199111A (en) * 1962-05-21 1965-08-03 California Comp Products Inc Graphical data recorder system
US3335416A (en) * 1963-08-07 1967-08-08 Ferranti Ltd Character display systems
US3555538A (en) * 1967-02-15 1971-01-12 Bunker Ramo Display apparatus
US3594756A (en) * 1967-12-26 1971-07-20 Sperry Rand Corp Crt curved character generator
US3675231A (en) * 1967-02-28 1972-07-04 Marlen Solomonovich Bezrodny Automatic device for making drawings
US3696391A (en) * 1969-09-19 1972-10-03 Thomson Csf T Vt Sa System for the display of synthesized graphic symbols
US3702922A (en) * 1969-06-27 1972-11-14 Bausch & Lomb Control system and code for a graphical plotting machine or like apparatus

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3199111A (en) * 1962-05-21 1965-08-03 California Comp Products Inc Graphical data recorder system
US3335416A (en) * 1963-08-07 1967-08-08 Ferranti Ltd Character display systems
US3555538A (en) * 1967-02-15 1971-01-12 Bunker Ramo Display apparatus
US3675231A (en) * 1967-02-28 1972-07-04 Marlen Solomonovich Bezrodny Automatic device for making drawings
US3594756A (en) * 1967-12-26 1971-07-20 Sperry Rand Corp Crt curved character generator
US3702922A (en) * 1969-06-27 1972-11-14 Bausch & Lomb Control system and code for a graphical plotting machine or like apparatus
US3696391A (en) * 1969-09-19 1972-10-03 Thomson Csf T Vt Sa System for the display of synthesized graphic symbols

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4029947A (en) * 1973-05-11 1977-06-14 Rockwell International Corporation Character generating method and system
US3925765A (en) * 1973-10-29 1975-12-09 Hughes Aircraft Co Digital raster rotator
US3952297A (en) * 1974-08-01 1976-04-20 Raytheon Company Constant writing rate digital stroke character generator having minimal data storage requirements
US3984664A (en) * 1975-01-20 1976-10-05 Hughes Aircraft Company Digital system for generating a circle on a raster type television display
US4296930A (en) * 1975-11-26 1981-10-27 Bally Manufacturing Corporation TV Game apparatus
FR2373840A1 (en) * 1976-12-07 1978-07-07 Sperry Rand Corp AP
US4115863A (en) * 1976-12-07 1978-09-19 Sperry Rand Corporation Digital stroke display with vector, circle and character generation capability
US4146925A (en) * 1977-08-04 1979-03-27 Smiths Industries, Inc. Graphics generator
US4181956A (en) * 1977-11-07 1980-01-01 General Signal Corporation Digital indicia generator employing compressed data
US4475172A (en) * 1978-05-30 1984-10-02 Bally Manufacturing Corporation Audio/visual home computer and game apparatus
USRE30679E (en) * 1979-06-14 1981-07-14 Rockwell International Corporation Character generating method and system
US4459676A (en) * 1980-06-18 1984-07-10 Nippon Electric Co., Ltd. Picture image producing apparatus
US4371933A (en) * 1980-10-06 1983-02-01 International Business Machines Corporation Bi-directional display of circular arcs
US4674058A (en) * 1981-12-07 1987-06-16 Dicomed Corporation Method and apparatus for flexigon representation of a two dimensional figure
WO1984002993A1 (en) * 1983-01-20 1984-08-02 Dicomed Corp Method and apparatus for representation of a curve of uniform width
US4620287A (en) * 1983-01-20 1986-10-28 Dicomed Corporation Method and apparatus for representation of a curve of uniform width
US4692887A (en) * 1983-05-10 1987-09-08 Casio Computer Co., Ltd. Circle and circular arc generator
US4736201A (en) * 1985-02-08 1988-04-05 Hitachi, Ltd. High speed image drawing method and apparatus therefor
EP0350854A2 (en) * 1988-07-15 1990-01-17 Honeywell Inc. Elliptical arc segment generator
EP0350854A3 (en) * 1988-07-15 1991-08-14 Honeywell Inc. Elliptical arc segment generator
US5128609A (en) * 1988-09-02 1992-07-07 Renishaw Plc Setting up of quadrature signals
US5420970A (en) * 1991-03-13 1995-05-30 Martin Marietta Corporation Method for determining computer image generation display pixels occupied by a circular feature

Also Published As

Publication number Publication date
FR2191783A5 (en) 1974-02-01
GB1387957A (en) 1975-03-19
JPS4945643A (en) 1974-05-01
DE2332818A1 (en) 1974-01-17
JPS5311332B2 (en) 1978-04-20

Similar Documents

Publication Publication Date Title
US3789200A (en) Circle or arc generator for graphic display
US3739352A (en) Variable word width processor control
US4103331A (en) Data processing display system
US3328768A (en) Storage protection systems
US3461434A (en) Stack mechanism having multiple display registers
US4736330A (en) Computer graphics display processor for generating dynamic refreshed vector images
GB1115765A (en) Improvements in or relating to electronic data processing apparatus
US5056041A (en) Data processing apparatus with improved bit masking capability
KR19980032137A (en) Element Selection Mechanisms for Vector Processors
GB1129660A (en) Data processors
JPH0470662B2 (en)
EP0080901B1 (en) Data processing apparatus
US5185859A (en) Graphics processor, a graphics computer system, and a process of masking selected bits
GB1153025A (en) Electronic Calculator
CA1187222A (en) Bi-directional display of circular arcs
US3979725A (en) Multi-way program branching circuits
US3946366A (en) Addressing technique employing both direct and indirect register addressing
US4996653A (en) Line generation in a display system
EP0361107B1 (en) Micro programme-controlled micro processor including a pointer register and an accessing method therefor
US3794970A (en) Storage access apparatus
US3351915A (en) Mask generating circuit
US5812836A (en) System for processing iterative tasks in data processing systems
CA2001892A1 (en) Digital vector generator apparatus for providing mathematically precise vectors and symmetrical patterns
JPS5882296A (en) Dot matrix display system
JPH01140264A (en) Programmed system