DE2546506C2 - Digitaler Videogenerator für eine zeilenweise Darstellung eines Kegelschnittes auf einem Fernsehbildschirm - Google Patents

Digitaler Videogenerator für eine zeilenweise Darstellung eines Kegelschnittes auf einem Fernsehbildschirm

Info

Publication number
DE2546506C2
DE2546506C2 DE2546506A DE2546506A DE2546506C2 DE 2546506 C2 DE2546506 C2 DE 2546506C2 DE 2546506 A DE2546506 A DE 2546506A DE 2546506 A DE2546506 A DE 2546506A DE 2546506 C2 DE2546506 C2 DE 2546506C2
Authority
DE
Germany
Prior art keywords
generator
line
output
register
input
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
Application number
DE2546506A
Other languages
English (en)
Other versions
DE2546506A1 (de
Inventor
Walter John Fairfax Va. Hogan
Alfred Alexander Gaithersburg Schwartz, Md.
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
Publication of DE2546506A1 publication Critical patent/DE2546506A1/de
Application granted granted Critical
Publication of DE2546506C2 publication Critical patent/DE2546506C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/20Function-generator circuits, e.g. circle generators line or curve smoothing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

F i g. 4 ein Impulsdiagramm oder Taktdiagramnm fur den schlechtesten Fall der Erzeugung eines Kegelschnittes zur Darstellung der Arbeitsweise des Kegelschnittgenerators in Fig. 3;
Fig. 5 einen durch den Kegelschnittgenerator der Fig. 3 mit Hilfe von Rastersegmenten simulierten Kreis; Fig. 6 ein Blockschaltbild des im Kegelschnittgenerator der Fig. 3 verwendeten Quadratwurzelgenerators; Fig. 7A das Verhältnis der Achsen der darzustellenden Ellipse und
Fig. 7B die für die Ellipse der Fig. 7A erzeugten Vektorsegemente.
Diskussion einer bevorzugten Ausfuhrungsform der Erfindung
Zusammenhang des Videogenerators mit dem erfindungsgemäß aufgebauten Kegelschnittgenerator
Fig. 1 zeigt den Zusammenhang, in dem der Kegelschnittgenerator 410 in Verbindung mit dem in der DE-OS 25 25 509 offenbarten Videogenerator für eine dynamische digitale Darstellung auf einem Fernsehschirm Anwendung findet. Eine dynamische digitale Darstellung auf einem Fernsehschirrn ist eine besondere Art der Darstellung, bei der codierte Daten einer Datenverarbeitungsquelle entnommen und in ein Fernsehvideosignal umgesetzt werden. Dieses Signal steuert einen oder mehrere Fernsehmonitoren an, auf denen dann das von der Datenverarbeitungsanlage gelieferte Bild dargestellt wird. Die logischen Schaltungen, mit deren Hilfe die aus der Datenverarbeitungsanlage kommenden codierten Daten in ein Fernsehsignal umgesetzt werden, sind alles Digitalschaltungen, wie sie auch in der Datenverarbeitungsanlage verwendet werden. D. h., die digitale Fernsehdarstellung ist als Nachfolgetechnik anzusehen, die von dem beim Fernsehen und in der Datenverarbeitungsindustrie erarbeiteten technischen Fortschritt Gebrauch macht, um damit aus der Datenverarbeitungsanlage stammende Information auf einem Fernsehschirm darzustellen.
Eine Bildschirmdarstellung bedeutet in diesem hier benutzten Zusammenhang, daß ein oder mehrere Elektronenstrahlen wiederholt über die Bildschirmfiäche einer Kathodenstrahlröhre in einer Folge von sehr eng benachbarten parallelen Zeilen abgelenkt werden, die hier als Raster bezeichnet werden sollen. In jeder Sekunde wird dabei diese Abtastung mehrfach durchgeführt, wobei die Anzahl der Abtastungen festliegt. In einem bestimmten Anzeigesystem liegt sowohl die Anzahl der Zeilen als auch die Wiederholungsfrequenz bei der Zeilenabtastung fest. In einem typischen Fall verwendet man 525 Zeilen und 30 Bildabtastungen pro Sekunde. Jedes Bild wird dabei in zwei Teilbilder unterteilt, wobei das eine Teilbild die ungeradzahligen Zeilen und das andere Teilbild die geradzahligen Zeilen erhält. Durch diese verschachtelte Darstellung entsteht eine offensichtliche Verdoppelung der Bildfrequenz.
Die digitale Bildschirmdarsteilung stellt eine Computeranzeige im Bildschirmformat dadurch her, daß das Bild zu einer Matrix aus Punkten oder Bildelementen reduziert wird. In einer Darstellung mit horizontalen Abtastzeilen ist die Anzahl der vertikalen Anzeigeelemente gleich der Anzahl der sichtbaren Abtastzeilen. Die Anzahl der Elemente innerhalb jeder Abtastzeile ist etwa willkürlich gewählt und ist typisch etwa l,33mal der Anzeige der Abtastzeilen. Obgleich das Bild aus einzelnen Elementen gebildet wird, so erscheint es doch wegen der großen Anzahl der verwendeten Elemente kontinuierlich.
Der in der DE-OS 25 25 509 offenbarte Videogenerator verwendet ein neues Verfahren zur Erzeugung einer graphischen Darstellung, die sich bei älteren digital arbeitenden Bildschirmsystemen nicht finden läßt. Diese Darstellung gestattet es, daß alle darstellbaren Daten in Tür die Datenverarbeitung bestimmter codierter Form ihre Identität bis zu den letzten Stufen der Videobilderzeugung beibehalten.
Im Betrieb kann man bei dieser Art der Darstellung Daten auf der Darstellung löschen, ohne daß dabei darüberliegende oder sich schneidende Daten mitgelöscht werden. Dieses Verfahren bei der Erzeugung einer BiId-
4f darstellung ist dann besonders attraktiv, wenn kurze Einblendungen und Farbe gewünscht werden. Die für die Darstellung und Identifizierung von Farbe und Einblendung benötigten Bits sind in der für die Datenverarbeitungsanlage typischen codierten Form enthalten. Diese Art der impliziten Wiederholung kann den tatsächlichen Schaltungsaufwand für die Speicher für eine farbige graphische Darstellung um einen Faktor von 18:1 verringern.
Die Videogeneratorschaltung in Fig. 1 macht von der Wiederholungstechnik in der Weise Gebrauch, daß dadurch dynamisch eine digiiaie Fcrnsch-Bildschirrnuarsieliung erzeugt wird. Der Videcgeneratcr besteht aus einem Wiederholungspufferspeicher 28, dem zwischenpufTerspeicher 38, einem Vektorgenerator 42, einem zusätzlich möglichen Symbolgenerator 44 und einem Teilrasterspeicher PRAS 44. Der Kegelschnittgenerator 410, auf den sich die vorliegende Erfindung bezieht, ist mit dem Zwischenpufferspeicher 38 und dem Vektorgenerator 42 verbunden.
Der Wiederholungspufferspeicher 28 nimmt aus einer Datenquelle, wie z. B. einer Datenverarbeitungsanlage oder einer programmierbaren Steuereinheit, die die einzelnen Bildelemente darstellenden Datensignale auf. Der Wiederholungspufferspeicher 28 liest die nach der K-Adresse geordneten Datenworte aus, einmal je Teilbild für die Vektoren, Symbole und Kegelschnitte, die angezeigt werden sollen, wobei diese als Hintergrund und als dynamische Daten organisiert sind. Der Wiederholungspuffer 28 besteht aus einem Steuermodul und einem Speichermodul für eine Speicherung von insgesamt 4 K Halbworten mit je 16 Daten- und zwei Paritätsbits. Die Hauptfunktion des Wiederholungspufferspeichers besteht darin, die zum Aufbau der visuellen Darstellung erforderlichen codierten Daten einzuspeichern. Die von einer digitalen Datenverarbeitungsanlage in beliebiger Form über die Leitung 68 ankommenden Daten werden in einer nach der K-Zeile geordneten Form abgespeichert. Dadurch ist es möglich, den Wiederholungspufferspeicher 28 Zeile für Zeile auszulesen.
Das von der Datenverarbeitungsanlage an den Wiederholungspufferspeicher 28 für Kegelschnitte ankommende, aus Datenworten bestehende Eingangssignal benötigt jeweils Worte mit 32 Bit mit vier zusätzlichen redundanten Worten, um damit ein Auflisten der Daten nach dem ^-Wert zu erleichtern. Die Worte 3,4,5 und 6
in Fig. 2 werden jeweils mit einem zusätzlichen Wort 1, das den Wert Kenthält, paarweise benutzt, um die Identifizierung der im Wiederholungspufferspeicher eingespeicherten geordneten Wortschlangen zu erleichtern. Die Datenworte werden von der digitalen Datenverarbeitungsanlage über eine gemeinsam benutzte, in beiden Richtungen einsetzbare Haibwortsammelleitung 68 dem WiederholungspufTerspeicher 28 zugeführt. Der Zwischenpufferspeicher 38 ist ein kleiner Hochgeschwindigkeitspuffer, derdieDatenausdem Wiederhoiungspuffer- s speicher 28 in codierter Form aufnimmt und diese Daten - je nach Bedarf- wiederum an den Kegelschnittgenerator 410, den Symbolgenerator 40 oder den Vektorgenerator 42 abgibt. Der Zwischenpufferspeicher 38 nimmt aus dem Wiederholungspufferspeicher 28 sechs 32-Bit-Worte für jeden Kegelschnitt auf, der auf einer Rasterzeile beginnt. Diese Daten werden von dem Zwischenpufferspeicher 38 entsprechend dem zur Verfügung stehenden Speicherplatz benötigt, bevor die Rasterzeile an den Videomischer 46 übertragen wird.
Die in Fig. 2 gezeigten, sechs codierten Datenworte werden mit hoher Geschwindigkeit an den Kegelschnittgenerator übertragen, wo sie im Zusammenwirken mit dem Vektorgenerator 42 in digitale Videodaten umgesetzt werden. Da ein Kegelschnitt auf verschiedenen Rasterzeilen auftreten kann, modifiziert der Kegelschnittgenerator 410 die codierten Datenworte und schreibt sie erneut in den Zwischenpufferspeicher 38 für eine weitere Verwendung bei der Erzeugung der digitalen Videodaten für die nächste Rasterzeile ein. Wenn die Videodatenumwandlung während der Erzeugung der gerade laufenden Rasterzeile abgeschlossen ist, dann wird diese bestimmte Gruppe von Datenworten nicht erneut in den Zwischenpufferspeicher 38 eingespeichert.
Der Zwischenpufferspeicher 38 ist dabei in einen Vorspeicherbereich und einen aktiven Bereich unterteilt, wobei die Gesamtkapazität bei 256 32-Bit-Worten liegt. Die Daten werden vom WiederholungspufTerspeicher 28 an den Vorspeicherbereich in dem Maße übertragen wie dort Speicherplatz zur Verfügung steht und, je nach Erfordernissen für die Anzeige, von dem Vorspeicherbereich nach dem aktiven Bereich.
Der Vektorgenerator 42 nimmt von dem Zwischenpufferspeicher 38 zwei Datenworte auf und bestimmt damit, welche Elemente auf jeder Zeile der Darstellung einen Vektor bilden. Alle Vektoren werden durch den Hilfsprozessor als individuelle Vektoren gekennzeichnet, beginnend am oberen Ende des Bildschirms und in Richtung auf das untere Ende des Bildschirms fortschreitend. Das vom Vektorgenerator erzeugte Videopunktmuster wird durch den Kegelschnittgenerator 410 dazu benutzt, ein Videopunktmuster für die darzustellenden Kegelschnitte zu erzeugen.
Der Kegelschnittgenerator 410 ist in Fi g. 3 gezeigt. Der Kegelschnittgenerator 410 weist eine vom Zwischenpufferspeicher 38 kommende Eingangsleitung 2QO, eine nach dem Zwischenpufferspeicher 38 führende Rückkopplungs-AusgangsIeitung 202 und zwei nach dem Vektorgenerator 42 führende Ausgangsleitungen 412 und 414 auf. Das Taktdiagramm für die Arbeitsweise des Kegelschnittgenerators ist in Fig. 4 gezeigt. Der Kegelschnittgenerator verwendet das in Fig. 2 gezeigte Format für codierte Daten zur Berechnung der Ausgangs-A'-Koordinate und der A A"-Länge für jedes von zwei Rasterzeilensegmenten, die den Schnittpunkt des Kegelschnittes mit der Rasterzeile darstellen. Ein durch Rastersegmente simulierter Kreis ist in Fi g. 5 gezeigt. Diese X- und A X-Werte werden über Leitungen 412 und 414 für die Erzeugung eines Videopunktmusters an den Vektorgenerator 42 abgegeben. Der Kegelschnittgenerator 410 modifiziert dann die codierten Daten, deren Format in F i g. 2 gezeigt ist, zur Darstellung des Schnitts des Kegelschnittes mit der nächsten anzuzeigenden Rasterzeile, und gibt diese modifizierten Daten über die Rückkopplungsleiiung 202 an den Zwischenpufferspeicher 38 ab.
Der Teilrasterspeicher 44 (PRAS) ist ein Hochgeschwindigkeitsspeicher, dessen Kapazität für zwei volle Rasterzeilen in expliziter (nicht codierter Videopunktmusterform) Form ausreicht. Alle Punktmusterdaten für einen Kegelschnitt, einen Vektor oder ein Symbol werden auf einer Zeile im PRAS 44 während der Zeit einer Zeile zusammengestellt, die der normalen Darstellung dieser Zeile vorausgeht. Soll die Videozeile dargestellt werden, dann wird die entsprechende Zeile im PRAS 44 mit Videofrequenz ausgelesen, während die nächste Zeile in der zweiten Zeile des PRAS 44 zusammengestellt wird.
Das vom PRAS 44 kommende digitale Videoausgangssignal gelangt an den Videomischer-Verstärker 46, wo es mit den Synchronisiersignalen gemischt und für eine Übertragung über die Leitung 192 zu einer digitalen Bildschirmanzeige in ein zusammengesetztes Videosignal umgesetzt wird. Für jede Primärfarbe ist ein Videomischer-Verstärker 46 erforderlich.
Kegelschnittgenerator
Der Hilfsprozessor, d. h. eine hier benutzte HilfsZentraleinheit verwendet eine iterative Schleife zur Berechnung einer geraden Linie (Xp) und einer Verschiebung gegenüber dieser geraden Linie (Xq). Die Schnitte mit dem Kegelschnitt sind dann Xp± Xq, wie Fig. 7A zeigt. Dabei gelten folgende Gleichungen:
Xpn+1 = Xpn + A Xp
Xq]+i = Xq2,+ A Xq2,
AXq] = Δ Xq]-X+A2Xq2
wobei Δ Xp und Δ 2Xp2 Konstante sind.
Die HilfsZentraleinheit berechnet die ursprünglichen Werte von Xp, Δ Xp, Xq2, AX2q und Δ 2Xq2 wie
folgt:
Die Gleichung einer Ellipse ist Ax2 + Bxy + C/ - 1 = 0,
α2 sin2 θ + 62COS2 Θ Α α2 ft2
2 sin θ cos Θ (α2 - b2)
B =
ίο C
Jb2 a2 cos2 Θ + b2 s\n2 θ
Jb2 wobei
Hauptachse a= ~2
Nebenachse
b =■
2 und
S= der Rotationswinkel
Dann wird Y, gefunden, d. h. der Y-Wert für den von der Mitte der Ellipse aus gemessenen obersten Punkt der Ellipse
= 1 ' -AA 1 I B2-4AC '
Unter Verwendung von Y1 lassen sich die Anfangswerte finden:
Xp1 =- -T^7 ([KJ-1/2)+ K,
AXp B
2A '
,2 +JL
X2q, S24 AC A '
A2Xq2 4 A2 '
AXq2 B2-4AC
A Y 4A2 '
= -([K1] -IM2 Xq2,
= 2 [K].
Diese Werte werden dann für die K-Zeilenadresse entsprechend [ Y,] + Kegeschrieben, wobei [KJ der ganzzahlige Teil von }', und X1 und K, die Adresse der Mitte des Kegelschnittes sind.
Wenn man ([ KJ - 1 /2) in den Berechnungen benutzt, dann lassen sich mit den iterativen Formeln die Schnittpunkte des Kegelschnittes an einem Punkt in der Mitte zwischen benachbarten Zeilen des Bildschirmes berechnen. Die Darstellung wird dann dadurch erzeugt, daß man ein waagerechtes Zeilensegment von dem Schnittpunkt 1/2 Zeile oberhalb jeder Bildschirmzeile nach dem Schnittpunkt 1/2 Zeile unterhalb dieser Linie auf der Bildschirmzeile zieht. A Y ist die in Bildschirmzeilen gemessene Höhe des Kegelschnittes.
Ausführung
Ein Blockschaltbild der entsprechenden Schaltung ist in Fi g. 3 gezeigt, während ein Taktimpulsdiagramm für diese Schaltung in Fig. 4 dargestellt ist.
Die Daten für den Kegelschnitt sind in sechs, in Fig. 2 dargestellten Worten enthalten, die im Zwischenpufferspeicher abgespeichert sind. Diese Worte enthalten
Xq2, A 2X2q, A Xq2, Xp, A Xp, A Y 65
Wenn die beiden ersten Worte gelesen werden, dann wird Xq2 in das .^-Register 418 geladen und die 24 höchstwertigen Bits werden nach dem Schieberegister SR 1 434 übertragen, A Kwird ebenfalls in das A K-Register 428 geladen. Das Schieberegister SR 1 434 ist ein 2-Bit-Schieberegister, das für jeden Schiebevorgang den
Speicherinhalt um zwei Bits verschiebt, und das die Daten so lange verschiebt, bis entweder eine Eins in einer der beiden höchstwertigen Bitpositionen auftritt oder aber für maximal fünf Schiebeimpulse. Die Anzahl der Schiebeimpulse wird in der Schiebesteuerlogik 440 gespeichert und die elf höchstwertigen Bits im Schieberegister SR1 434 werden als Eingangssignale für den Quadratwurzel-Festwertspeicher 436 benutzt.
Die Analyse dieses Verfahrens zum Berechnen einer Quadratwurzel wird noch gegeben. Diese Schaltung ergibt eine Verschiebung, bis entweder die ersten Einsen von Xq2 in den höchstwertigen Adressen des Festwertspeichers 436 eingespeichert sind oder bis alle Ziffern des gesamten Zahlenteils (fünf 2-Bit-Verschiebungen) von Xq2 in den Adressen des Festwertspeichers 436 liegen. Wenn sich die Ausgangssignale des Festwertspeichers 436 stabilisiert haben, wird diese Zahl in das Schieberegister 2 438 eingespeichert. SR2 438 ist ein Schieberegister, das jeweils um ein Bit weiter verschiebt und der Speicherinhalt wird gleich oft nach unten verschoben, wie er im SR1434 nach oben verschoben wird. Dieses Verfahren stellt einen Weg dar zur Benutzung eines Gleitkommas bei der Berechnung einer Quadratwurzel. Wenn man beispielsweise den Speicherinhalt des Schieberegisters SR1 434 fünfmal um zwei Bits nach oben verschiebt, so entspricht dies einer Multiplikation mit 2+1°, wenn man dagegen den Speicherinhalt des Schieberegisters SR2 438 fünfmal um ein Bit nach unten verschiebt, so entspricht dies einer Multiplikation mit 2"5. Somit ist also nach fünf Schiebetakten:
SR 1 = Xq2 x 210
und das Ausgangssignal des Festwertspeichers ist
20 VXq2 X 1O+10 = Xq X 25
Nach fünf Schiebetakten im Schieberegister SR 2 ergibt dies:
SR 2 = Xq X 25 X 2"5 = Xq
Dieser Wert wird dann in Xqn 454 geladen.
Es werden dann die weiteren Worte aus dem Zwischenpufferspeicher ausgelesen und in die entsprechenden Register eingespeichert. Xq2, Δ Xq2 und Δ 2Xq2 sind alle bis 42 Bit genau, wie dies für die unten noch zu beschreibende Fehleranalyse erforderlich ist. Diese Bits werden in zwei Schritten in einer Addierstufe 452 mit 22 Bit addiert. Die 22 niedrigstwertigen Bits werden addiert, und der Übertrag wird festgehalten, anschließend werden die 20 höherwertigen Bits addiert, und der Übertrag wird dazuaddiert. Auf diese Weise wird Xqn+\ dadurch erzeugt, daß man Xq\ + Δ Xq2, addiert, und man erzeugt Δ Xq\+\ dadurch, daß man Δ Xq2, zu Δ 2X2q hinzuaddiert. Xq2,+1 wird dann in das Jg2-Register 418 geladen, und wenn das Ausgangssignal des Festwertspeichers 436 in das Schieberegister SR 2 438 geladen wird, wird Xq2 in das Schieberegister SR1 434 geiaden und das Verfahren zum Berechnen der Quadratwurzel wird fortgesetzt, um den Wert A^n+1 zu ermitteln.
Wenn die Worte 5 und 6 vom Zwischenpufferspeicher ausgelesen werden, dann werden die Werte Δ Xp, Δ Y und Δ 2X2q in die entsprechenden Register geladen. Die elf höchstwertigen Bits von Xp werden dann an das Xpn-Register 456 übertragen und nach Berechnung von Xq\+\ wird Xp„+\ berechnet und dann in die Xp 456 und Xpn+1 460-Register geladen. Anschließend wird Xp„+2 berechnet und in das Register Xp 420 eingespeichert, von wo es dann wieder nach dem Zwischenpufferspeicher 38 zurückgespeichert werden kann. Anschließend werden die Werte von Xq\+i und Δ Xq\+i berechnet und in die Register Xq2 418 bzw. Δ Xq2 426 geladen, und diese Werte werden wiederum in den Zwischenpufferspeicher 38 zurückgespeichert.
Ist der Wert von Xqn+ x bestimmt, dann wird dieser Wert in das Xqn+ ,-Register 458 geladen und die Werte
Xn = Xpn + Xqn
X'n = XPn - XQn
Xn+1 = XPn+\ + X<ln+\
werden in 11 Bits ALUs erzeugt. Diese Werte werden dann nach den Registern 480,482,474 bzw. 472 übertragen. Die Vergleichsstufen 484 und 486 steuern das MUX 488, das den kleineren Wert von X„ und X'„ sowie Jn+1 und X'„+l ausgibt als Wert Jf auf Leitung 412 und als Differenz dieser Werte Δ X auf Leitung 414, die nach dem Vektorgenerator 42 führen. Eine Detektorschaltung 466 ist vorgesehen, die bestimmt, wenn Zeilensegmente sich außerhalb des Bildschirmes befinden, in welchem Fall kein Schreibbefehl an den Vektorgenerator abgeht. Für Kegelschnitte, die oberhalb des sichtbaren Rasters beginnen, werden Werte von Xp,, Xq2 und Δ X2q, durch die HilfsZentraleinheit unter Verwendung der iterativen Gleichung berechnet.
Der Wert von Δ Y wird jedesmal dann, wenn er ausgelesen wird, um zwei Werte verringert und mit null verglichen. Wird die Null festgestellt, dann ist der Kegelschnitt fertig, so daß dieser Wert nicht in den Zwischenpufferspeicher 38 zurückgespeichert wird. Um sicherzustellen, daß der Kegelschnitt geschlossen ist, wird Xqn+x zwangsweise zu null gemacht, so daß die beiden Vektorsegmente nach Xp„+\ gezogen werden, so daß sich am unteren Ende des Kegelschnittes ein ausgezogener Vektor befindet.
besondere Berücksichtigung ist auch am oberen Ende des Kegelschnittes erforderlich, wenn die Register Xpn und Xp„+\ beide mit Xp, (Xp Ausgangswert) und die Register Xqn und Xq„+, beide mit Xq, (Xq Anfangswert) gela-
den sind, so daß auch auf der Oberseite des Kegelschnittes ein ausgezogener Vektor dargestellt wird.
Mathematische Analyse
Ableitung
Die iterativen Gleichungen für die Erzeugung von Kegelschnitten wurden wie folgt abgeleitet: Die Gleichung einer Ellipse ist:
10
wobei α und b die beiden Halbachsen sind, damit ist
15
b2x2 + a2y2 = a2b2 (2)
Rotiert man die Achse um den Winkel Θ, wie in Fig. 7C gezeigt, dann wird:
20 η _ VX? +K1 2,
*.- R cosa,
25 Y1 =
Xl =
R sin a,
Ä cos(a + 0),
^2 = /?sin(a + 0),
30 Xl = R (cos α cos 0 - sin α sin θ),
cosa R '
35 sina _ K1
R '
40 Xi =
und
/{ /'II cos β - Ix
\R R
• sin 0 j
JIf2 = Xi COS0-K, sin©, (3) Y2 = R (sin α cos 0 + cos a sin 0)
„ /K1 Λ Jf1 . Λ = R ί —- cos θ + —L sin 0 j
und K2 = K1 cos 0 + JT, sin0 (4)
substituiert man in Gleichung (2), dann erhält man:
b2 (X1 cos 0 - K, sin 0)2 + a2 (K, cos Θ + JIT, sin Θ)2 = o2 b2
55
oder, noch allgemeiner a2sin20 + fe2cos20 ^2 + 2(a2-62)sin0 cos θ χγ + a2 cos2 θ + b2 sin20
60
Setzt man ü2 sin2 0 + i2cos2
Ir) sin 0 cos 0 _
= ti ,
erb-
α2 cos2 θ+ Λ2 sin2 θ
O2O2
so erhält man
C,
AX2+BXY+CY2-\ =0. (5)
Löst man nach X auf, dann erhält man:
γ _ -ΒΥ± V(BY)2-4A (Cy73T) 10
χ Ta
ß2-4^C , VI +
2 )' A
= Xp±Xq, (6)
Xp = - — Y = K1 Y 20
ist, d. h. die Gleichung einer geraden Linie und
}! B2-4AC v, 1
Xq=\—^-Y-+-, (7, 25
X2q = K2Y2+K)
ist.
Yt = y tritt oben und unten bei einer rotierten Ellipse dann auf, wenn X = Xp (d. h. wenn Xq = 0 ist).
Έ~
+ 4A
Für die Entwicklung der Rekursivformel für .fy ist: 50
Xpn -K1Yn,
XPn+ I = K ι Yn+ ι
Wenn dies jedoch die Werte von Xp auf zwei aufeinanderfolgenden Bildschirmzeilen sind, dann ist r.+i = y. - ι
und 60 :'i
/I Xp -Xp^-Xpn, %
Δ Xp ^iK1Y.-K1)-KtY11, I
Λ Xp = -AT, , (8) i^
und neue Werte Tür A'p können berechnet werden durch Vj
und daraus B2 B
B
IA
+ 4/4
Yt Il Il
I H-
2-4AC
und
XPa+\ X2Qn A X2q„ = Xpn + AXp. Y2+ K2,
Außerdem ist X2Qn^ A X <7„+| -2 Yn)
5 AX2q
K0+,
A2X2q = κ2υΙλ
AX2q = K2Yl+1 + AX2q
10 A X2q„ 2 Kn),
^K3, ' *«+I)ι
15 X2Qn
dann ist
,+AT3,
und = (K2Yl+1 +AT3) -(K2Yl + K3),
20 = -2/T2 .,+J2A-V
= AT2 (1 -
25 und
= X2Qn-S
= AT2(I -
30 = AT2(I -
= 2 AT2
- Δ X2q„
(9)
(10) (11)
Dem Kegelschnittgenerator müssen die Anfangswerte für X2q, A X2q,A 2X2q, Xp und A Xp zugeführt werden. Aus den oben gegebenen Ableitungen erhält man A 2X7q - 2 K2 und A Xp = - K 1, außerdem ist
Xp, (Xp Anfangswert) = X7 = - ■$- YT .
J. A
Diese Werte werden jedoch alle relativ zum Mittelpunkt der Ellipse abgeleitet. Der tatsächlich erforderliche w Wert von A-(AVt) ist
X\tirm.pv\KT
Xac τ = XpΙ + X\
wobei XiUTTHiPLSKT^ Ä'-Koordinate des Mittelpunktes des Kegelschnittes ist. Die Werte X2q und A X2q können durch Lösung der ursprünglichen Gleichungen mit Yn - YT gefunden werden. Somit wird
*■'■
50 und
Der berechnete Wert von yr ist jedoch der theoretische Wert bei dem Kegelschnitt ganz oben und ganz unten. Der Anzeigegenerator muß jedoch mit den Werten dieser Größen an denjenigen Punkten arbeiten, die einen Schnittpunkt mit den Bildschirmzeilen liefern. Soll der Algorithmus genau sein, dann sollten diese Werte Schnittpunkte in der Mitte zwischen Bildschirmzeilen darstellen. Somit werden X2q, und A X2q, mit einem Wert von Y gleich K7 berechnet, der gleich dem ganzzahligen Anteil von Y1 - 1/2 ist.
Abrundungsfehler
Zur Bestimmung der in dem Kegelschnittgenerator erforderlichen Genauigkeit zum Erzielen einer ± 1-Genauigkeit in der A"-Position wurde die folgende Analyse durchgeführt. Damit die Genauigkeit von ± 1 erreicht wird, muß der Wert von Xp ± Xq innerhalb von ± 1/2 liegen, da der Digitalisierungsfehler ± 1/2 beträgt. Somit müssen als Xp und Xq innerhalb ± 1/4 liegen.
10
Es ist
Xpn = Xpn-I+Δ Xp
und dies ist äquivalent s
Xpn = Xp1 ^ {n-\)Δ Xp
wobei Xp1 der Anfangswert von Xp ist und n gleich der Anzahl der Iterationen. Der Fehler beim Wert von A Xp
hat einen maximalen Fehler Xpn zur Folge, wenn η ein Maximum ist. Somit wird io
Xp„max ± Fehler ΧρΒιηαχ = Xp1 + Fehler Xp1 + (n„ax -l)AXp± {nmcx - 1) Fehler Δ Xp
und
Fehler Xp„max = ± Fehler Xp1 ±{nmax - 1) Fehler δ Xp
Da lediglich diejenigen Werte des Kegelschnittes berechnet werden, die zwischen Obergrenze und Untergrenze des sichtbaren Bereiches des Güters liegen, ist nmax = 210 und
Fehler Xp„max = ± Fehler Xp1 ± (210 - 1) Fehler A Xp.
Setzt man den Fehler = 1/4, dann erhält man
2"2 = ± Fehler Xp1 ± (210 - 1) Fehler Δ Xp, 25
und damit
Fehler AXp -±^, ^
genau sein. 35
Dies wird dadurch erreicht, daß man Δ Xp bis auf eine Genauigkeit von 2~12 berechnet und für die ursprünglich in dem Kegelschnittgenerator eingespeicherten Werte auf 2"" abrundet.
Der Wert von Xp1 braucht nicht derartig genau zu sein. Wie die nachfolgende Analyse von Xq zeigt, tritt der
Maximalfehler in Xq dann auf, wenn η = 1/2 nmax ist. An diesem Punkt ist der Fehler in Xpn, der sich aus dem
Fehler in Xp ergibt, lediglich gleich dem halben Fehler Xp„maK oder ±2"'. Um an diesem Punkt Xpn auf ± 1/4 40 genau zu berechnen, muß Xp1 nur bis auf ±2~3 genau sein, was sich dadurch erreichen läßt, daß man Ä]p,-auf 2"3
Genauigkeit berechnet und auf 2~2 abrundet.
Damit Xq gleich ± 1/4 sein kann, muß der Wert von x2q bis auf ± 1/2 Xq + 1/16 richtig sein.
Diese Werte von X2q„ werden wie folgt abgeleitet:
X^ =X2Qt,
X2q2 = X2q, + X2qt = X2q> + Δ X2q,,
X1Ql = X2Qi + Δ X2q2 , 50
A X2q2 = A X2qi + A 2X2q .
Somit wird
X2 qi = X2qt + 2A X2q: + A 2X2q
und 60
X2q4 = X2qy + Δ X2q} ,
wobei
65 A X7qy = A X2q7 + Δ 2X2q = Δ X2q, + 2 Δ 2X2q .
Somit wird
X2qi = X2q, + 3 Δ X2q, + 3 A 2X2Q
X2q} = X2q, + 4 A X2q, + 6A 2X2q .
Im allgemeinen ist
X2q„ = X2q, + (ι, - 1) Δ X2 q,+ ίίζΜίζΆ A> χΐ q.
Der Fehler in X2 q„ ist
Fehler X2 qn = ± Fehler X2 q, ± (n - 1) Fehler A X2 q, ± Fehler A2 X2 q.
Der Fehler in X2 q, kann dadurch klein gemacht werden, daß man ausreichend viele Bits von X2 q, vorsieht. Wenn dies getan wird, dann ist
Fehler X2 q„ ^ ± (n - 1) Fehler A X2 q, ± Fehler A2 X2 q.
Da sich die Fehler aus der Abrundung ergeben, können sie sich gegenseitig addieren, und der Maximalfehler tritt dann auf, wenn η = «,„„, ist, das, da das iterative Verfahren nur innerhalb der Höhenabmessungen des sichtbaren Bereiches des Bildschirmes durchgeführt ist, = 210 ist.
Da der Maximalfehler in X2q„ dann auftritt, wenn η ein Maximum ist, dann bedeutet dies, daß der größte Fehler an der Unterseite des Kegelschnittes zu erwarten ist. Da der Wert von X1q„ an diesem Punkt ein Minimum ist, so ist es wünschenswert, daß der Maximalfehler im M ittelpunkt des Kegelschnittes auftritt, wenn XJq„ ein Maximum ist. Dies kann dadurch erzielt werden, daß man einen anfänglichen Fehler in Δ X2q, einführt, der den durch A 2X2q an der Unterseite der Ellipse verursachten Fehler ausgleicht.
(n - 1) Fehler A X2 q, = Fehler A2 X2 q
Fehler Δ X2 <?, = Fehler Δ2 X2 q.
Eine Möglichkeit, dies zu erreichen, besteht darin, A 2X2q mit größerer Genauigkeit zu berechnen als benötigt wird, so daß man dann den Wert des Fehlers von Δ 2X2q kennt. Dies könnte dann mit (n - 2)/2 multipliziert und von Δ 2X2q, abgezogen werden. Eine weitere Möglichkeit, dies zu erreichen, besteht darin, den Wert von Δ X2qt dadurch zu berechnen, daß man
berechnet und das als A X2 q, nimmt. Damit wird sichergestellt, daß dann, wenn η = 2 YT ist (d. h. am unteren Ende der Ellipse), die Werte von
(«-1HI.-2)
und (n - 1) AX2 q, gleich sind. Der Maximalfehler tritt nunmehr in dem Kegelschnitt auf halbem Weg nach unten auf:
Fehler X2 n q„ = ± Fehler A2 X2 q, ± Fehler Δ2 X2 q< Differenziert man und setzt dann gleich Null, so erhält man:
0 = Fehler A2 X2q, - Fehler A2X2 Qi
oder
- [2 Yt + 1]
1st Y7- groß, dann wird η Υτ. Zur Bestimmung des Fehlers an diesem Punkt wird die Fehlergleichung mit η gleich YT aufgelöst, und es wird
Fehler A X2 q, = Fehler A2X2q.
Fehler X2 q„ =(YT-l) Fehler A2 X2 q - , Feh,er A2 X2 q - ίϊτΖ}1(ϊ
10
Da YTmax = 29 ist, wird der Fehler in X2q„« 217 x Fehler A 2X2q.
Es sollte hierbei angemerkt werden, daß A 2X2q nicht unter Verwendung einer Abrundung spezifiziert werden kann. Würde man eine Abrundung vornehmen, dann wäre der Wert von A2X2q größer als er tatsächlich ist, was zur Folge hätte, daß X2q„ zu früh einen negativen Wert annimmt und, je nach Ausgestaltung der Schaltung, den Kegelschnitt zu früh abschneiden oder einen negativen Wert erzeugen würde, was bei der Berechnung der Quadratwurzel zu inmaginären Werten führen würde.
25
Ausführung
In der tatsächlich ausgeführten Schaltung werden die Werte von A 2X2q und A 2X2q, bis auf 2" genau angegeben. A 2X2q wird tatsächlich auf 2~20 berechnet. Der Wert von A Xq] wird auf 2~20 genau berechnet, so daß dieser Fehler klein sein wird. Der Fehler wird dann gefunden als
Fehler X2 g„ = ± Fehler *g,± (η-1) Fehler Λ *2g,± Fehler A2X2q, wobei
Fehler X2 q„ = ± Γ» ± (, - 1) 2"2> ±
ist und der Fehler bei η = YT = 2q (Maximalfehler) ist:
Fehler X2 qn = ± 2"" ± (29 -1) 2"21 ±
= ±2"" ±2"12±—-
Der sich aus dem Fehler in X2q ergebende Fehler von Xq ist eine Funktion des Wertes von Xq. Da der Maximalwert von Fehler Xq\ eine Konstante ist, ist der Fehler Xqn ein Maximum, wenn Xqn ein Minimum an dem Punkt ist, an dem Fehler X2q„ ein Maximum ist. Der Kleinstwert der kleinen Achse eines Kegelschnittes ist 3 (da ein Kegelschnitt mit einer Nebenachse von 2 als ein Vektor erzeugt werden kann), daher erhäli man den kleinsten Wert von Xqn dann, wenn Y = YT 1,5 ist und X2q„ = 2,25. Der Fehler ist dann X2qn « 2"3 und damit
2,25 ±2~3 = 1,5 ±1/16,
d. h., daß der Fehler in Xq, der durch den akkumulierten Fehler in X2q verursacht wird, im schlimmsten Fall ± 1/16, im allgemeinen aber sehr viel kleiner ist. Der maximale, in der Quadratwurzelschaltung auftretende Fehler tritt dann auf, wenn Xqn groß (29) ist, an welchem Punkt der durch Fehler X2qn in Xqn verursachte Fehler sehr klein ist, so daß der Quadratwurzelschaltung der Fehler (± 1/4) in Xq zugeordnet werden kann.
Quadratwurzelgenerator 442
Zur Berechnung der Quadratwurzel verwendet man einen Festwertspeicher mit Tabellensuchvorgang in Verbindung mit einem bei jedem Schiebetakt den Speicherinhalt um 2 Bit verschiebenden Schieberegister SR 1 434. Die 24 höchstwertigen Bits von Xq1 werden in das Schieberegisters/? 1434 der Fig. 6 geladen. Ist eines der beiden höchstwertigen Bits eine Eins, dann wird eine Verschiebung nach rechts durchgeführt. Ist dies nicht der
Fall, dann wird eine Reihe von Linksverschiebungen (jeweils 2 Bits) so lange durchgeführt, bis entweder eine 1 in den Bitpositionen 2'8 oder 219 festgestellt oder bis fünf Verschiebetakte durchgeführt sind. Man sieht, daß nach fünf Schiebetakten der ganzzahlige Teil von Xq2 in eine Position verschoben ist, in der die Quadratwurzeltabelle 436 adressiert werden kann. Die Quadratwurzel wird gezogen und in das Ausgangsschieberegister 438 geladen, das die gleiche Anzahl von Schiebeschritten in der entgegengesetzten Richtung, jedesmal um 1 Bit, ausführt.
Das Ausgangssignal des Quadratwurzelgenerators 442 ist eine 12-Bitzahl, bei der 2'2 zum tatsächlichen Wert der Quadratwurzel des Eingangssignals hinzuaddiert ist. Wenn somit Xq'2 (wobei Xq' die Quadratwurzel des abgerundeten Wertes von Xq2 ist, das in den Bitpositionen 29 bis 2" des Eingaberegisters434 liegt) das Eingangssignal für das Schieberegister SR1 434 darstellt, dann ist das Ausgangssignal Xq' + 2'2 oder Xq' + 1/4. 1/4 wird deswegen addiert, damit der Quadratwurzelgenerator 436 ohne Abrundung von Xq2 arbeiten kann. Der Grund dafür ist folgender:
Für Kegelschnitte ist der Maximalfehler in Xq'2 gleich 28 + 27 + 26 + 25 - 29. Das stellt den größten prozentualen Fehler dar, wenn Xq'2 = 218 ist, da jede Zahl, die größer ist als 2l8, einen Schiebvorgang zur Folge gehabt hätte. Damit nunmehr Xq innerhalb der geforderten Grenzen von ± 1/4 liegt, muß für diesen schlechtesten Fall das Ausgangssignal des Quadratwurzelgenerators 436 ± 1/4 sein.
Für diesen Fall liegt der tatsächliche Wert von Xg2 zwischen Xq'2 und Xq'2 + T. und der tatsächliche Wert von V Xq2 liegt zwischen τ/Xq'2 = Xq' = 2' und VXq'2 + 29. Der Wert VXq'2 + 29 ist angenähert gleich Xq' + 1/2 = 2" + 2'1, da (Xq' + 1/2)2 = Xq'1 + Xq' + 1/4 ist.
Der tatsächliche Wert von VXq2 liegt daher zwischen 29 und 29 + 2~'. Das Ausgangssignal der Quadratwurzeltabelle 436 ist Xq' + 2'2 = 2*1 + 2 , so daß der dafür zulässig erachtete Fehler ± 1/4 eingehalten ist.
Wenn der Wert von Xq2 kleiner wird, dann wird auch der prozentuale Fehler kleiner. Wenn beispielsweise der Wert von Xq'2 = 216 ist, dann ist der Abrundfehler nur 27 und Vxq12'= 28 Xq'2 + 27 = 28 + 1/4.
In diesem Fall liegt das Ausgangssignal des Quadratwurzelgenerators 442 nach Verschiebung bei Xq' + 1/8, und dies liegt tatsächlich innerhalb 1/8 des tatsächlichen Wertes.
Diese Genauigkeit gilt für alle Werte von Xq2, mit Ausnahme solcher Werte von Xq'2, die kleiner sind als 2 ~', da
dies kein Eingangssignal für die Quadratwurzeltabelle 436 liefern würde. Statt eines weiteren Schiebeimpulses
zur Prüfung dieser Bits ist eine besondere Schaltung vorgesehen, die zwangsweise das Ausgangssignal auf 2"'
einstellt, wenn Xq'2 = 2'2 ist und somit das Ausgangssignal auf 2 ~2 zwingt, wenn Xq'2 kleiner als 2~2 ist. Dies gilt, da folgende Bedingung gilt:
Wenn Xq'2 = 2~2, dann ist X2qmax - 2"' und
X2q„„„ =2-2,
Vr* =. 0,707
Vf^ =2"',
und da das Ausgangssignal zwangsläufig 2H ist, ist die Forderung nach den Grenzen ± 1/4 eingehalten.
Ist Xq'2 = 0, dann ist X2qmax ^2'2 und
*2<7m,„ =0,
45
vT1" =2"',
Vfi" =0,
so und da das Ausgangssignal zwangsläufig auf 2'2 gehalten ist, wird die Forderung nach den Grenzen ± 1/4 erneut eingehalten.
Die vorangegangene Analyse wurde unter der Annahme durchgeführt, daß die Quadratwurzel von Xq2 auf ± 1/4 genau sein muß und den Fehler zwischen dem tatsächlichen und dem theoretischen oben analysierten Wert von Xq2 vernachlässigt. Dies kann durch eine Überprüfung dieser Fehler gerechtfertigt werden. Zunächst
tritt in der Quadratwurzelschaltung ein maximaler Fehler dann auf, wenn Xq2 einen großen Wert hat, was in der Mitte des Kegelschnittes der Fall ist (n = YT). Dies ist außerdem der Fall, wo der maximale Fehler in dem iterativen Verfahren auftritt. Dieser Wert ist jedoch sehr klein im Vergleich mit dem Wert von Xq2 (2~3 verglichen mit 2+l8) und kann daher vernachlässigt werden. In diesem Punkt ist der Fehler in Xp nur 1/2 des Maximalfehlers oder ± 1/8, so daß der kombinierte Fehler in Xp + Xq kleiner ist als 1/2. Der andere Maximalfehler in der Qua-
dratwurzelschaltung tritt dann auf, wenn Xq2 klein ist, was an dem oberen und unteren Ende der Ellipsen der Fall
ist. Am oberen Ende der Ellipse ist η sehr klein, so daß der Fehler in Xp und Xq2 auch klein ist. Wenn man zwangsweise die Fehler gegeneinander kompensiert, dann ist der Fehler in Xq2 an der Unterseite der Ellipse
ebenso klein (kleiner als 2"9) und kann vernachlässigt werden.
Die einzigen Werte von Xq2, die in den Bitpositionen 220 und 221 eine »1« habsn, finden sich in dem festliegenden oder sich ausdehnenden Bereich von Kreisen eines Zeigergenerators. Der Fehler wird in diesem Fall größer sein, da die Abrundung bei einer größeren Zahl erfolgt. Unter Verwendung der gleichen Analyse berechnet sich der kleinste Wert von Xq'2 zu 220, und der Fehler ist angenähert 2" und
AV = 2'\
VXq'2 + 2" =2"' + I .
Nach Verschiebung ist das Ausgangssignal des Quadratwurzelgenerators 442 5
Xq'+ 1/2 = 210+ 1/2,
so daß das Ausgangssignal der Quadratwurzelschaltung innerhalb von ± 1/2 des tatsächlichen Wertes von Xq liegt. Da für Kreise im iterativen Verfahren weder für Xp noch Tür Xq2 ein Fehler auftritt, kann die gesamte io Genauigkeit von ± 1/2 in den Quadratwurzelgenerator verlegt werden und der Gesamtfehler bei ± 1 gehalten werden. Kreise weisen keine Fehler auf, da Δ Xp null ist (keine Rotation und Δ Xq2 und Δ 2Xq2 ganzzahlig sind (keine Rotation und a2 = b2 = Radius2).
Es sei darauf verwiesen, daß Kegelschnitte mit Achsen, die größer sind als 2" mit einem maximalen Fehler von ungefähr ± 1 - 1/8 an den am weitesten auseinanderliegenden Punkten und einem Fehler von weniger als 15 ± i fur die mcisien Funkle erzeugt werden können.
Das Taktimpulsdiagramm der Fig. 4 zeigt die mögliche Taktgabe bei der Erzeugung eines Kegelschnitts mit fünf Verschiebetakten auf jeder Seite des Quadratwurzelgenerators 442 und kann in bezug auf die im Kegelschnittgenerator benötigte Zeit als schlechtester Fall angesehen werden. Das Taktimpulsdiagramm zeigt, daß 42 Taktimpulse erforderlich sind, 42 x 23,437 = 984 Nanosekunden. 20
Daher beträgt bei einer Zeilendauer einer waagerechten Zeile von 30,989 Mikrosekunden die maximale Anzahl von Kegelschnittpunkten gleich
30 989
= 31 Kegelschnittpunkte (2 Schnittpunkte je Kegelschnitt) je Zeile.
Es sei darauf verwiesen, daß die hier beschriebene Schaltung sich leicht so einrichten läßt, daß Teile von Kreisen oder Ellipsen oder offene Kegelschnitte wie Parabeln oder Hyperbeln erzeugt werden können.
Hierzu 6 Blatt Zeichnungen 30

Claims (3)

Patentansprüche:
1. Digitaler Videogenerator für eine zeilenweise Darstellung eines Kegelschnittes auf einem Fernsehbildschirm mit einem an einer Datenverarbeitungsanlage angeschlossenen Wiederholungspuflerspeicher (28), an dessen Ausgang (29) ein schneller Zwischenpufferspeicher (38) angeschlossen ist, der ausgangsseitig wiederum mit einem Vektorgenerator (42) und dazu parallel mit einem Symbolgenerator (40) verbunden ist, deren Ausgänge (182,183,182,184) wiederum über einen Teilrasterspeicher (44) an einem Eingang eines Videomischer-Verstärkers (46) angeschlossen sind, dessen anderer Eingang zur Synchronisation und Taktgabe (Ltg. 190) ansteuerbar ist, wobei die Ausgänge des Vektorgenerators und des Symbolgenerators außerdem über eine Leitung (202) mit einem weiteren Eingang des Zwischenpufferspeichers (38) verbunden sind, d a d u r c h g e k e η η ζ e i c h η e t, daß am Ausgang des Zwischenpuflerspeichers (38) ein Kegelschnittgenerator (410) angeschlossen ist, dessen Ausgang gemeinsam mit je einem weiteren Ausgang des Vektorgenerators (42) und des Symbolgenerators (40) an der nach dem Zwischenpufferspeicher (38) fuhrenden Leitung (202) angeschlossen und zur Umwandlung der eingangsseitig zugeführten digitalen Datenworte (Fig. 2) im
is Zusammenwirken mit dem Vektorgenerator (42) in digitale Videodaten über Leitungen (412,414) mit dem Vektorgenerator (42) zur Zuführung de aktuellen Abszissenwerte (A" und A X) verbunden ist, daß dabei der Kegelschnittgenerator (410) eingangsseitig ein aus mehreren Abschnitten bestehendes erstes Register (418, 420,422, 424,426,428) zur Aufnahme der vom Zwischenpufferspeicher (38) kommenden Werte (Xq*, Xp, Δ Xp, Δ2 Xq2, Δ Xq1 und Δγ) aufweist, wobei ein erster Abschnitt (418) ausgangsseitig außerdem an einem Quadratwurzelgenerator (442) angeschlossen ist, daß eine erste Addierstufe (464) über ein Register (454) für den Wert Xqn mit dem Ausgang des Quadratwurzelgenerators (442) und über ein weiteres Register (456) für den Wert Xpn mit einem weiteren Abschnitt (420) des eingangsseitigen Registers zur Bildung der Summe Xp + Xq = Xn und der Differenz Xp - Xq = X'„ als Ort der Schnittpunkte des Kegelschnitts mit der n-ten Bildschirmzeile verbunden ist, daß ferner eine zweite Addierstufe (452) zur Berechnung neuer Werte von Xp,
Xq2 und Δ Xq2 durch Addition von Δ Xp + Xp, von Δ Xq2 + Xq2 und von Δ2 Xq1 + Δ Xq vorgesehen ist, daß außerdem eine dritte Addierstufe (468) über ein Register (458) Tür den Wert Xp„+\ mit dem Ausgang des Quadratwurzelgenerators (442) und über ein weiteres Register (460) für den Wert Xp„+\ mit dem weiteren Abschnitt (420) des Registers zur Bildung der Summe Xn+1 = Xpn+1 + Xqn+] bzw. der Differenz X n+ 1 = Xpn+\ - Xqn+I als Ort der Schnittpunkte des Kegelschnitts mit der (n + l)ten Bildschirmzeile verbun-
den ist, und daß für die Rückübertragung der errechneten neuen Werte xp, xq2, Axq2 nach dem Zwischenpufferspeicher (38) eine Eingangs-Torschaltung (448) über die Leitung (202) an dessen zweitem Eingang angeschlossen ist.
2. Videogeneratorschaltung nach Anspruch 1, dadurch gekennzeichnet,
daß der Quadratwurzelgenerator (442) ein erstes an dem Abschnitt (418) des Registers angeschlossenes Schieberegister (434) und für die ersten η höherwertigen Bits des ersten Schieberegisters einen daran angeschlossenen Festwertspeicher (436) enthält, in dem die auf die π höherwertigen Bits abgerundete Quadratwurzel der in dem Schieberegister (434) liegenden Zahl abgespeichert ist, daß ein zweites Schieberegister (438) an dem Datenausgang des Festwertspeichers (436) angeschlossenen und ausgangsseitig mit der ersten Addierstufe (464) zur Aufnahme der Quadratwurzel verbunden ist,
daß ferner eine Verschiebesteuerung (440) mit den Steuereingängen der beiden Schieberegister (434,438) verbunden ist, wobei diese Steuerung einmal den Speicherinhalt des ersten Schieberegistersjeweils η mal je um zwei Bits je Schiebetakt so lange verschiebt, bis ein 1-Bit eine der beiden höchstwertigen Bitpositionen besetzt, bevor der Festwertspeicher mit den so verschobenen Daten adressiert wird und außerdem den Speicherinhalt des zweiten Schieberegisters η mal je um ein Bit verschiebt, so daß die aufgerufenen Daten die niedrigstwertigen Bitpositionen einnehmen, und die Quadratwurzel von Xq2 in der kürzesten Zeit bei kleinstem Abrundungsfehler abrufbar ist.
3. Videogeneratorschaltung nach Anspruch 1 und 2, dadurch gekennzeichnet,
daß ein zweites und drittes Register (480,482) zur Speicherung der Werte von Xn bzw. X'„ mit dem Ausgang der ersten Addierstufe (464) verbunden sind, daß die zweite Addierstufe (452) mit ihrem Addend- und Augend-Eingang am ersten Register (418,420,422,424,426) und mit ihrem Ausgang mit einer am Eingang des ersten Registers angeschlossenen Rückkopplungsleitung zur Berechnung der Werte
A X2qn+] = AX2q„ + A2X2q und
Apn+1 = Apn + AXp
verbunden ist, die den Schnittpunkten des Kegelschnittes mit einer zwischen der n-ten und der n+ 1-ten BiIdschirmzeile liegenden Zeile entsprechen, wobei die zweite Addierstufe (452) die neuen Werte von X2qn+],
A X2qn+] und Apn+I an den Eingang des ersten Registers (418, 420, 426) überträgt,
daß ein viertes und fünftes Register (474,472) mit dem Ausgang der dritten Addierstufe (468) zur Speicherung der Werte A"„+1 bzw. X'„+] verbunden sind,
daß am zweiten und vierten, dritten und fünften Register (480 und 474,482 und 472) je eine Vergleichsstufe (484, 486) angeschlossen ist, die einen daran angeschossenen Multiplexer (488) so steuern, daß jeweils der kleinere Wert von Xn und Xn bzw. A"„+i und X'„u abgegeben wird,
daß dabei eine vierte Addierstufe (490) an den Ausgängen des Multiplexers (488) zur Berechnung des Ursprungs und der Länge der Rasterzeilen längs der /Men Abtastzeile und der Darstellung der entsprechen-
den Schnittpunkte mit der Ellipse angeschlossen ist, und
daß dabei ein Ausgang (412) des Multiplexers (488) für den Wert A" und der Ausgang (414) der vierten Addierstufe (490) für den Wert Δ X an zwei weiteren Eingängen des Vektorgenerators (42) angeschlossen sind.
Die Erfindung betrifft einen digitalen Videogenerator der im Oberbegriff des Patentanspruchs 1 -bezeichneten Art.
Der hifir beschriebene Kegeischnittgenerator wird als Untersystem in einer Videogeneratorschaltung für die Erzeugung von dynamischen digitalen Darstellungen auf Fernsehschirmen benutzt, wie sie in der DE-OS 25 25 509 der Anmelderin beschrieben ist. Diese Videogeneratorschaltung wandelt willkürlich auftretende Datensignale, die graphische Muster darstellen, in eine Zeitfolge von Videosignalen für eine zeilenweise Darstellung auf einem Fernsehschirm um. Die Schaltung besteht aus einem der Aufnahme von Datensignalen dienenden Pufferspeicher, der so aufgebaut ist, daß die Datensignale zu Gruppen zusammenfaßt, die entsprechend IS den für das darzustellende Muster jeweils äußersten Abtastzeiienpositionen geordnet sind. Ein Zwischenpufferspeicher ist mit einem ersten Eingang am Ausgang dieses zum Ordnen und Sortieren dienenden Pufferspeichers angeschlossen und speichert die so geordneten Datensignale einmal für jedes Anzeigefeld ein, bevor dieses so dargestellte Muster angezeigt wird und ^ibt dann die geordneten Datensignale synchron mit der Zeilenabta- stung der Anzeigevorrichtung ab. Ein graphischer Mustergenerator ist am Ausgang des Zwischenpufferspeichers angeschlossen und decodiert die von diesem kommenden, geordneten Datensignale und erzeugt auf einer ersten Ausgangsleitung Komponenten des dargestellten Musters, die längs der abzutastenden Zeile liegen. Ein Teilrasterspeicher ist mit der ersten Ausgangsleitung des graphischen Mustergenerators verbunden und speichert die Komponenten des dargestellten Musters, die auf einer abzutastenden Zeile liegen, ab. Der graphische Mustergenerator modifiziert die decodierten, geordneten Datensignale und ermittelt dabei die waagerechte Koordinate für einen Schnitt des dargestellten Musters mit der nächsten abzutastenden Zeile und gibt das so modifizierte Datensignal über eine zweite Ausgangsleitung nach einer zweiten Eingangsleitung zum Abspeiehern im Zwischenpufferspeicher ab. Der graphische Mustergenerator läßt jedoch die Abgabe eines modifizierten Datensignals auf der zweiten Ausgangsleitung aus, wenn keine Komponenten des Musters mit nachfolgenden, in dem Feld abzutastenden Zeilen der Anzeige zum Schnitt kommen.
Bisher bekannte Kegelschnittgeneratoren haben Rekursivverfahren zur schrittweisen Erzeugung eines elementweise darzustellenden Kegelschnittes benutzt. Obgleich dies für asynchrone Plotter brauchbar erscheint, ist doch diese Art der Erzeugung von Kegelschnitten für rasterartige Darstellung nicht brauchbar, da die Zeit, die zur Erzeugung eines Kegelschnittes benötigt wird, proportional der Anzahl der auf eine Rasterzeile fallenden Elemente ist. Man benötigt daher dringend einen verbesserten Kegeischnittgenerator, der alle Elemente auf einer Rasterzeile zur gleichen Zeit erzeugt und daher für eine Fernsehschinnwiedergabe brauchbar ist.
Diese ganz allgemein der Erfindung zugrundeliegende Aufgabe ist gemäß den Angaben des kennzeichnenden Teils des Patentanspruchs 1 gelöst.
Eine auf einem Bildschirm darzustellende Ellipse (Fig. 7a) zeichnet sich durch eine Anzeigeachse mit einer inversen Steigung A XqIΔ Kaus, die die vertikalen Extremwerte der Ellipse schneidet, mit einer inversen Änderungsgeschwindigkeit der Neigung der Ellipse von Δ 2Xq2ZA2 Y, wobei der senkrechte Abstand der Rasterzeilen A Y beträgt. Die Datensignale werden dem Kegeischnittgenerator mit den Werten für die Konstanten Xp und A1X1q und Werten für Xq2, A X2q und A Xp an den äußersten Enden der Ellipse zugeführt, wobei Xq der Horizontalabstand zwischen der Anzeigeachse und der Ellipse ist. Der Kegeischnittgenerator enthält ein Register das mit dem Ausgang eines Zwischenpufferspeichers verbunden ist, der die Werte A Xp, A 2X2q, Xp, Xq2, A Xq2 und A K enthält. Ein Quadratwurzelgenerator ist mit einem Eingang an dem Register angeschlossen und berechnet die Quadratwurzel von Xq2. Eine erste Addierstufe ist mir dem Addendeingang am Ausgang des Quadratwurzelgenerators angeschlossen, während der Augendeingang an dem Registerabschnitt Tür Xp angeschlossen ist, so daß diese erste Addierstufe die Summe Xp + Xq und die Differenz Xp - Xq berechnet, während die Zeile auf einen Schnitt mit der Ellipse abgetastet wird. Ein Videosignalgenerator ist mit einem Eingang über einen Partialrasterspeicher zur Erzeugung eines Videosignals an den Punkten längs der abzutastenden Zeile, die den Werten Xp + Xq und Xp - Xq entsprechen, an der ersten Addierstufe angeschlossen. Eine zweite Addierstufe mit einem Addend- und einem Augendeingang ist an dem Register angeschlossen und addiert die Werte A Xp mii Xp zur Ermittlung eines neuen Wertes vcn Xp sowie A Xq2 zu Xq2 zur Ermittlung eines neuen Wertes Xq2 und A 2.V<r zu A X2q zur Ermittlung eines neuen Wertes von A Xq2. Eine an den Zwischenpufferspeicher angeschlossene Ausgangstorschaltung ist eingangsseitig mit der zweiten Addierstufe verbunden und hat einen Rückkopplungsausgang, der am Eingang des Zwischenpufferspeichers angeschlossen ist, um dadurch das mit den neuen Werten für Xp, Xq2 und A Xq2 gebildete Datenwort wiederum in dem Zwischenpufferspeicher einzuspeichern. Die Ellipse wird als Folge von Vektorsegmenten durch interaktive Operation des Kegelschnittgenerators dargestellt.
Weitere Einzelheiten der Erfindung finden sich in den Unteransprüchen.
Die Erfindung wird nunmehr anhand von Ausführungsbeispielen in Verbindung mit den beigefügten Zeichnungen im einzelnen beschrieben.
In den Zeichnungen zeigt:
Fig. 1 einen Videogenerator, bei dem der Kegeischnittgenerator eingesetzt werden kann; Fig. 2 das Datenformat für einen Kegelschnitt, das als Eingangssignal für den Kegeischnittgenerator dient;
Fig. 3 im einzelnen einen Kegeischnittgenerator gemäß der Erfindung, der sich in dem Videogenerator der Fie. I einsetzen läßt:
DE2546506A 1974-12-03 1975-10-17 Digitaler Videogenerator für eine zeilenweise Darstellung eines Kegelschnittes auf einem Fernsehbildschirm Expired DE2546506C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/529,192 US3987284A (en) 1974-12-03 1974-12-03 Conic generator for on-the-fly digital television display

Publications (2)

Publication Number Publication Date
DE2546506A1 DE2546506A1 (de) 1976-06-10
DE2546506C2 true DE2546506C2 (de) 1985-05-23

Family

ID=24108896

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2546506A Expired DE2546506C2 (de) 1974-12-03 1975-10-17 Digitaler Videogenerator für eine zeilenweise Darstellung eines Kegelschnittes auf einem Fernsehbildschirm

Country Status (7)

Country Link
US (1) US3987284A (de)
JP (1) JPS5843747B2 (de)
CA (1) CA1053818A (de)
DE (1) DE2546506C2 (de)
FR (1) FR2293842A1 (de)
GB (1) GB1515385A (de)
IT (1) IT1041942B (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410621A (en) * 1970-12-28 1995-04-25 Hyatt; Gilbert P. Image processing system having a sampled filter
JPS578584A (en) * 1980-06-18 1982-01-16 Nippon Electric Co Video controller
US4384286A (en) * 1980-08-29 1983-05-17 General Signal Corp. High speed graphics
US4396988A (en) * 1980-12-31 1983-08-02 International Business Machines Corporation Method and apparatus for automatically determining the X-Y intersection of two curves in a raster type display system including a buffer refresh memory
US4692887A (en) * 1983-05-10 1987-09-08 Casio Computer Co., Ltd. Circle and circular arc generator

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3763363A (en) * 1970-03-24 1973-10-02 Yaskawa Denki Seisakusho Kk Numerical curve generator in a machine tool system
US3821731A (en) * 1971-06-07 1974-06-28 Ann Arbor Terminals Inc Graphics display system and method
GB1359674A (en) * 1971-06-11 1974-07-10 Elliott Brothers London Ltd Display system with circle drawing
GB1405884A (en) * 1971-10-27 1975-09-10 Gec Elliott Automation Ltd Raster-scanned display devices
US3781850A (en) * 1972-06-21 1973-12-25 Gte Sylvania Inc Television type display system for displaying information in the form of curves or graphs
US3792464A (en) * 1973-01-10 1974-02-12 Hitachi Ltd Graphic display device
US3848232A (en) * 1973-07-12 1974-11-12 Omnitext Inc Interpretive display processor

Also Published As

Publication number Publication date
DE2546506A1 (de) 1976-06-10
GB1515385A (en) 1978-06-21
CA1053818A (en) 1979-05-01
JPS5843747B2 (ja) 1983-09-28
FR2293842B1 (de) 1979-06-15
IT1041942B (it) 1980-01-10
JPS5177135A (de) 1976-07-03
FR2293842A1 (fr) 1976-07-02
US3987284A (en) 1976-10-19

Similar Documents

Publication Publication Date Title
DE3337677C2 (de) Einrichtung zum Ausfüllen einer Kontur
DE3202365C2 (de) Datenspeicher mit Fensterabtastung
DE2950712C2 (de) Einrichtung zur Erzeugung eines elektronischen Hintergrundrasters
DE2261141C3 (de) Einrichtung zur graphischen Darstellung von in einem Computer enthaltenen Daten
DE2503851C2 (de) Schaltung zur Ansteuerung einer Lichtquellenzeile zur gerasterten Reproduktion eines Bildes
DE2651543C2 (de)
DE2907992A1 (de) Verfahren zur behandlung von videodaten
DE3407983A1 (de) Mehrprozessorrechnersystem zum verarbeiten in einer hierarchischen datenstruktur definierter objektelemente zu einer farbigen abbildung
DE3036711C2 (de) Verfahren zum Verkleinern von grafischen Mustern
DE2311220A1 (de) Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung
DE2648596A1 (de) Verfahren und vorrichtung zur darstellung eines signalverlaufes auf einem aufzeichnungstraeger
DE2459106C2 (de) Schaltungsanordnung zur Darstellung von Zeichen auf einem Bildschirm mittels eines Kathodenstrahls
DE1929167A1 (de) Vergroesserungsschalen fuer Kathodenstrahl-Vorfuehrsysteme
DE4215094C2 (de) Bildverarbeitungsverfahren und -vorrichtung
DE1915758C3 (de) Verfahren und Schaltungsanordnung zur Erzeugung eines plastischen Bildes auf einer zweidimensional aussteuerbaren, rasterförmige Bildpunkte aufweisenden Sichtscheibe
DE2833175A1 (de) Signalgenerator fuer ein anzeigesystem
DE2546506C2 (de) Digitaler Videogenerator für eine zeilenweise Darstellung eines Kegelschnittes auf einem Fernsehbildschirm
DE2727627A1 (de) Paralleldekodiersystem und verfahren zur umsetzung von binaerdaten in videoform
DE2461651B2 (de) Zählvorrichtung zum Zählen von Mustern
DE2254913A1 (de) Verfahren zur erzeugung graphischer darstellungen aus parametrischen daten
DE2108801B2 (de) Anordnung für grafische Darstellung auf dem Bildschirm einer Kathodenstrahlröhre eines Standard-Fernsehsystems
DE3444400A1 (de) Anordnung zur bildlichen wiedergabe von informationen mittels bit-abbildung
DE3938366C2 (de) Vorrichtung zur Bilddatenreduktion für ein Anzeigegerät
DE1801381C3 (de) Datensichtgerät zum reihenweisen Anzeigen von Zeichen auf einem Bildschirm
DE3112656A1 (de) Verfahren und schaltungsanordnung zum umsetzen von zeichencodeworten in punktrasterschriftcodefelder

Legal Events

Date Code Title Description
OD Request for examination
8128 New person/name/address of the agent

Representative=s name: BOEHMER, H., DIPL.-ING., PAT.-ANW., 7031 AIDLINGEN

D2 Grant after examination
8380 Miscellaneous part iii

Free format text: PA 1 Z. 7: (182,183,182,184) AENDERN IN (182,183,184,185) Z. 26: WERT XP(PFEIL ABWAERTS)N(PFEIL ABWAERTS)(PFEIL ABWAERTS)+(PFEIL ABWAERTS)(PFEIL ABWAERTS)1(PFEIL ABWAERTS) AENDERN IN XQ(PFEIL ABWAERTS)N(PFEIL ABWAERTS)(PFEIL ABWAERTS)+(PFEIL ABWAERTS)(PFEIL ABWAERTS)1(PFEIL ABWAERTS) PA 2 Z. 38: ANGESCHLOSSENEN AENDERN IN ANGESCHLOSSEN Z. 45: NIEDRIGSTWERTIGEN AENDERN IN NIEDRIGSTWERTIGSTEN.

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee