U.S. patent number 3,723,803 [Application Number 05/052,389] was granted by the patent office on 1973-03-27 for generation, display and animation of two-dimensional figures.
This patent grant is currently assigned to Computer Image Corporation. Invention is credited to Lee Harrison, III, Francis J. Honey, Frank David Wells.
United States Patent |
3,723,803 |
Harrison, III , et
al. |
March 27, 1973 |
GENERATION, DISPLAY AND ANIMATION OF TWO-DIMENSIONAL FIGURES
Abstract
A system for automatically generating, displaying and animating
two-dimensional figures comprising straight line segments,
animations of the figures including gross size, gross position,
shape and rotational animation sequences. Means are also provided
for maintaining the figure closed through any animation sequence
and establishing boundary conditions for the figure.
Inventors: |
Harrison, III; Lee (Englewood,
CO), Wells; Frank David (Denver, CO), Honey; Francis
J. (Denver, CO) |
Assignee: |
Computer Image Corporation
(Denver, CO)
|
Family
ID: |
21977306 |
Appl.
No.: |
05/052,389 |
Filed: |
July 6, 1970 |
Current U.S.
Class: |
345/473;
345/656 |
Current CPC
Class: |
G09G
1/06 (20130101); G09G 1/12 (20130101); G09G
1/08 (20130101); G06G 7/28 (20130101) |
Current International
Class: |
G09G
1/06 (20060101); G09G 1/08 (20060101); G09G
1/12 (20060101); G06G 7/00 (20060101); G06G
7/28 (20060101); H01j 029/70 () |
Field of
Search: |
;315/18,22,26,27
;340/324A |
References Cited
[Referenced By]
U.S. Patent Documents
Primary Examiner: Quarforth; Carl D.
Assistant Examiner: Potenza; J. M.
Claims
What is claimed is:
1. A system for generation, display and animation of
two-dimensional figures comprising a display device for displaying
the animated figure in response to coordinate inputs to the display
device, means for generating first and second coordinate voltages
for each line segment of the figure to be displayed, means for
sequentially applying the first and second coordinate voltages to
the coordinate inputs to the display device for sequential
generation of the line segments of the figure, and means for
animating the figure which last-named means comprises manually
variable input means for defining the first and second coordinate
voltages for each line segment of the figure to be displayed,
whereby manual operation of selected ones of the manually variable
input means over a given interval of time produces corresponding
changes in the coordinate voltages being generated and hence the
form of the figure being displayed over that same interval of
time.
2. The system of claim 1 including a timing gate generator for
generating a sequence of pulses to define a complete generation
cycle, the number of the pulses being at least as great as the
number of line segments in the figure to be displayed, means for
establishing coordinate voltages for each line segment of the
figure, means for gating the coordinate voltages in response to the
sequential pulses of the timing gate generator for sequential
generation of the line segments of the figure.
3. The system of claim 1 including means for regulating the
intensity of each line segment.
4. The system of claim 2 including means for regulating the beam
intensity of the display device for each of the line segments, the
intensity means including means for establishing voltage inputs
defining the intensity of each of the line segments, and means for
gating the intensity voltages in response to the sequential pulses
of the time gate generator for controlling the intensity of each
line segment as it is generated.
5. The system of claim 1 including means for varying the gross
position of the figure on the display device, which last-named
means includes means for generating gross position voltage
functions, and means for selectively adding the gross position
voltage functions to the first and second coordinate voltages
6. A system for generation, display and animation of
two-dimensional figures comprising a display device for displaying
the animated figure in response to coordinate inputs to the display
device, means for generating first and second coordinate voltages
for each line segment of the figure to be displayed, means for
sequentially applying the first and second coordinate voltages to
the coordinate input to the display device for sequential
generation of the line segments of the figure, means for
selectively varying one or more of the first and second coordinate
voltage over time thereby changing the form of the figure and
producing animation, and means for automatically closing the figure
as one or more first and second coordinate voltages are varied.
7. The system of claim 6 wherein the closing means includes means
for automatically generating the last line segment of the figure to
join the end of the second to last line segment to the end of a
selected one of the previously generated line segments.
8. The system of claim 7 wherein the closing means further includes
means for tracking the first and second coordinate waveforms of the
selected one line segment and the second to last line segment of
the figure, and for holding the voltage values corresponding to the
ends of the selected one line segment and the second to last line
segment, and means for generating a signal equal to the algebraic
difference between the voltage values corresponding to the selected
one line segment and the second to last line segment for use in
generating the last line segment of the figure.
9. The system of claim 5 including means for rotating the figure
about its point or origin, whereby the displayed figure can be made
to roll across the screen of the display device.
10. The system of claim 9 wherein the rotating means includes means
for transforming the first and second coordinate voltages to a
second coordinate system rotated through a prescribed angle with
respect to the original coordinate system, and means responsive to
a voltage input function for defining the angle of rotation,
whereby a variation in the voltage input produces a corresponding
change in the angle of rotation.
11. A system for generation, display and animation of
two-dimensional figures comprising a display device for displaying
the animated figure in response to coordinate inputs to the display
device, means for generating first and second coordinate voltages
for each line segment of the figure to be displayed, means for
sequentially applying the first and second coordinate voltages to
the coordinate inputs of the display device for sequential
generation of the line segments of the figure, means for
selectively varying one or more of the first and second coordinate
voltages thereby changing the form, size or position of the figure
being displayed, and means for establishing boundary conditions
that the figure cannot exceed as it is being animated.
12. The system of claim 11 wherein the boundary means includes
means for generating signals defining the boundary conditions,
means for detecting the coordinate voltages corresponding to the
maximum degree the figure exceeds the boundary conditions, means
for generating offset voltages equal to the difference between the
detected voltages and the boundary condition voltages, and means
for adding the offset voltages to the coordinate voltages as the
figure exceeds the boundary conditions.
13. The system of claim 12 wherein the detecting means includes
peck detectors for detecting and holding the voltages corresponding
to the maximum degree the figure exceeds the boundary condition
during one generation cycle.
14. The system of claim 13 wherein the boundary means includes dual
networks for generating the offset voltages on alternate generation
cycles.
15. A method of generating, displaying and animating
two-dimensional figures comprising the steps of generating first
and second coordinate voltages defining each line segment of the
figure to be displayed, each of which coordinate voltages is
established by manually variable input means, sequentially applying
the first and second coordinate voltages to coordinate inputs of a
display device for sequential generation of the line segments of
the figure, and manually varying selected ones of the manually
variable input means over a given time interval to animate the
figure by producing corresponding changes in the coordinate
voltages over the same time interval.
16. The method of claim 15 including the step of automatically
closing the figure as one or more first and second coordinate
voltages are varied.
17. The method of claim 16 wherein the closing step includes the
step of automatically generating the last line segment of the
figure to join the end of the second to last line segment to the
end of a selected one of the previously generated line
segments.
18. The method of claim 17 wherein the closing step further
includes tracking the first and second coordinate waveforms of the
selected one line segment and the second to last line segment of
the figure, holding the voltage values corresponding to the ends of
the selected one line segment and the second to last line segment,
generating a signal equal to the algebraic difference between the
voltage values corresponding to the selected one line segment and
the second to last line segment, and generating the last line
segment as defined by the algebraic difference signal for
automatically closing the figure.
19. The method of claim 15 including the step of establishing
boundary conditions that the figure cannot exceed as it is
animated.
20. The method of claim 19 wherein the establishing step includes
the steps of generating signals defining the boundary conditions,
detecting the coordinate voltages corresponding to the maximum
degree the figure exceeds the boundary conditions, generating
offset voltages equal to the difference between the detected
voltages and the boundary condition voltages, and adding the offset
voltages to the coordinate voltages as the figure exceeds the
boundary conditions.
21. The method of claim 20 wherein the establishing means further
includes the step of generating offset voltages for each generation
cycle.
22. A method of generating, displaying and animating
two-dimensional figures comprising the steps of generating first
and second coordinate voltages defining each line segment of the
figure to be displayed, sequentially applying the first and second
coordinate voltages to coordinate inputs of a display device for
sequential generation of the line segments of the figure, and
automatically generating the last line segment of the figure to
join the end of the second-to-last line segment to the end of a
selected one of the previously generated line segments which last
step further comprises tracking the first and second coordinate
waveforms of the selected one line segment and the second-to-last
line segment of the figure, holding the voltage values
corresponding to the ends of the selected one line segment and the
second-to-last line segment, generating a signal equal to the
algebraic difference between the voltage values corresponding to
the selected one line segment and the second-to-last line segment,
and generating the last line segment as defined by the algebraic
difference signal for automatically closing the figure.
23. A system for generation, display and animation of
two-dimensional figures comprising a display device for displaying
the animated figure in response to coordinate inputs to the display
device, means for generating first and second coordinate voltages
for each line segment of the figure to be displayed, means for
sequentially applying the first and second coordinate voltages to
the coordinate inputs to the display device for sequential
generation of the line segments of the figure, means for varying
selected ones of the coordinate voltages to animate the display by
changing over time its shape, size or position, and means for
defining the first and second coordinate voltages for at least one
line segment of the figure in response to the first and second
coordinate voltages of one or more of the other line segments of
the figure regardless of the variations of the selected ones of the
coordinate voltages, whereby at least one line segment is
automatically generated in relation to one or more of the other
line segments as the figure is animated.
Description
BRIEF DESCRIPTION OF THE INVENTION
In general the system for generating, displaying and animating
two-dimensional figures includes a cathode ray tube on which the
figures are displayed. The cathode ray tube has inputs
corresponding to the X, Y, and intensity parameter signals for each
segment of the figure. Also included is a two-dimensional figure
generator that sequentially generates signals defining each of the
line segments of the figure, a timing gate generator which
sequentially gates the signals generated by the two-dimensional
figure generator, a closure circuit that automatically maintains
the figure closed through any animation sequence, a rotation
network that transposes the vectors corresponding to each of the
line segments generated from one set of coordinants to a second set
of coordinants, the second set being rotated at a prescribed angle
with respect to the first set, thereby effectively imparting
rotation to the figure, a boundary simulation network that
establishes boundary conditions in the X and/or Y position to give
the figure, in an animation sequence, the appearance of moving in a
gravity field, a size-control network which can be used to change
the total size of the figure in either the X direction or Y
direction and a gross position network for changing the gross
position of the figure on the CRT.
With the horizontal sweep of the cathode ray tube beam being
thought of as movement in the X direction, and vertical movement of
the beam thought of as a movement in the Y direction, the
two-dimensional figure generator establishes signals for
conventional horizontal and vertical movements of the cathode ray
tube beam for generation of each line segment of the figure
sequentially. Simultaneous with the generation of each line segment
the two-dimensional figure generator generates a signal which is
fed to the intensity input of the CRT for defining the intensity of
each line segment. The sequential generation of each line segment
is accomplished by programming the time gate generator to
sequentially generate a series of pulses corresponding to the
number of line segments in the figure. These pulses are used to
gate commutators having X, Y, and intensity input voltages for
generation of each line segment. As these voltages are gated
through the commutators, they are integrated and applied to the X,
Y, and intensity inputs of the CRT, thus generating the basic
two-dimensional figure.
Rotation is imparted to the figure by feeding the X and Y signals
for each of the line segments from the two-dimensional figure
generator into a rotation network which modifies these signals by
transforming them to a new coordinant system rotated through a
prescribed angle to the coordinant system of the two-dimensional
figure generator. This angle of rotation is defined by a voltage
input to the rotation network. As the voltage input is varied, the
angle of rotation is varied, and the figure is caused to rotate.
Any means for varying this voltage can be used, including a time
varying means.
The shape of the figure is changed by varying the X and Y voltage
inputs to the commutators of the two-dimensional figure generator.
A change in one or more of these voltages will impart a change in
the angle and/or length of one or more line segments of the figure,
thereby changing the shape of the figure. To maintain the figure
closed during an animation that changes the shape of the figure, a
closure circuit is provided that detects the final value of the
first line segment generated and the final value of the second to
last line segment generated and automatically generates X and Y
signals for generation of the last line segment to automatically
close the figure. This feature is particularly important where the
animation sequence requires a continuing change in the shape of the
figure.
The figure can be further animated by use of the size control
network. By this network the X and Y signals for each of the line
segments are multiplied by size control voltages from either a
potentiometer input or a time varying input such as a ramp
function. By appropriate selection of the size control voltage the
gross size of the figure can be changed in a variety of animation
sequences. For example, if a ramp function is used, the gain of the
multiplier may be varied from 0 to a maximum producing a
corresponding change in the size of the figure. Animation adds a
three-dimensional effect, giving the appearance that the figure is
moving away from the viewer as it becomes smaller and toward the
viewer as it becomes larger.
Gross position animation is accomplished by adding a voltage at the
X and Y inputs of the CRT to the X and Y signals from the figure
generation network. These position voltages will simply move the
origin of the figure causing movement of the figure on the viewing
screen. Here again, a time varying function such as a ramp function
can be used, in which case the figure can be made to move across
the screen from a predetermined initial position to a predetermined
final position. This feature can be very useful in an animation
sequence such as for example, in combination with the rotation
network to cause the figure to roll across the screen.
Included in this invention is a network for establishing simulated
boundary conditions for the figure during an animation sequence.
Examples are a floor or wall to give the figure the appearance of
moving in a gravity field. If, for example, a square is made to
roll across a floor the corners of the square must not drop below
the level of the floor. Therefore, to simulate the floor condition
an offset voltage is generated by the boundary simulator network of
a value sufficient to lift the figure the exact amount necessary so
that the corners of the square strike the floor as the square
rotates. The boundary network includes peak detectors for detecting
the negative peak voltage of the figure for each cycle of the
figure generated, and means for generating an offset voltage equal
to the difference between the peak detector voltage and a voltage
defining the boundary condition. This offset voltage is then added
to the appropriate coordinant voltage which in this case would be
the Y coordinant voltage for application to the CRT.
As can be seen, any two-dimensional straight line figure can be
generated by this technique, and, by appropriate combinations of
the various animations techniques included in this invention, a
great variety of animation sequences can be produced. By this
invention, figures such as triangles, squares, parallelograms, and
many others can be made to literally dance on the screen, taking on
human characteristics. Much of the animation can be produced
automatically by use of generators producing time-varying
functions. However, animation can also be produced manually such as
by the use of potentiometer inputs to provide the operator with
great flexibility of artistic creation.
DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of the system of this invention;
FIG. 2 is a schematic diagram of the figure generator;
FIG. 3 is an example of the type of figure that can be generated,
displayed and animated by the system of this invention and is used
as an example to explain the operation of a portion of the
system;
FIG. 4 are waveforms generated by the network of FIG. 2 in
generating the square of FIG. 3;
FIG. 5 is a schematic diagram of the size control network;
FIG. 6 is a diagram used for describing a coordinate
transformation;
FIG. 7 is a schematic diagram of the coordinate transformation
network;
FIG. 8 is a schematic diagram of the boundary simulation
network;
FIG. 9 is a square used in explaining the operation of the boundary
simulation network of FIG. 8;
FIG. 10 are the waveforms generated by the network of FIG. 8 in
producing the boundary conditions of FIG. 9;
FIG. 11 is a schematic diagram of the closure network; and
FIG. 12 is a drawing of a triangle used in explaining the operation
of the closure network of FIG. 11.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
In FIG. 1 there is shown a general block diagram of the system of
this invention. There is shown a timing gate generator 10 which, as
will be described, operates as a master control for the operation
of the system. Control signals from the output a of the timing gate
generator 10 are fed through a cable 12 to a two-dimensional figure
generator 14. It is the two-dimensional figure generator 14 that
generates X coordinate, Y coordinate, and intensity signals for
ultimate generation of the basic figure. The intensity signals for
each line segment of the figure are fed through a conductor 16 to
the intensity input E.sub.i of a cathode ray tube (CRT) 18, the X
coordinate signals are fed through a conductor 20, and the Y
coordinate signals are fed through a conductor 22. The conductors
20 and 22 could be connected directly to the E.sub.x and E.sub.y
inputs, respectively, of the CRT 18 to produce a display of a
two-dimensional figure on the CRT; however, certain modifications
are made to these signals before they are fed into the CRT 18, to
provide a variety of animation modes. Hence, the X deflection
signal on the conductor 20 is fed through a conductor 24 to the
input a of a rotation network 30. Likewise, the Y output signal of
the conductor 22 is fed through a conductor 32 to the input b of
the rotation network 30. The rotation network 30 is a network that
transforms the signals referenced by the original XY coordinate
system to a new X'Y' coordinate system. As will be described, it is
the rotation network 30 that imparts rotational animation to the
figure.
The X' output signal from the rotational network 30 is fed through
a conductor 34 and a conductor 35 to the input a of the summation
amplifier 36. The summation amplifier 36 has an input b which
receives a signal set by a potentiometer (not shown) through a
conductor 40 representing the final X position of the figure. The
summation amplifier 36 also has an input c connected by a conductor
42 to an X boundary simulation network 50. The network 50 has an
input a connected by a conductor 52 and a conductor 53 to an output
b of the timing gate generator 10, and an input b connected by a
conductor 54 to the conductor 34. The conductor 54 carries the X'
signals from the rotation network 30 to the input b of the network
50. As will be described, it is the X boundary simulator network
50, upon receiving a trigger pulse from the timing gate generator
10 through the conductors 52 and 53, that establishes X coordinate
boundaries for the figure.
The signals representing Y' are fed through a conductor 60 and a
conductor 62 to the input a of a summation amplifier 64. The
amplifier 64 has an input b that receives a signal through a
conductor 66 representing the final Y position of the figure, and
an input c connected by a conductor 68 to a Y boundary simulation
network 70. The network 70 has an input a connected by a conductor
72 and the conductor 53 to the output b of the timing gate
generator 10. The network 70 also has an input b connected by a
conductor 74 and the conductor 60 to the Y' output of the rotation
network 30. As will be described, it is the Y boundary simulator
network 70, upon receiving a trigger pulse from the timing gate
generator 10 through the conductors 53 and 72, that establishes Y
coordinate boundaries for the figure.
The output signals from the summation amplifier 36, which represent
a varying relationship among the rotation animation signals X', the
X boundary limitation signal, and a final X position signal, are
fed through a conductor 76 to the input a of a size control network
80. The size control network 80 also has an input b connected by a
conductor 82 to the output of the summation amplifier 64. The
conductor 82 carries the signals representing a varying
relationship among rotational animation Y' with boundary
limitations and final Y position. The size control network 80 also
has an input c which receives size control signals through a
conductor 84. It is the size control network 80 that provides
animation of the total size of the figure, this size animation
being a function of the signals to the input c of the network 80.
Signals representing rotation animation signals X', the X
coordinate of each line segment with boundary limitations, a final
X position signal, and size animation are fed through a conductor
88, to the input a of a summation amplifier 90. The summation
amplifier 90 also has an input b that receives signals through a
conductor 92 defining the gross X position of the image on the CRT
18. The signal from the summation amplifier 90 is fed through a
conductor 94 to the E.sub.x input of the CRT 18. Signals
representing the Y position of each line segment of the figure,
rotation animation signals Y' with boundary limitations, a final Y
position signal, and size animation are fed through a conductor 96
to the input a of a summation amplifier 98. The summation amplifier
98 has an input b that receives signals through a conductor 100
defining the gross Y position of the image on the CRT 18. The
output signals from the summation amplifier 98 are fed through a
conductor 102 to the E.sub.Y input of the CRT 18.
The timing gate generator 10 also has an output c connected by a
cable 110 to the gate input of a closure circuit 112. It is the
closure circuit 112 that automatically generates signals to close
the figure as the shape of the figure is changed. The X coordinate
signals on the conductor 20 are also fed through a conductor 114 to
the closure circuit 112, and the Y coordinate signals on the
conductor 22 are also fed through a conductor 116 to the closure
circuit 112. The circuit 112 sends X and Y coordinate signals for
automatic generation of the last line segment of the figure through
the conductors 118 and 120, respectively, to the two-dimensional
figure generator 14.
The technique of generating two-dimensional figures and animating
these figures in a variety of animation modes has been generally
described. A more detailed description of each of the major
components of the system follows.
TWO-DIMENSIONAL FIGURE GENERATION
The circuit for the two-dimensional figure generator 14 is shown in
more detail in FIG. 2. By this circuit, the line segments of the
figure to be produced are generated in sequence by commutating
voltages representing each line segment. Hence, there are shown
three commutators, 150, 152, and 154. Each commutator has a
plurality of potentiometer inputs. There are as many potentiometer
inputs as there are line segments in the figure to be generated. In
the commutator 150, a potentiometer input 156 sets the X voltage
for the first line segment, a potentiometer input 158 sets the X
voltage for the second line segment, a potentiometer input 160 sets
the X voltage for the third line segment, and so on, to a
potentiometer input 162 which sets the X voltage for the nth line
segment of the figure. The commutator 150 also has a gate input for
each of the potentiometer inputs 156-162. Hence, the potentiometer
input 156 has associated with it a gate input 164, the
potentiometer input 158 has associated with it a gate input 166,
the potentiometer input 160 has associated with it a gate input
168, and the potentiometer input 162 has associated with it a gate
input 170. When a gate pulse of a given width is fed into the gate
input 164, the commutator 150 generates a voltage at an output
conductor 172 equal to the potentiometer input voltage 156 for the
duration of the gate pulse. When a gate pulse of a given width is
fed into the input 166, the potentiometer input voltage 158 appears
at the output conductor 172, and so on for each potentiometer input
and its corresponding gate input. The sequence X signals generated
by the commutator 150 is fed through the conductor 172 to an
integrator 174. The integratated output from integrator 174 is fed
through the conductor 20 which can be connected directly to the
E.sub.x input of the CRT 18, or to the input of an animation
network such as the rotation network 30 or size control network
80.
A commutator 152 operates in exactly the same manner as the
commutator 150, except it is used to commutate Y voltages. Hence, a
potentiometer input 192 sets the Y voltage for the first line
segment, a potentiometer input 194 sets the Y voltage for the
second line segments, a potentiometer input 196 sets the Y voltage
for the third line segment, and a potentiometer input 198 sets the
Y voltage for the nth line segment of the figure. Associated with
each of the potentiometer inputs 192 - 198, is a gate input. The
potentiometer input 192 has associated with it a gate input 200,
the potentiometer input 194 has associated with it a gate input
202, the potentiometer input 196 has associated with it a gate
input 204, and the potentiometer input 198 has associated with it a
gate input 206. Just as with the commutator 150 when a gate pulse
is fed sequentially to each of the gate inputs 200 - 206, the
corresponding potentiometer input signal is fed through the
commutator 152 and an output conductor 208 to an integrator 210.
The integrated output from the integrator 210 is fed through the
conductor 22. Like the output from the integrator 174, the output
from the integrator 210 can be fed directly to the E.sub.y input of
the CRT 18, or to the input of an animation network such as the
rotational network 30 or size control network 80.
A commutator 154 operates in exactly the same manner as the
commutators 150 and 152 except it is used to commutate intensity
voltages. Hence, a potentiometer input 230 sets the intensity
voltage for the first line segment, a potentiometer input 232 sets
the intensity voltage for the second line segment, a potentiometer
input 234 sets the intensity voltage for the third line segment,
and a potentiometer input 236 sets the intensity voltage for the
nth line segment. Associated with each of the potentiometer inputs
230 - 236 is a gate input. Hence, the potentiometer input 230 has
associated with it a gate input 240, the potentiometer input 232
has associated with it a gate input 242, the potentiometer input
236 has associated with it a gate input 246. Just as with the
commutators 150 and 152, when gate pulses of fixed width are
sequentially fed into the gate inputs 240 - 246 of the commutator
154, the commutator 154 generates at its output the corresponding
potentiometer input voltage. Because it is usually desirable to
have a constant intensity level for each line segment on the CRT 18
and because a constant intensity is determined by a DC voltage, the
sequential DC output voltages from the commutator 154 are fed
through the conductor 16 directly to the E.sub.i input of the CRT
18.
The appropriate voltage levels are now set for generation of each
of the line segments of the figure; however, it is necessary to
establish a time sequence for generating each of the line segments.
This is accomplished by the timing gate generator 10. The timing
gate generator 10 is a sequential pulse generator having a
plurality of outputs 260, 262, 264, 266, and 268. There could be
any number of outputs, the output 268 corresponding to the nth
output. The generator 10 can be programmed to generate pulses of
given widths in sequence at its outputs. The first pulse generated
by the generator 10 will appear at the output 260 and be fed
through a conductor 270 and a conductor 272 to the reset input of
the integrator 174. The pulse on the conductor 270 is also fed
through a conductor 274 to the reset input of the integrator 210.
Hence, the pulse at the output 260 resets each of the integrators
174 and 210 to zero. The next pulse generated by the generator 10
appears at the output 262 and is fed through a conductor 276 and a
conductor 277 to the gate input 164 of the commutator 150. The
pulse on the conductor 276 is also fed through a conductor 278 to
the gate input 200 of the commutator 152. The pulse on the
conductor 276 is also fed through a conductor 280 to the gate input
240 of the commutator 154. Hence, the pulse at the output 262 of
the generator 10 simultaneously gates each of the commutators 150,
152, and 154 to produce X, Y, and intensity signals for the
generation of the first line segment. The next pulse generated by
the generator 10 appears at the output 264 and is fed through a
conductor 282 and a conductor 284 to the gate input 166 of the
commutator 150. The pulse on the conductor 282 is also fed through
a conductor 286 to the gate input 202 of the commutator 152. The
pulse on the conductor 282 is also fed through a conductor 288 to
the gate input 242 of the commutator 154. Hence, the pulse at the
output 264 of the generator 10 simultaneously gates each of the
commutators 150,152, and 154 to generate signals for generation of
the second line segment. The third pulse generated by the generator
10 appears at the output 266 and is fed through a conductor 290 and
a conductor 292 to the gate input 168 of the commutator 150. The
pulse on the conductor 290 is also fed through a conductor 294 to
the gate input 204 of the commutator 152. The pulse on the
conductor 290 is also fed through a conductor 296 to the gate input
244 of the commutator 154. It is the pulse at the output 266 of the
generator 10 that simultaneously gates the commutators 150, 152 and
154 to generate signals for generation of the third line segment.
There may be any number of additional pulses from the generator 10
but the last or nth, pulse generated at the output 268 is fed
through a conductor 298 and a conductor 300 to the gate input 170
of the commutator 150. The pulse on the conductor 298 is also fed
through a conductor 302 to the gate input 206 of the commutator
152. The pulse on the conductor 298 is also fed through a conductor
304 to the gate input 246 of the commutator 154. It is the pulse at
the output 268 of the generator 10 that simultaneously gates each
of the commutators 150, 152 and 154 to generate signals for
generation of the nth line segment. After the nth pulse is
generated, the pulse sequence is repeated with the next pulse
generated at the output 260 for resetting the integrators 174 and
210 to zero.
By way of example, the operation of the circuit of FIG. 2 will be
explained for the generation and display of the square of FIG. 3 on
the CRT 18. In FIG. 3, there is shown a square 305 with a center
306 and comprised of line segments 307, 308, 309, 310, and 311. The
segment 307 is used to position the square so that the origin is at
the center 306. Therefore, the center of the square is at the
coordinate x = 0, y = 0, on the xy coordinates shown. The end of
the first line segment 306 is a corner 314 of the figure, having
coordinates x.sub.1 y.sub.1. The end of the line segment 308 is a
corner 316 having coordinates x.sub.2 y.sub.2. The end of the line
segment 309 is a corner 318 having coordinates x.sub.3 y.sub.3. The
end of the line segment 310 is a corner 320 having coordinates
x.sub.4 y.sub.4. Finally, the end of the line segment 311 is the
corner 314 having coordinates x.sub.5 y.sub.5. Because the FIG. 306
is a closed figure, the coordinates x.sub.5 y.sub.5 are the same as
the coordinates x.sub.1 y.sub.1. Because there are five line
segments (307-311) that must be generated, each of the commutators
150,152 and 154 must have five potentiometer inputs and five gate
inputs. Also, the timing gate generator 10 must have a total of six
outputs, one for resetting the integrators 174 and 210, and five
for gating the five potentiometer inputs to each of the
commutators. The X voltages for generation of each of the line
segments 307 - 311 are set on the potentiometer inputs to the
commutator 150, the Y voltages are set on the potentiometer inputs
to the commutator 152, and the intensity voltages are set on the
potentiometer inputs to the commutator 154. The timing gate
generator 10 is programmed to sequentially generate six pulses of
equal width per cycle at its output.
The generation of the square of FIG. 3 can now be explained with
reference to the wave forms of FIG. 4. The wave forms 322, 323,
324, 325, 326 and 327 are the sequential pulses generated at the
six outputs of the timing gate generator 10. The first of these
pulses as shown by the wave form 322, is the reset pulse for the
integrators 174 and 210. The remaining pulses, as shown by wave
forms 323 - 327, sequentially gate each of the commutators 150, 152
and 154. The output of the X commutator 150 for the entire cycle of
the timing gate is shown by the wave form 328. During the reset
pulse, as shown by the wave form 322, the signal of the wave form
328 is zero, since no line segments are generated when the
integrators 174 and 210 are reset. The remainder of the wave form
328 represents the voltages set by the potentiometer inputs for the
commutator 150, for generating the X signals for each of the line
segments. The wave form 328 is integrated by the integrator 174
with the integrated output on the conductor 20 shown by the wave
form 329. The reference level of the wave form 329 can be varied as
will be hereinafter described to move the gross position of the
square of FIG. 3 along the X axis.
For now, assume the origin of the square of FIG. 3 is zero, with
respect to both the X and Y axis so that the reference level of the
wave form 329 is zero.
The output of the Y commutator 152 for generating the square of
FIG. 3 is shown by the wave form 330. Just as with the wave form
328, the wave form 330 is zero during the resetting of the
integrators 174 and 210. The remainder of the wave form 330
represents the voltages set by the potentiometer inputs to the
commutator 152 for generating the Y signals for each of the line
segments. The wave form 330 as integrated by the integrator 210 is
shown by the wave form 331. Again, assuming the origin of the
square of FIG. 3 is zero, with respect to both the X and Y axis,
the reference level of the wave form 331 is also zero.
Finally, the output from the commutator 154, representing the
intensity of each of the line segments, is shown by the wave form
332. It can be seen from the wave form 332 that during a single
generation cycle only the line segments 308 - 311 are intensified.
The line segment 307 is not intensified, as it is used only to
position the square with its origin at the center. In this example,
the intensity level of all the sides of the square is held constant
by the constant level of the wave form 332. If desired, of course,
the potentiometers 230 - 236 could be adjusted to vary these
intensities.
The wave forms 329, 331, and 332 can be applied directly to the
E.sub.x, E.sub.y and E.sub.i inputs, respectively, of the CRT 18 to
produce the square of FIG. 3. Using this basic technique, any
straight line, two-dimensional figure can be generated and
displayed.
This invention also provides a means for animating the figure by
varying one or more of the potentiometer inputs to the commutators
150 and 152. Obviously, variations in one or more of these inputs
will change the shape of either or both of the X and Y coordinate
waveforms, thereby causing a change of form in the figure. By
manipulating these inputs as the timing gate generator 10 cycles,
the operator of the system can animate the figure in a great
variety of sequences that include variations in size, orientation,
position and shape.
GROSS POSITION ANIMATION
Referring to FIG. 1 the summation amplifiers 36 and 64 and their
corresponding inputs make up the circuit for adjusting the gross
position of the image on the CRT 18. Each of the summation
amplifiers 36 and 64 have inputs a, b, and c. The input a of the
summation amplifier 36 is shown connected by the conductor 35 to
the X' output from the rotation network 30. However, if the
rotation network 30 is not used, the input a could be connected
directly by the conductor 20 to the X output from the
two-dimensional figure generator 14. The input b of the summation
amplifier 36 is connected by the conductor 40 to an X gross
position voltage function. The voltage function can be a constant
voltage set by a potentiometer or a time varying function such as a
ramp function. As previously stated, the input c of the summation
amplifier 36 is connected to the output of the boundary simulation
network 50 which will be hereinafter described in detail. Likewise,
the input a of the summation amplifier 64 is shown connected by the
conductor 62 to the Y' output of the rotation network 30. However,
the input a could also be connected by the conductor 22 directly to
the Y output of the two-dimensional figure generator 14. The input
b of the summation amplifier 64 is connected by a conductor 66 to a
Y gross position voltage function. This voltage function, like the
X position voltage function, can be either constant or time
varying. The input c to the summation amplifier 64 is connected by
the conductor 68 to the boundary simulation network 70, which will
be hereinafter described in detail. For now, the c inputs to the
summation amplifiers 36 and 64 can be ignored. Although the outputs
of the summation amplifiers 36 and 64 are shown connected by the
conductors 76 and 82, respectively, to the size control network 80,
these outputs could be connected directly to the E.sub.x and
E.sub.y inputs, respectively, of the CRT 18. With the system so
connected, the gross position of the total figure generated by the
two-dimensional figure generator 14 can be varied in the X
direction by varying the voltage at the input b of the summation
amplifier 36, this voltage being added to the X coordinate waveform
voltages from the generator 14, or the Y direction by varying the
voltage at the input b of the summation amplifier 64, this voltage
being added to the Y coordinate waveform voltages from the
generator 14. By using various combinations of voltages at the b
inputs of the summation amplifiers, a variety of gross position
animation sequences is obtained. For example, if potentiometer
inputs are used, these potentiometers can be varied to position the
figure anywhere on the CRT 18. If ramp functions are used, the
figure can be made to move across the screen between a
predetermined starting position to a predetermined final
position.
SIZE ANIMATION
The size of the figure can be varied by use of the size control
network shown in more detail in FIG. 5. The size control network 80
includes analog multipliers 336 and 338 each having inputs a and b.
The a inputs can receive signals from a variety of sources
including the X and Y coordinate waveforms on the conductors 20 and
22 from the two-dimensional figure generator 14, or the output from
the summation amplifiers 36 and 64, depending on the network
configuration used. The input b of the multiplier 336 is connected
by a conductor 340 and the conductor 84 to a size control voltage
function 342. The input b of the multiplier 338 is connected by a
conductor 341 and the conductor 84 to the size control voltage
function 342. The signals at the output conductors 88 and 96 of the
multipliers 336 and 338, respectively, are the product of the
signals at the inputs a and b. Hence, the size control voltage
function is fed through the conductors 84 and 340 to the input b of
the multiplier 336 where it is multiplied by the signals at the
input a of the multiplier 336 to produce the output signals on the
conductor 88. The size control voltage is also fed through the
conductors 84 and 341 to the input b of the analog multiplier 338
where it is multiplied by the signals at the input a of the
multiplier 338 to produce the output signals on the conductor 96. A
variation in the control voltage 342 produces a corresponding
variation in the voltages on the output conductors 88 and 96. For
example, if the control voltage 342 is set by a potentiometer the
total size of the image can be set wherever desired, or varied by
varying the potentiometer. By adjusting the control voltage 342
from full scale to 0, the size of the image on the CRT 18 can be
reduced from a maximum down to a point located at the origin of the
figure. If the control function 342 is a ramp function, a zooming
effect is achieved with the figure zooming from a small size to a
large size or vice versa, depending on whether a positive or
negative ramp is used. If four-quadrant multipliers are used, the
image on the CRT 18 can be invented by applying a negative control
voltage to the multipliers. The use of ramp functions to give a
zooming effect gives apparent depth or a third dimension to the
image.
While FIG. 2 shows a single size control for controlling the gain
of the multipliers 336 and 338 simultaneously, it would, of course,
be possible to have separate size controls for each multiplier. In
this way, the size of the image in the X and Y direction can be
selectively controlled. For example, the square of FIG. 3 would
become a rectangle by varying the gain of only one of the
multipliers.
ROTATIONAL ANIMATION
Another form of animation provided by this system is rotational
animation about the point of origin of the figure. If the figure is
a square, such as the one shown in FIG. 3, the rotation would be
about the point 306. Rotation is produced by means of a coordinate
transformation. Referring to FIG. 6, the formulas for rotating the
figure will be derived. There are shown XY coordinate axes and X'Y'
coordinate axes. The X'Y' axes are rotated counter-clockwise
through an angle .alpha., the angle .alpha. being the angle of
rotation. Let the vector component x equal A, and the vector
component Y, equal B, so that A and B are the original vector
components on the XY axes.
A.sub.x ', B.sub.x ', A.sub.y ', and B.sub.y ' are the components
of A and
B projected on X' and Y'.
Then,
A' = A.sub.x ' + B.sub.x '
B' 132 B.sub.y ' - A.sub.y '
A.sub.x ' = A cos .alpha.
A.sub.y ' = A sin .alpha.
B.sub.x ' = B sin .alpha.
B.sub.y ' = B cos .alpha.
and A' = A cos .alpha. + B sin .alpha.
B' = B cos .alpha. - A sin .alpha.
therefore,
x' = x cos .alpha. + y sin.alpha.
y' = y cos .alpha. - x sin.alpha.
If clockwise rotation is assumed, the equations become
x' = x cos.alpha. - y sin.alpha. and
y' = y cos.alpha. + x sin.alpha.
The network of FIG. 7 produces the rotational animation. There is
shown a sine--cosine generator 350 with a potentiometer input 352.
The setting of the potentiometer input 352 determines the angle
.alpha.. A detailed description of a suitable sine cosine generator
350 is shown in FIG. 3 of and described in U. S. Pat. No.
3,364,382. For the purposes of this disclosure, it is sufficient to
know that the generator 350 generates at an output a the cosine of
.alpha. and at an output b the sine of .alpha.. The cosine .alpha.
function at the output a is fed through a conductor 354 and a
conductor 360 to the input a of a multiplier 362. The function x
representing the x coordinate voltages of the line segments of the
figure, and which corresponds to the signal on the conductor 20 of
FIGS. 1 and 2, is fed through the conductor 24 and a conductor 364
to the input b of the multiplier 362. The output from the
multiplier 362 which represents x cos .alpha. is fed through a
conductor 365 to the input a of a summation amplifier 366. The
signal on the conductor 24 is also fed through a conductor 368 to
the input b of a multiplier 370. The signal at the output b of the
sin -- cos generator 350 representing sin .alpha. is fed through a
conductor 372 and a conductor 374 to an inverter 376. The output
from the inverter 376 representing - sin .alpha. is fed through a
conductor 378 to the input a of the multiplier 370. The output from
the multiplier 370 representing - x sin .alpha. is fed through a
conductor 380 to the input a of a summation amplifier 382. The
signal on the conductor 372 representing sin .alpha. is also fed
through a conductor 384 to the input a of a multiplier 386. The
function y representing the y coordinate voltages of the line
segments of the figure and which corresponds to the signal on the
conductor 22 of FIGS. 1 and 2 is fed through the conductor 32 and a
conductor 388 to the input b of a multiplier 390. The signal on the
conductor 32 is also fed through a conductor 392 to the input b of
the multiplier 386. The output from the multiplier 386 representing
y sin .alpha. is fed through a conductor 394 to the input b of the
summation amplifier 366. The output from the summation amplifier
366 represents x cos .alpha. + y sin .alpha. which is equal to x'.
The signal on the conductor 354 representing cos .alpha. is also
fed through a conductor 396 to the input a of the multiplier 390.
The output from the multiplier 390 representing y cos .alpha. is
fed through a conductor 398 to the input b of the summation
amplifier 382. The output from the summation amplifier 382
represents y cos .alpha.- x sin .alpha. which is equal to y'. The
x' and y' output signals can be fed directly into the E.sub.x and
E.sub.y input of the CRT 18 or first into the size control network
80, or summation amplifiers 36 and 64. The network of FIG. 7 could
be easily modified in accordance with the above equations to
produce clockwise rotation.
Therefore, the image on the CRT 18 can be made to rotate about its
origin by varying .alpha. through use of the potentiometer input
352. Obviously, if .alpha. is varied continuously through
360.degree., the figure can be made to rotate continuously. If the
gross position network is used simultaneously with the rotation
network, the figure can be made to roll across the screen in any
direction.
BOUNDARY LIMITATIONS
Figures animated by the techniques described thus far, for example
rotational animation, often have the appearance of floating in
space because their motion is not constrained by a boundary such as
a floor or a wall. They give the illusion of moving around under
conditions of zero gravity. It may be desirable to simulate the
effects of certain boundary conditions such as a floor or wall in a
gravity field. To accomplish this, the circuit shown in FIG. 8 is
used. Suppose for example, a floor is to be simulated so that the
corners of the square of FIG. 9 appear to contact the floor as the
figure rotates much as a square block would roll on a flat surface.
As the square rotates about its origin the corners of the square
must just contact the surface of the floor. Therefore, as each
corner approaches, the entire square must be raised a distance that
equals the distance the corners would otherwise extend beneath the
floor. This is accomplished by the boundary simulation networks 50
and 70. As these networks are identical, it is necessary to
describe only one in detail.
In FIG. 8, there is shown the network 70 having a flip-flop 412.
The input of the flip-flop 412 is connected by the conductors 53
and 72 to the output b of the timing gate generator 10. At the
beginning of each cycle of pulses generated by the generator 10, a
trigger pulse is generated at the output b of the generator 10 in
synchronization with the generation of the reset signal on the
conductor 270. This pulse is fed through the conductors 53 and 72
to trigger the flip-flop 412. The flip-flop 412 has outputs a and
b. Each time the flip-flop 412 receives a trigger pulse it changes
state with signal levels alternately appearing at its a and b
outputs. The trigger pulse at the beginning of the first cycle
triggers the flip-flop 412 to produce a signal at its output a
which is fed through a conductor 414, a conductor 416, and a
conductor 418 to a reset circuit 420. The output of the reset
circuit 420 is connected by a conductor 422 to the input a of a
peak detector 424. The peak detector 424 also has inputs b and c
and is a device that tracks a waveform introduced at its input c
and stores the peak voltage of the waveform. The input b of the
detector 424 is connected by a conductor 426 to an adjustable
reference voltage 428 which is set to represent the boundary
condition. The reference voltage 428 is fed through the conductor
426 to the input b of the peak detector 424. When the peak detector
424 is reset by the signal on the conductor 422, it will discharge
to a voltage level equal to the reference voltage 428 and will hold
this voltage until it detects a greater voltage on the waveform it
is tracking. If a greater voltage is detected, it will store that
voltage. The waveform representing the y or y' coordinate voltages
for each of the line segments is fed through the conductor 74 and a
conductor 430 to an analog switch 432. The signal on the conductor
416 is also fed through a conductor 434 to the analog switch 432,
closing the analog switch at the same time the peak detector 424 is
reset to the reference voltage level 428. When the analog switch
432 closes, the y or y' waveform on the conductor 430 is fed
through a conductor 436 to the tracking input c of the peak
detector 424, enabling the peak detector 424 to track the y or y'
waveform and store the peak voltage on that waveform, providing it
is greater than the reference voltage 428. The peak respectively
voltage is fed through a conductor 440 to an analog switch 444.
Another analog switch 446 is connected by a conductor 450 to a
potentiometer input 452. The potentiometer input 452 is adjusted to
a voltage equal and opposite to the reference voltage 428. The peak
voltage from the peak detector 424 and the voltage from the
potentiometer input 452 are applied to the analog switches 444 and
446, respectively.
At the beginning of the next cycle (after each element of the
figure has been generated one time) another trigger pulse will be
generated by the timing gate generator 10 which is fed through the
conductors 53 and 72 to trigger the flip-flop 412, causing the
flip-flop 412 to change state so that there is a signal at its
output b and no signal at its output a. Because there is no signal
at the output a, there is no signal on the conductor 434 and the
analog switch 432 opens. With the analog switch 432 open, the peak
detector 424 will stop tracking and will hold the peak voltage
detected before the analog switch 432 opens. The signal at the
output b of the flip-flop 412 is fed through a conductor 456, a
conductor 460 and a conductor 462 to close the analog switch 444.
The signal on the conductor 460 is also fed through a conductor 464
to close the analog switch 446. With the analog switches 444 and
446 closed, the peak voltage from the peak detector 424 is fed by
the conductor 440 through the analog switch 444 and a conductor 466
to the input a of a summing amplifier 468, and the potentiometer
voltage 452 is fed through the conductor 450, the analog switch
446, and a conductor 470 to the input b of the summing amplifier
468. The output of the summing amplifier 468 is equal to the
algebraic sum of the peak voltage from the detector 424 and the
potentiometer voltage 452. This algebraic sum is the offset
voltage.
Another circuit identical to the one just described generates the
offset voltage for the next cycle. Two circuits are necessary, each
operating on alternate cycles because each peak detector must
sample the waveform for an entire cycle before generating the
offset voltage for the next cycle. Hence, the signal on the
conductor 456 is also fed through a conductor 472, and a conductor
474 to a reset circuit 476. The reset circuit 476 is identical to
the reset circuit 420. The output of the reset circuit 476 is fed
through a conductor 478 to the input a of a peak detector 480. The
peak detector 480 is identical to the peak detector 424 and
operates in exactly the same manner. The peak detector 480 has
another input b connected by a conductor 482 to a reference voltage
484. Just as with the reference voltage 428, the voltage 484 is set
to represent the boundary condition. When the peak detector 480
receives the signal at the input a, it is reset to a value equal to
the voltage 484. The Y' waveform on the conductor 74 is also fed
through a conductor 486 to an analog switch 488. The signal on the
conductor 472 is also fed through a conductor 490 to close the
analog switch 488. With the analog switch 488 closed, the Y'
waveform is fed through a conductor 492 to the input c of the peak
detector 480. Just as with the peak detector 424, the peak detector
480 tracks the Y' waveform for one complete cycle and stores the
peak voltage providing it is greater than the reference voltage
484. This peak voltage is fed through a conductor 494 to an analog
switch 498. Another analog switch 500 is connected by a conductor
504 to a potentiometer input 506. The potentiometer input 506 is
set to a value equal and opposite to the reference voltage 484. The
peak voltage on the conductor 494 and the voltage from the
potentiometer input 506 are applied to the analog switches 498 and
500, respectively. At the beginning of the third cycle of pulses
from the timing gate generator 10, another trigger pulse is
generated to again trigger the flip-flop 412, causing the flip-flop
412 to change state so that there is a signal at its output a and
no signal at its output b. With no signal at the output b, the
analog switch 488 opens and the peak detector 480 stops tracking.
The signal at the output a of the flip-flop 412 is fed through the
conductor 414, a conductor 510, and a conductor 512 to close the
analog switch 498. The signal on the conductor 510 is also fed
through a conductor 514 to close the analog switch 500. With the
analog switches 498 and 500 closed, the peak voltage from the peak
detector 480 is fed through a conductor 516 to the input d of the
summing amplifier 468, and the voltage from the potentiometer input
506 is fed through the conductor 504, the analog switch 500 and a
conductor 518, to the input c of the summing amplifier 468.
Therefore, the output of the summing amplifier 468 at the beginning
of the third cycle is also equal to the algebraic sum of the peak
voltage from the detector 480 and the potentiometer voltage 506,
which is the offset voltage. The signal on the conductor 414 which
closes the analog switches 498 and 500 is also fed through the
conductor 416 to reset the peak detector 424 and close the analog
switch 432 to track the Y' waveform for the next cycle. This
tracking by each peak detector of alternate cycles continues to
generate an offset voltage for each cycle. Referring again to FIG.
1, this offset voltage is fed through the conductor 68 to the
summation amplifier 64 where it is added to the Y' voltages.
While the boundary simulation network 70 just described operates on
the Y or Y' coordinate waveform, this same circuit is used in the
simulation network 50 to simulate X coordinate boundary conditions
by tracking the X or X' waveform.
By way of example, the operation of the boundary network 70 will be
explained with reference to the square 520 oriented as in FIG. 9
and the waveforms of FIG. 10. Assume that the conditions to be
simulated are the rolling of the square 520 across a floor 522. The
floor 522 being the boundary condition. As the square 520 rotates
about its origin 524 each of its corners, such as the corner 526,
must contact the surface of the floor 422 and not extend beneath
it. Therefore, as the square 520 rotates, the entire square must be
raised a sufficient amount so that each of the corners just contact
the floor 522. For this condition, the square 520 assumes the
position of the square 520' shown by dotted lines in FIG. 9. The
waveform 530 of FIG. 10 shows the trigger pulses generated at the
beginning of each cycle by the timing gate generator 10. These
pulses trigger the flip-flop 412. The waveform 532 is either the Y
or Y' coordinate of the waveform for generating the square 520 of
FIG. 9. In this waveform, the floor 522 is represented by a voltage
level -E.sub.R shown by a dotted line 534, and the negative peak
voltage of the waveform is designated -E.sub.p. The waveform 532 is
tracked by the peak detectors 424 and 480 on alternate cycles as
heretofore described with the detectors 424 and 480 holding the
negative peak voltage -E.sub.p. Each of the reference voltages 428
and 484 are set to equal the voltage representing the boundary
condition -E.sub.R. Each of the potentiometer inputs 452 and 506
are set to equal +E.sub.R as heretofore described. The waveform 536
is the output waveform from the reset circuit 420 used to reset the
peak detector 424. The waveform 536 is half the frequency of the
waveform 530. The waveform 538 is the output waveform from the peak
detector 424. It will be noted that upon detecting the negative
peak voltage -E.sub.p the detector 424 will hold that voltage for
the remainder of the cycle and through the next cycle at which time
the detector 424 is reset. The waveform 540 is the output waveform
from the reset circuit 476 used to reset the peak detector 480. The
waveform 540 is half the frequency of the waveform 530 and is
180.degree. out of phase with the waveform 536 so that they operate
on alternate cycles. The waveform 542 is the output waveform from
the detector 480. The output from the detector 480, as noted by
comparing the waveforms 538 and 542, is 180.degree. out of phase
with the output waveform from the detector 424. On alternate
cycles, the summing amplifier 468 computes the algebraic difference
between the waveform 542 and the potentiometer input voltage 506
and the waveform 538 and the potentiometer input voltage 452. These
algebraic differences are equal to E.sub.p - E.sub.R as shown by
the waveform 544 and are fed through the conductor 68 to the
summation amplifier 64 to raise the square 520 to the position of
the square 520'.
CLOSURE NETWORK
Another feature of this invention which provides great versatility
in animating certain types of figures, is the automatic closure
network. Using the commutating scheme of FIG. 2, a figure is
generated by appropriate adjustment of the X,Y, and intensity
potentiometers. Animation is produced by varying these
potentiometers. However, in order for the figure to remain closed
during an animation sequence, x.sub.n must equal x.sub.1, and
y.sub.n must equal y.sub.1. If one or more of the potentiometers
are varied without also varying the others, the point x.sub.1
y.sub.1 will not equal the point x.sub.n y.sub.n, and the figure
will come apart. Without a means for automatically driving the last
line segment back to the point x.sub.1 y.sub.1, it would be very
difficult to produce animation. The closure circuit 112 is such a
means.
The closure circuit for the X coordinate signals is shown in FIG.
11. There is an identical closure circuit for the Y coordinate
signals, so that it will suffice to describe only one. The network
including the timing gate generator 10, the commutator 150, and the
integrator 174 is identical to that shown in FIG. 2 but has been
included in FIG. 11 for convenience. The commutator 150 has the
potentiometer input 156 representing x.sub.1, and the potentiometer
input 158 representing x.sub.2. There is also shown a potentiometer
input 550 representing x.sub.n .sub.-.sub.1 and an input 551
representing x.sub.n. The input 551 is not a potentiometer input.
Just as shown in FIG. 2, the commutator 150 has inputs 164, 166,
168, and 170 that receive signals from the timing gate generator 10
for gating the inputs 156, 158, 550, and 551. As previously
described, the first of the succession of pulses in a given cycle
from the timing gate generator 10 is fed through the conductors 270
and 272 to reset the integrator 174. The second in the succession
of pulses is fed through the conductors 276 and 277 to the input
164 of the commutator 150 gating the potentiometer input 156
through the conductor 172 to the integrator 174. The integrated
signal is fed through the conductors 20 and 114 and a conductor 552
to the input a of a track and hold network 553. The track and hold
network 553 also has an input b connected by a conductor 554 from
an enable circuit 556. The signal on the conductor 276 is also fed
through a conductor 558 to the input of the enable circuit 556.
With a signal on the conductor 558, the enable circuit 556
generates a signal which is fed through the conductor 554 to enable
the track and hold network 553. This will cause the network 553 to
track the integrated output from the integrator 174 which, for the
signal in the conductor 276, corresponds to drawing the placement
segment 307 (FIG. 3) for a square. When the next of the sequence of
pulses is generated by the timing gate generator 10, the signal on
the conductors 276 and 558 drop to zero, disabling the circuit 556
and causing the track and hold network 553 to hold its value. This
value will be the final value of the placement segment, such as the
segment 307. This final value is fed through a conductor 559 to the
minus input of a differential amplifier 560. The next pulse
generated by the timing gate generator 10 is fed through the
conductors 282 and 284 to the input 166 of the commutator 150,
gating the potentiometer input 158 through the conductor 172 to the
integrator 174. The integrated output is then fed through the
conductors 20 and 24 as heretofore described. This integrated
output will not affect the track and hold network, 553 because it
is no longer enabled. Each of the segments will be generated as
heretofore described until the second to last segment is generated.
The pulse from the timing gate generator 10 that corresponds to the
n-1 segment is fed through the conductors 290 and 292 to the input
168 of the commutator 150, gating the potentiometer input 550,
which is the X voltage for the n-1 segment, through the conductor
172 on the integrator 174. The integrated output is fed through the
conductors 20 and 114 and a conductor 561 to the input a of a track
and hold network 562. The track and hold network 562 also has an
input b connected by a conductor 564 to an enable circuit 566. The
pulse on the conductor 290 is also fed through a conductor 568 to
the input of the enable circuit 566. When the enable circuit 566
receives an input signal, an enable pulse is generated at its
output which is fed through the conductor 564 to trigger the track
and hold network 562. This causes the network 562 to track the
integrated output from the integrator 174 corresponding to the n-1
segment. When the last of the sequence of pulses is generated by
the timing gate generator 10, the signal on the conductors 290 and
568 goes to zero, disabling the circuit 566 causing the track and
hold network 562 to hold its value. This value is equal to the
final value of the n-1 segment. The value held by the track and
hold network 562 is fed through a conductor 570 to the plus input
of the differential amplifier 560. The output of the differential
amplifier 560, which is equal to the difference between the final
value of the second to last (n-1) line segment and the final value
of the first line segment is fed through the conductors 118 and 551
to the input of the commutator 150 corresponding to the X signal
for the nth line segment. The next and last of the sequence of
pulses in the cycle generated by the time gate generator 10 is fed
through the conductors 298 and 300 to the input 170 of the
commutator 150 gating the feedback signal from the amplifier 560
through the conductor 172 to the integrator 174. The integrated
signal which is fed through the conductors 20 and 24 is the exact
signal necessary to automatically close the figure.
The operation of the closure network can be explained with
reference to the triangle of FIG. 12. A triangle is a good figure
to use as an example since its shape can be greatly varied while
maintaining its basic configuration. The triangle of FIG. 12 has
four line segments, 571, 572, 574, and 576. This figure can be
easily animated by varying the length and/or direction of segments
571, 572 and 574 with the segment 576 always being such that it
will automatically close the figure. To generate this triangle, the
timing gate generator 10 is programmed to generate a series of five
pulses per cycle. Using only the X voltages for the purpose of this
example, the X voltage for the segment 571 is set by the
potentiometer input 156 to the commutator 150, the X voltage
corresponding to the line segment 572 is set by the potentiometer
input 158, and the X voltage for the line segment 574 is set by the
potentiometer 550. The first gate pulse from the generator 10
resets the integrator 174. The second gate pulse from the generator
10 gates the potentiometer input voltage 156 for the line segment
571 through the commutator 150 and the conductor 172 to the
integrator 174. The second pulse also gates the enable circuit 556
which enables the track and hold circuit 553, causing the circuit
553 to track the integrated waveform for the line segment 571 and
to hold the final X coordinate value of the line segment 571. The
third pulse from the generator 10 gates the potentiometer input 158
for the line segment 572 through the commutator 150 and the
conductor 172 to the integrator 174. The integrated waveform for
this line segment is fed through the conductors 20 and 24 as
heretofore described. The fourth pulse from the generator 10 gates
the potentiometer input 550 for the line segment 574, which is the
n-1 line segment, through the commutator 150 and the conductor 172
to the integrator 174. The fourth pulse also gates the enable
circuit 566 which enables the track and hold circuit 562, causing
the circuit 562 to track the integrated waveform for the line
segment 574 and to hold the final X coordinate value of the line
segment 574. The final value of the line segment 571 and the final
value of the line segment 574 are fed into the differential
amplifier 560 which generates at its output the algebraic
difference between these two final values. This algebraic
difference is fed back to the input 551 of the commutator 150. When
the fifth and final pulse of the series is generated by the
generator 10, the feedback signal at the input 551 is gated through
the commutator 150 and conductor 172 to the integrator 174. This
integrated output is the exact waveform necessary to generate the
final line segment 576 to close the figure. This waveform is fed
through the conductors 20 and 24 as heretofore described.
As previously explained, the automatic closure circuit for the Y
coordinate voltages is identical to that just described. Therefore,
by varying the potentiometer inputs 156, 158, and 550, as well as
the corresponding potentiometer inputs for the Y coordinate
voltages animation can be imparted to the triangle of FIG. 12
resulting in great variations in its shape with the triangle always
remaining closed.
A system has thus been described for generating and displaying
two-dimensional figures and animating these figures in a variety of
sequences. While the system has been generally described with
reference to FIG. 1, it is to be understood that not all of the
features need be used at once. The network can easily be rearranged
for use of only a portion of the system shown in FIG. 1 depending
on the animation requirements.
Various changes and modifications may be made within the invention
as will be readily apparent to those skilled in the art. Such
changes and modifications are within the scope and teaching of this
invention as defined by the claims appended hereto.
* * * * *