DE3941550A1 - Schaltungsanordnung zum zerlegen einer auf einem computer-ausgabedisplay anzuzeigenden graphikfigur - Google Patents
Schaltungsanordnung zum zerlegen einer auf einem computer-ausgabedisplay anzuzeigenden graphikfigurInfo
- Publication number
- DE3941550A1 DE3941550A1 DE3941550A DE3941550A DE3941550A1 DE 3941550 A1 DE3941550 A1 DE 3941550A1 DE 3941550 A DE3941550 A DE 3941550A DE 3941550 A DE3941550 A DE 3941550A DE 3941550 A1 DE3941550 A1 DE 3941550A1
- Authority
- DE
- Germany
- Prior art keywords
- corner
- line
- corners
- line segments
- line segment
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Description
Die Erfindung befaßt sich mit Computersystemen und insbesonde
re mit einer Schaltungsanordnung zum Zerlegen von anzuzeigen
den oder zu bearbeitenden graphischen Figuren in Abschnitte,
die in einem Anzeigepuffer speicherbar sind.
Ein Hauptproblem bei der Verwendung von Computern für Graphik
anzeigen besteht darin, daß bei einem auf einer Kathoden
strahlröhre (CRT) anzuzeigenden einzelnen Rahmen graphischen
Inhalts die Speicherung einer Informationsangabe notwendig
ist, die für jede Position (Pixel) auf der Kathodenstrahlröhre
zur Anzeige gebracht werden soll. Bei großen und detaillierten
Anzeigen kann die Anzahl von Pixeln auf der Kathodenstrahlröh
re auf angenähert 1000 oder mehr in Horizontalrichtung und
entsprechend in der Vertikalrichtung ansteigen, was zu einer
Gesamtzahl von etwa 1 Million oder mehr Pixeln führt, die als
Informationen zu speichern sind. Bei einem bevorzugten System,
das eine Anzahl unterschiedlicher Farben auf der Kathoden
strahlröhre anzeigen kann, enthält jedes dieser Pixel acht
Digitalinformationsbits, welche die spezielle Farbausgabe
kennzeichnen. Dementsprechend müssen angenähert 8 Millionen
Informationsbits für jeden auf dem Bildschirm zur Anzeige zu
bringenden Rahmen gespeichert werden.
Nicht allein die Farbinformationen sind es, die für jedes
Pixel eines jeden Rahmens der Anzeige verfügbar gemacht werden
müssen, sondern bei der Erzeugung von graphischen Anzeigen
bedingt die übliche Methode der Bestimmung von Formen der
Figuren, daß zahlreiche Algorithmen auf geometrische Ecken
oder Scheitelpunkte dieser Figuren angewendet werden. Ge
schieht dies mit Hilfe der Software des Systems, verlangsamt
das Berechnen der Positionen für jeden anzuzeigenden Punkt und
die Bestimmung der an diesem Punkt anzuzeigenden Daten die
Systemgeschwindigkeit bis herab zu einem Punkt, bei dem be
stimmte Operationen, wie die Animation, praktisch unmöglich
werden. Aus diesem Grund wurden im Stande der Technik zahlrei
che Systeme vorgeschlagen, die unter Verwendung von Hardware-
Maßnahmen die Operationsgeschwindigkeit zu erhöhen suchten.
Ein Verfahren zur Erhöhung der Operationsgeschwindigkeit ist
die Verwendung von zwei Ausgangsrahmenpuffern und das Laden
eines Puffers, während der andere zur Wiedergabe abgetastet
wird. Mit Hilfe eines solchen Systems kann die Operationsge
schwindigkeit wesentlich erhöht werden. Dieser Vorteil wird
aber mit einer Verdopplung der für die Speicherung erforderli
chen Speicherkapazität erkauft.
Der Erfindung liegt die Aufgabe zugrunde, die Operationsge
schwindigkeit von vor allem graphischen Computersystemen ohne
beachtlichen Mehraufwand zu erhöhen. Insbesondere soll eine
Schaltung zum Zerlegen eines graphischen Objekts in Abschnitte
zur Verfügung gestellt werden, welche rasch bearbeitet und in
einen Anzeigepuffer eingegeben werden können, so daß graphi
sche Figuren unter Verwendung von vierseitigen (quadrilatera
len) Teilabschnitten erzeugt werden können.
Mit der erfindungsgemäßen Schaltung gelingt es außerdem, gra
phische Informationen genügend rasch zu verarbeiten und in ein
Anzeigeregister zu scannen, das von einem einzigen Puffer
sogar für die Anzeige von Trickzeichenprogrammen (animated
programs) verwendet werden kann.
Zu diesem Zweck sieht die Erfindung ein neuartiges Graphikaus
gabesystem vor, bei dem eine besondere graphische Figurendar
stellung benutzt wird. Hierdurch können extrem schnelle Gra
phikwiedergaben unter Verwendung nur eines einzigen Ausgangs
anzeigepuffers realisiert werden. Um die Verwendung von Hard
ware zur Implementierung der graphischen Hochgeschwindigkeits
darstellung zu ermöglichen, ist die der Hardware zur Verfügung
gestellte Information stets praktisch von der gleichen Art,
d.h. unabhängig von der Form und Musterung bei ihrer graphi
schen Wiedergabe. Das System basiert auf einer Definition
einer graphischen Figur (Form), bei der die Form als zusammen
gesetzt angesehen wird aus einer Anzahl von vierseitigen Teil
abschnitten. Die Schaltungsanordnung ist so vorgesehen, daß
sie vierseitige Bilder dadurch mit hoher Geschwindigkeit auf
bauen kann, daß nur Informationen bezüglich der vier Ecken
dieser Gebilde verarbeitet werden. Alle vierseitigen bzw.
viereckigen Gebilde können in gleicher Weise durch die graphi
sche Darstellungshardware verarbeitet und auf dem Bildschirm
zur Darstellung der gewünschten Form oder Figur rekombiniert
werden.
Die erfindungsgemäße Anordnung bricht diese Vierecke in Unter
abschnitte von Paaren aus Liniensegmenten auf, welche eine
trapezförmige Fläche aus auf dem Bildschirm anzuzeigenden
Abtastlinien überspannen. Die X- und Y-Koordinaten der beiden
Enden jeder Abtastlinie in jedem Trapezoid werden danach be
stimmt. Das System nimmt jene Rechteckkoordinaten und über
setzt sie in serielle Abtastlinien, welche in einem Rahmenpuf
fer gespeichert und danach auf der Anzeige wiedergegeben wer
den können.
Insbesondere ist die Erfindung auf eine Schaltungsanordnung
gerichtet, welche die vierseitigen bzw. -eckigen Figuren in
Unterabschnitte zerlegt, wobei die Unterabschnitte aus zwei
Linien- bzw. Zeilensegmenten des Vierecks (quadrilateral) und
der dazwischenliegenden Zone mit denselben Y-Werten gebildet
sind. In jedem Falle ist die Zone eine Trapezfläche oder eine
degenerierte Trapezfläche aus parallelen Y-Abtastlinien, wel
che die beiden Liniensegmente treffen und kann in geeigneter
Weise und rasch in einen Anzeigepuffer gescannt werden.
Die erfindungsgemäße Schaltungsanordnung ermöglicht eine ex
trem rasche Eingabe in einen Anzeigepuffer. Sie benutzt eine
Hardwareimplementierung einer 4 × 4-Matrix, welche die vier
Y-Werte der Ecken jedes Vierecks und die Vergleichswerte die
ser Ecken zur Erzeugung sofortiger Ausgaben der zerlegten
Unterabschnitte verwendet, so daß letztere verarbeitet und in
den Anzeigepuffer geschrieben werden können.
Die Implementierung bedingt ein Plotten in der Matrix nur für
die Y-Elementenvergleiche und bearbeitet alle vorstellbaren
Vierecke bzw. vierseitigen Formen mit nur einer Ausnahme, die
in Software implementiert werden muß. Sie optimiert das Ver
fahren, mit dessen Hilfe die die Ecken des Vierecks verbinden
den Liniensegmente zur Bildung der minimalen Anzahl ausgerich
teter Trapezflächen bestimmt werden.
In Weiterbildung der Erfindung wird die Zerlegung einer Form
derart optimiert, daß die Operationsgeschwindigkeit am höch
sten ist. Wenn beispielsweise eine zu zerlegende Form nur
teilweise in einem Ausschnittfenster liegt und sich teilweise
entweder oberhalb oder unterhalb des Ausschnittsfensters fort
setzt, kann die Operationsgeschwindigkeit dadurch weiter er
höht werden, daß der Teil außerhalb des Ausschnittsfensters
nicht bearbeitet wird. Dies läßt sich dadurch erreichen, daß
die Zerlegung entweder von oben nach unten oder von unten nach
oben stattfindet.
Die durch die erfindungsgemäße Schaltungsanordnung bewirkte
Zerlegung findet entweder von oben nach unten oder von unten
nach oben statt. Sie kann zum Zeichnen graphischer Darstellun
gen von oben nach unten oder umgekehrt benutzt werden, wodurch
die Systemgeschwindigkeit wesentlich vergrößert wird. Die
Operationsweise der Schaltungsanordnung ist unabhängig von der
Reihenfolge, in der die Ecken eingegeben werden, und sie be
handelt wiederholte Eckpunkte und andere degenerierte Fälle
von Vierecken derart, daß Punkte, Linien, Dreiecke und Vier
ecke alle in der gleichen Weise verarbeitet werden.
Im folgenden wird die Erfindung anhand von schematisch in der
Zeichnung dargestellten Beispielen näher erläutert. In der
Zeichnung zeigen:
Fig. 1 ein Blockschaltbild eines Graphikausgabesy
stems für einen Computer nach einem Ausfüh
rungsbeispiel der Erfindung.
Fig. 2 die Darstellung einer Form, die auf einem
Ausgabedisplay durch eine Reihe von Vier
ecken wiedergegeben werden kann;
Fig. 3A-D ein Verfahren zum Zerlegen eines Vierecks in
Teilabschnitte;
Fig. 4A-E eine Reihe von Zeichnungen zur Darstellung
des durch die Erfindung implementierten
Algorithmus; und
Fig. 5 ein Schaltbild eines Ausführungsbeispiels
der erfindungsgemäßen Anordnung.
Bei der Konstruktion von Computersystemen hat sich gezeigt,
daß die graphische Bildwiedergabe die Operationsgeschwindig
keit der meisten Maschinen beträchtlich vermindert. Der Grund
hierfür liegt in der Informationsmenge die der Computer für
jeden auf dem Ausgabedisplay wiederzugebenden Rahmen zu verar
beiten hat, sowie darin, daß die Verarbeitung dieser Informa
tionen für die Graphikwiedergabe die Zentraleinheit (CPU)
ungewöhnlich stark beschäftigt.
Das System, auf das die Erfindung gerichtet ist, erhöht die
Geschwindigkeit der Computer-Graphikdarstellung dadurch, daß
die meisten Operationen hardwaremäßig durchgeführt werden, so
daß die Informationen sofort zur Verfügung stehen. Um die
Hardware zur Implementierung der Graphikdarstellung einsetzen
zu können, hat es sich als notwendig erwiesen, daß die der
Hardware angebotene Information im wesentlichen unabhängig von
der auf dem Bildschirm zu zeichnenden Anzeige im wesentlichen
immer die gleiche sein sollte. Die Erfindung ist Teil eines
Systems, das die zu präsentierenden graphischen Bilder in
Vierecke bzw. Vierseiten aufbricht, die alle von der Graphik
hardware in der gleichen Weise verarbeitet und auf der Gra
phikanzeige zur Wiederherstellung der gewünschten Form rekom
biniert werden können. Die Erfindung nimmt diese Vierecke und
zerlegt sie weiter in Linienzeilensegmente, welche dieselben
Abtastlinien, die auch auf der Ausgabeanzeige präsentiert
werden, überspannen. Die Erfindung ist in der Lage, Punkte,
Linien und Dreiecke als degenerierte Vierecke zu behandeln, so
daß sie von der Hardware des Systems im wesentlichen in der
gleichen Weise wie andere Vierecke ohne Zeitverlust oder Rück
griff auf die CPU für eine spezielle Behandlung verarbeitet
werden können.
Fig. 2 ist eine Darstellung eines graphischen Gebildes, das in
zwei Vierecke 8 und 9 unterteilt ist, die bei individueller
Anzeige auf einem Computerausgabegerät die vollständige Ur
sprungsform erhalten. Obwohl das in Fig. 2 dargestellte Gebil
de von einfacher Form ist, ist es für den Fachmann klar, daß
Formen von praktisch unendlicher Kompliziertheit zur Darstel
lung gebracht werden können, wenn nur die einzelnen vierecki
gen Abschnitte schmal genug gewählt werden. Tatsächlich wurde
die Erfindung zur Darstellung dreidimensionaler Trickbilder
(animated shapes) sehr komplizierter Art benutzt.
Fig. 1 zeigt ein Blockschaltbild eines Graphikausgabesystems
10, das die Merkmale der Erfindung beinhaltet und in Verbin
dung mit einem Computersystem verwendet werden kann. Das Sy
stem 10 weist eine Bus-Interfacelogik 12 auf, die Informatio
nen bezüglich der gewünschten graphischen Form aus dem in der
Zeichnung nicht dargestellten Computersystem erhält. Die Bus-
Interfacelogik 12 erhält Informationen auf einer Adressenlei
tung, welche den besonderen Teil des Systems 10 bezeichnen, zu
welchem die Eingabe zu übertragen ist. Die Bus-Interfacelogik
12 erhält die aktuellen Daten, wie eine Farbbeschreibung eines
Vierecks, auf Eingangsdatenleitungen. Die Bus-Interfacelogik
12 erhält auch ein Steuersignal auf einer Steuerleitung, das
diejenige Art kennzeichnet, in der die übertragene Information
zu behandeln oder zu verarbeiten ist.
Beim Aufbau graphischer Darstellungen aus Vierecken, wie sie
die Erfindung vorsieht, enthält die Eingangsinformation die
Koordinaten des besonderen Ausschnittfensters, in welchem die
Information erscheinen soll, die Koordinaten (Ecken) des Vier
ecks und die jedes Viereck betreffenden Farbdaten. Bei dem
beschriebenen Ausführungsbeispiel der Erfindung wird eine
einzige Farbe für alle Pixel jedes zur Anzeige gebrachten
Vierecks benutzt. Die Farbinformation, die bei der Viereckwie
dergabe erscheinen soll, wird in einer Datenweg- und Speicher-
Interfacestufe 22 gespeichert. Die Ecken des Vierecks und die
Ausschnittfensterinformationen werden in einer Koordinatenein
speicherschaltung 14 gespeichert, welche für die Durchführung
von Vergleichen der einlaufenden Informationen geeignete Hard
ware, beispielsweise bekannte Register, Signalstärkenkompara
toren und Torschaltungen enthält.
Die durchgeführten Vergleiche umfassen den Vergleich jedes
X-Werts jeder Ecke mit jedem anderen X-Wert jeder der anderen
Ecken, den Vergleich jedes Y-Werts jeder Ecke mit jedem ande
ren Y-Wert jeder der anderne Ecken und den Vergleich jedes der
X- und Y-Werte der Ecken mit den Ecken des Ausschnittsfen
sters, in welchem die Information zur Anzeige gebracht werden
soll. Da dies durch Hardware geschieht, steht die Information
dem System 10 sofort und ohne Verlust an Systemtaktzeit zur
Verfügung.
Die die Ecken des Vierecks und des an der Koordinateneinspei
cherschaltung 14 verfügbaren Ausschnittfensters betreffenden
Informationen werden an eine Koordinatensequentialisie
rungsstufe 16 angelegt, in der das Viereck in eine Reihe von
Teilabschnitten zerlegt wird. Jeder der Teilabschnitte enthält
zwei Liniensegmente des ursprünglichen Vierecks bzw. Vier
seits. Jeder dieser Teilabschnitte ist so ausgebildet, daß die
Liniensegmente einen Bereich des anzuzeigenden Vierecks defi
nieren, der durch eine Reihe von parallelen horizontalen Ab
tastzeilen bzw. -linien gezeichnet werden kann, wobei jede
Zeile bzw. Linie durch einen X-Anfangswert und einen X-Endwert
derart definiert ist, daß das Viereck vollständig bestimmt
ist, wenn alle Abtastzeilen aller Teilabschnitte auf dem Dis
play wiedergegeben werden. Im Ergebnis überspannen die beiden
Liniensegmente auf jedem Teilabschnitt so viele Y-(horizon
le) Abtastlinen bzw. -zeilen wie im Hinblick auf die Form des
Vierecks möglich. Dies hat den Effekt, daß das Rechteck in
eine minimale Gruppe von ausgerichteten Trapezoiden zerlegt
wird.
Fig. 3A-3D zeigen ein Viereck oder Vierseit, das in der
beschriebenen Weise in Teilabschnitte unterteilt ist. Das
ursprüngliche Viereck ist in Fig. 3A gezeigt, während Fig.
3B-D die drei Teilabschnitte des ursprünglichen Vierecks zei
gen. Wie in Fig. 3 zu sehen ist, enthält jeder Teilabschnitt
zwischen den Liniensegmenten bei der Darstellung auf dem Aus
gangsdisplay eine Reihe von horizontalen Abtastlinien, welche
an einem das Viereck definierenden Liniensegment beginnen und
an einem anderen Liniensegment enden. Wenn diese Horizontalli
nien zum Rahmenpuffer abgetastet werden, um sie auf dem Ausga
bedisplay wiederzugeben, wird die gesamte Viereckform auf dem
Display rekonstruiert.
Es wird erneut auf Fig. 1 Bezug genommen. Nach dem Zerlegen
der Vierecke in Teilabschnitte entsprechend der vorliegenden
Erfindung sind die X-Anfangs- und -Endwerte an einer funktio
nellen Adressierstufe 18 bestimmt. Bei dem beschriebenen Aus
führungsbeispiel der Erfindung geschieht dies unter Verwendung
einer Schaltung, welche die beiden Liniensegmente bestimmt,
die wiederum das ausgerichtete Trapezoid der die X-Werte bei
Beginn und am Ende jeder Abtastzeile innerhalb der zerlegten
Unteranschnitte des Vierecks bilden. Diese funktionale Adres
sierstufe 18 bewirkt auch einen Teil der zur Einpassung der
besonderen Vierecke in die für die Anzeige vorgesehenen Aus
schnittfenster erforderliche Kappung und überträgt danach die
Signale zu einer Maskenerzeugungsstufe 20, welche die Informa
tionen in sechzehn Pixelbereiche ordnet; letztere erstrecken
sich vom Beginn bis zum Ende des sichtbaren Vierecks für jede
Abtastlinie und dienen zur Adressierung der Datenweg- und
Speicherinterfacestufe 22.
Die Maskenerzeugungssignale werden auch an einen Linearadres
sengenerator 24 angelegt, der die von der Maskenerzeugungsstu
fe 20 gelieferten Adressen in Signale zum linearen Adressieren
des Rahmenpuffers für die Übertragung der Ausgabeanzeige um
setzt. An diesem Punkt werden die sich auf das anzuzeigende
Viereck beziehenden Farbdaten, die zuvor im Speicherinterface
22 gehalten worden sind, zum Anzeigepuffer an der von dem
Linearadreßgenerator 24 identifizierten Stelle übertragen.
Die Erfindung befaßt sich im besonderen mit einer Einrichtung
und einem Verfahren zum Zerlegen der Vierecke; diese Einrich
tung enthält die Koordinatensequentialisierungsstufe 16 bei
dem bevorzugten Ausführungsbeispiel der Erfindung. Wenn auch
die Erfindung im folgenden unter Bezugnahme auf das in Fig. 1
dargestellte Graphiksystem beschrieben wird, ist für den Fach
mann verständlich, daß die Erfindung eine weite Anwendung auch
in anderen Systemen zur Erzeugung graphischer Ausgangsdisplays
für Computersysteme finden kann.
In den Fig. 4A-C sind eine Reihe von drei möglichen Vier
seitenformen (quadrilaterals) gezeigt, die jeweils durch ihre
vier Ecken und diese Ecken verbindende gerade Linien definiert
sind. Für die Zwecke der vorliegenden Beschreibung sind die
Vierecks oder Vierseiter definiert durch die Eckpunkte x 0 y 0,
x 1 y 1, x 2 y 2, x 3 y 3. In jedem Fall ist die Vierseitenform be
stimmt durch eine Verbindung x 0 y 0 (Ecke 0) mit x 1 y 1 (Ecke 1)
mit x 2 y 2 (Ecke 2) mit x 3 y 3 (Ecke 3) mit x 0 y 0.
Für jede Vierseitenform, die so zu zerlegen ist, daß sie von
dem der Erfindung zugeordneten graphischen System rasch verar
beitet werden kann, wird eine vier-mal-vier-Matrix an diesem
Punkt zu Erläuterungszwecken gezeigt. Die Matrixfelder sind
tatsächlich in der weiter unten noch beschriebenen Weise in
Hardware implementiert. Die Basis jeder Matrix ist in den
Spalten wie in Fig. 4A beispielsweise zur Anzeige der jeweili
gen Ecken des Vierseites bezeichnet; Spalte 1 beinhaltet In
formationen für Ecke 1 usw. Entlang der linken Seite der
Matrix sind Zeilenangaben für jede Ecke aufgeführt. In Zuord
nung zu jeder Ecke (Spalte) ist eine 1 in derjenigen Zeile
angegeben, welche das "Niveau" der Ecke angibt. Die Bezeich
nung "Niveau" soll im Rahmen der vorliegenden Beschreibung für
jede Ecke diejenige Anzahl anderer Ecken in einem besonderen
Vierseiter angeben, welche Y-Werte unterhalb von (oder kleiner
als) die speziellen Ecke hat.
So ist beispielsweise in Fig. 4A die Ecke 3 die am niedrigsten
gelegene Ecke und hat infolgedessen keine anderen unterhalb
gelegenen Ecken. Daher steht eine "1" in der Zeile 0 der Ma
trix, welche das Niveau der Ecke angibt. Ecke 2 hat nur Ecke 3
unter sich, so daß eine "1" in Zeile 1 der Matrix für die Ecke
2 steht, was bedeutet, daß eine einzige Ecke unterhalb der
hier betrachteten Ecke in dem betrachteten Vierseiter vorhan
den ist. In ähnlicher Weise hat Ecke 0 zwei Ecken (Ecke 2 und
Ecke 3) unter sich, so daß eine "1" in Zeile 2 der Matrix
geschrieben wird, welche angibt, daß die Ecke 0 auf dem Niveau
2 liegt. Schließlich hat Ecke 1 drei andere Ecken im Viersei
ter unter sich, so daß eine "1" in Zeile 3 der Matrix ge
schrieben wird, welche das Niveau 3 für die Ecke 1 bezeich
net.
Zu beachten ist, daß bei der Implementierung einer Matrix
entsprechend der Erfindung nach einer Anzahl von Regeln vorge
gangen wird. So hat beispielsweise jede Ecke ihre eigene Spal
te, und jede Spalte kann nur eine "1" enthalten. Zur Erleich
terung des Verständnisses für die Matrizen sind die Spalten in
jeder der Fig. 4A bis C in derselben Reihenfolge angeord
net, d.h. 0123, 0123, 0123.
Um die Verwendung der Matrix zu verstehen, werden auch die
folgenden Ausdrücke benutzt. In jedem verarbeiteten Linienseg
ment wird eine Ecke als Anfangsecke und die andere als Endecke
bezeichnet. Das "aktuelle Niveau" ist das Niveau der Anfangs
ecke eines Liniensegments. "Vorwärts" bedeutet die Richtung
des Eintritts in die Beispielsmatrix und "rückwärts" bedeutet
die Richtung entgegen des Eintritts in die Matrix. Bei Benut
zung der Matrix werden zwei Linien, welche den selektierten
Abschnitt des zu zerlegenden Vierseiters bzw. Vierecks ausma
chen, gleichzeitig betrachtet. Die erste Linie wird als Linie
"A" und die zweite Linie als Linie "B" bezeichnet.
Betrachtet sei die Matrix für das Viereck gemäß Fig. 4A. Diese
Matrix wird in der auf dem niedrigsten Niveau befindlichen
Zeile von links aus betreten. Die Bestimmung der Eckpunkte der
Linie A beginnt an dieser Ecke und setzt sich fort nach rechts
durch Vorwärtsschau, um festzustellen, ob die nachfolgende
Ecke auf einem Niveau oberhalb der Eingangsecke liegt. Ist
dies der Fall, so wird die rechts anschließende Ecke als End
ecke der Linie A gewählt. Ist dies nicht der Fall, bedingt die
Bestimmung einen Rückwärtsblick (nach links), um festzustel
len, ob die Ecke in der zurückliegenden Spalte auf einem Ni
veau oberhalb der Eingangsecke liegt. Ist keine dieser Bedin
gungen erfüllt, so bedingen die Regeln zunächst einen Blick
auf dasselbe Niveau in der vorausliegenden Spalte. Wenn diese
Bedingung nicht zutrifft (d.h. keine "1" in der Spalte ist),
so wird die Endecke auf die zurückliegende Spalte gesetzt. In
Fig. 4A ist die Eingangsecke die Ecke 3 und die vorwärtslie
gende Ecke ist die Ecke 0, die sich auf einen Niveau 2 befin
det. Daher ist das erste zu verarbeitende Liniensegment die
von der Ecke 3 zur Ecke 0 laufende Linie.
Die zweite oder B-Linie wird mit Hilfe praktisch der gleichen
Regeln bestimmt. Die gleiche Ecke ist der Ausgangspunkt für
die zweite Linie; jedoch werden die Tests in entgegengesetzter
Richtung durchgeführt, d.h. die Eingabe ist von rechts, der
erste Blick vorwärts ist nach links und oben, danach rückwärts
nach rechts und unten, danach vorwärts auf dem gleichen Niveau
und schließlich (wenn keiner der vorausgegangenen Tests rich
tig ist) wird die Ecke rückwärts als Endecke der B-Linie be
zeichnet.
Aus Fig. 4A ist zu sehen, daß die beiden die Ecke 3 mit den
Ecken 0 und 2 verbindenden Liniensegmente eine Zahl mit den
gleichen Y-Werten von Ecke 3 bis zur Ecke 2 haben, welche ein
Trapezoid definieren. Jedoch ist ein Teil des von den Ecken 0
und 3 definierten Liniensegments nicht in diesem Trapezoid
enthalten. Dieses Liniensegment wird daher wiederum für die
Bestimmung des nächsten Liniensegmentenpaars verwendet. Die
Regel für diese Auswahl ist die erneute Verwendung eines Lini
ensegments, wenn dessen Endeckenniveau höher als die Endecke
des anderen Liniensegments im ersten Paar ist. Das andere
Liniensegment (die B-Linie für dieses Paar) beginnt mit der
Endecke der zuvor benutzten, jedoch nicht wiederholten Linie.
Die gleichen Regeln wie für die Anwendung der Matrix zur Be
stimmung der Endecken der Liniensegmente sind gültig, so ist
für Fig. 4A der Beginn der B-Linie des zweiten Paars an der
Ecke 2, wo eine "1" auf dem Niveau 1 der Matrix erscheint. Das
Vorwärtsschauen nach links ergibt eine "1" auf dem Niveau 3
für die Ecke 1, so daß die die Ecken 2 und 1 verbindende Linie
als Linie B des zweiten Liniensegmentenpaars betreten wird
das die die Scheitel 0 und 3 verbindende Linie als das A-Lini
ensegment des Paars enthält. Es ist zu sehen, daß dieses zwei
te Linienpaar auch eine Anzahl von Abtastzeilen auf den glei
chen Y-Niveaus enthält, die zwischen den Ecken 2 und 0 liegen
und eine zweite trapezförmige Fläche definieren.
Schließlich wird das die Ecken 1 und 2 verbindende Linienseg
nent neu geladen und als Liniensegment B für das letzte Paar
benutzt, da es ein Endeckenniveau oberhalb des Endeckenniveaus
des die Ecken 3 und 0 verbindenden Liniensegments hat. Die
Endecke 0 des A-Liniensegments, das nicht neu geladen wird,
dient als Ausgangsecke für das A-Liniensegment des letzten
Paars. Blickt man zunächst vorwärts vom Niveau 2 der "1" der
Ecke 0, ergibt sich eine "1" in auf dem Niveau 3 der Spalte
für die Ecke 1, und das A-Liniensegment wird als die die Ecken
0 und 1 verbindende Linie definiert. Diese komplettiert das
letzte Paar von Liniensegmenten und umfaßt alle restlichen
Abtastlinien als Y-Niveaus innerhalb des Vierecks gemäß Fig.
4A. Die Regel zur Vervollständigung der Liste von Linienseg
menten bedingt das Ende der Suche, wenn beide Liniensegmente
auf demselben Niveau endeten und keine "1" innerhalb der Ma
trix auf einem höheren Niveau liegt.
Fig. 4B zeigt ein zweites vierseitiges Gebilde, welches nach
der Erfindung implementiert werden kann. Unter Verwendung der
oben angegebenen Regeln wird die Matrix von links in Spalte 0
(die Ecke 0 darstellend) betreten, wo eine "1" auf dem Niveau
0 erscheint. Von dieser Ecke aus in Vorwärtsrichtung erscheint
eine "1" auf dem Niveau 3 für die Ecke 1, woraus sich das
erste oder A-Liniensegment ergibt. Bei Eintritt von rechts und
Schauen nach links von dieser Ecke aus ergibt sich eine "1" am
Niveau 1 für die Ecke 3 und das B-Liniensegment. Da die Ecke 1
über dem Niveau der Ecke 3 liegt, wird das die Ecken 0 und 1
verbindende Liniensegment als Liniensegment A des zweiten
Paars wiederholt, während das Liniensegment B des zweiten
Paars mit der Ecke 3 beginnt. Bei Eintritt in die Matrix am
Niveau 1 für Ecke 3 und Vorwärtsschauen nach links ergibt sich
eine "1" auf einem höheren Niveau an der Ecke 2; diese ist
dann die Endecke für das Liniensegment B des zweiten Paars.
Von diesen beiden Liniensegmenten endet das die Ecken 1 und 0
enthaltende Liniensegment auf einem Niveau oberhalb der Ecke
2, so daß dieses Liniensegment wiederum als Liniensegment A
wiederholt wird. Das Liniensegment B beginnt mit der Ecke 2,
tritt von rechts ein und blickt vorwärts nach links, um die
Ecke 1 auf dem Niveau 3 zu entdecken. Die beiden Liniensegmen
te dieses Paars haben die gleiche Ecke, und es gibt keine
höher gelegenen Ecken, so daß die Vierseitenform komplettiert
ist.
Die Vierseitenform gemäß Fig. 4B zeigt, daß der Algorithmus
Vierseiter verarbeitet, welche in unterschiedlicher Eckenrei
henfolge beginnen, und daß die Tatsache, daß der Vierseiter so
gestaltet ist, daß seine Liniensegmente einander kreuzen,
keinen Einfluß auf die Fähigkeit der Schaltung zur Entwicklung
der geeigneten Liniensegmente für die Ausgangsanzeige hat.
Fig. 4C zeigt eine andere Form, welche durch die Erfindung
verarbeitet werden kann. Im Falle dieser Form haben die Ecken
0 und 1 dasselbe Y-Niveau, so daß das diese Ecken verbindende
Liniensegment horizontal verläuft. Darüberhinaus handelt es
sich bei der in Fig. 4C dargestellten Form um ein degenerier
tes Viereck, bei dem die Ecken 2 und 3 übereinanderliegen.
Bei Eintritt in die Matrix auf dem Niveau 0 von der linken
Seite der Matrix ist die erste zu berücksichtigende "1" in
Spalte 0 die Ecke 0. In Vorwärtsblickrichtung gibt es kein
höheres Niveau in Spalte 1, während in Rückwärtsblickrichtung
eine "1" auf dem Niveau 2 der Spalte 3 erscheint. Daher ist
das erste oder A-Liniensegment dasjenige Liniensegment, wel
ches die Ecken 0 und 3 verbindet. Um das Liniensegment B des
ersten Paars zu bestimmen, wird die Matrix von rechts betre
ten, und die erste zu berücksichtigende "1" ist in Spalte 1
die Ecke 1. In Vorwärtsrichtung gibt es keine auf höherem
Niveau gelegene Ecke, während in Rückwärtsrichtung nach rechts
die Ecke 2 das B-Liniensegment komplettiert. Da keine Endecke
über der anderen liegt, wird kein Segment wiederholt. Da es
kein höheres Niveau mit einer "1" gibt und beide Liniensegmen
te auf demselben Niveau enden, wird die Suche beendet.
Zu beachten ist, daß die durch Fig. 4C dargestellte Operation
nur die beiden Liniensegmente mit den Ecken 0, 3 und 1, 2 benö
tigt, um die degenerierte vierseitige Form vollständig abzuta
sten. Dies reicht bei Betrachtung der Form gemäß Fig. 4C er
sichtlich aus; denn das die Ecken 0 und 1 verbindende Linien
segment braucht nicht verwendet zu werden, da es auf dem nied
rigsten Niveau der beiden gewählten Liniensegmente abgetastet
wird und das die Ecken 2 und 3 verbindende Liniensegment zu
einem Punkt degeneriert ist.
Zur Erhöhung der Operationsgeschwindigkeit des den Erfindungs
gegenstand beinhaltenden Graphiksystems ist es wichtig, daß
die erfindungsgemäße Anordnung von der Spitze nach unten oder
von dem Boden nach oben zu verarbeiten vermag. Dies ist wich
tig, da bei Einsatz einer Form in ein Ausschnittfenster ein
Teil der Form aus den Rändern des Fensters herausfallen und
daher nicht auf dem Bildschirm erscheinen kann. Wenn dieser
Teil über oder unter dem Ausschnittfenster liegt, so beseitigt
die Definition der Form auf dem Display von oben oder unten
die Notwendigkeit der Verarbeitung der nichtangezeigten Infor
mationen und trägt damit wesentlich zur Erhöhung der Operati
onsgeschwindigkeit des Gesamtsystems bei.
Die Befähigung des erfindungsgemäßen Systems entweder in Auf
wärts- und in Abwärtsrichtung zu operieren, kann dadurch
leicht dargestellt werden, daß man die Matrix eines der oben
gegebenen Beispiele durch Beginn in Zeile 3 und Bewegung in
Richtung der Zeile 0 durchquert. Die auf diese Weise identifi
zierten Liniensegmente sind die gleichen wie vorher und zeigen
die Fähigkeit der Erfindung, in jeder Richtung zu operieren.
Es gibt zwei Bedingungen, die der vorstehend beschriebene
Algorithmus bis zu diesem Punkt nicht beherrscht. Die erste
besteht darin, daß eine horizontale Abtastlinie bzw. -zeile
mehr als zwei Liniensegmente des Vierecks schneidet. Diese
Bedingung tritt dann auf, wenn beispielsweise die Viereckform
gemäß Fig. 4B derart umdefiniert wird, daß die Ecke 3 über die
Ecke 2 bewegt wird. Eine solche Form muß durch die Systemsoft
ware behandelt werden. Die zweite Bedingung ist eine solche,
bei der eine spezielle Adaptierung des Algorithmus nötig ist.
Eine diese spezielle Adaptierung erfordernde Bedingung besteht
darin, daß die vierseitige Form durch drei Ecken gebildet
wird, welche auf derselben horizontalen Abtastlinie liegen und
bei Setzen in die Matrix des Algorithmus die Ecke im Zentrum
des gleichen Niveaus wie die beiden anderen entweder die am
weitesten links oder am weitesten rechts gelegene Ecke des
Vierseiters auf diesem Niveau ist. Die Form ist in einem sol
chen Fall ein Dreieck, dessen eine Seite als horizontale Linie
verläuft (siehe Fig. 4D). In einem solchen Fall muß ein spezi
elles horizontales Liniensegment zwischen der linken und
äußerst rechten Ecke auf dem Mehreckenniveau definiert werden,
und die Ecke für den Eintrittspunkt in das Liniensegment A als
Ecke in Vorwärtsrichtung von der zentralen Ecke und die Start
ecke für das Liniensegment B auf der Ecke rückwärts von der
Ausnahmeecke eingestellt werden. Auf diese Weise wird der
Teil, der auf eine Linie degeneriert ist, nach dem Ziehen der
Linie ignoriert, und die restlichen Liniensegmente sowohl für
die A- als auch B-Liniensegmente, welche folgen, benutzen die
restlichen Ecken bei den Berechnungen. Dies gilt, wenn die auf
derselben Horizontallinie liegenden drei Ecken auf dem Nullni
veau liegen so daß die Horizontallinie auf Nullniveau ver
läuft.
Wenn die Linie des Dreiecks auf dem "1"-Niveau wie bei der
Form gemäß Fig. 4E verläuft, wird die Stopecke für das Linien
segment A auf der Ecke in Vorwärtsrichtung von der Ausnahme
ecke und die Stopecke für das B-Liniensegment auf die Ecke
rückwärts von der Ausnahmeecke eingestellt. Eine horizontale
Linie wird zwischen der rechten und äußersten linken Ecke auf
dem "1"-Niveau gezogen. Dies hat den gleichen Effekt des
Zeichnens einer horizontalen Linie auf der Ausnahmeecke und
des Ignorierens dieser Ecke unter Verwendung der restlichen
Ecken für das Zeichnen eines Dreiecks.
Die Form einer horizontalen Linie ist ein zweiter Spezialfall.
In diesem Falle kann die Operation der Matrix durch Ignorieren
des Normalablaufs und Einstellen der Liniensegmenten-A- und
-B-Start- und -Endecken auf die äußerst linke Ecke und die
äußerst rechte Ecke optimiert werden.
Ein ähnlicher Spezialfall tritt auf, wenn die Form eine Verti
kallinie ist. Die Matrix kann durch Einstellen der Startecken
der Liniensegmente A und B an der bodennächsten Ecke und der
Liniensegment-A- und B-Endecken auf der höchsten Ecke opti
miert werden.
Bezug genommen wird jetzt auf Fig. 5, wo ein schematisches
Blockschaltbild mit der Schaltungsanordnung zum Implementieren
desjenigen Algorithmus gezeigt ist, der unter Bezugnahme auf
die Fig. 4A-C und Spezialfälle vorstehend erörtert wurde.
Fig. 5 zeigt eine Schaltung 30, die zu diesem Zweck benutzt
wird. Diese Schaltung weist eine Zustandsmaschine 32 auf,
welche die gesamte Operation der Schaltungsanordnung steuert.
Die Zustandsmaschine 32 enthält einen Teil 34, der Eingangssi
gnale darüber erhält, in welchem Vergleichsverhältnis die
verschiedenen Ecken des hier interessierenden besonderen Vier
ecks oder Vierseiters zueinander stehen. Diese Eingangssignale
werden an Eingangsleitungen 36 und 38 angelegt, die bei dem
beschriebenen Ausführungsbeispiel jeweils zwölf Informations
bits übertragen und X- und Y-Koordinatenvergleiche angeben.
Wie oben unter Bezugnahme auf Fig. 1 erläutert wurde, liefert
das die Erfindung beinhaltende System als Ausgänge der Koordi
nateneinspeicherstufe diese Information als Beiprodukt des
ersten Operationsschrittes ohne dazu zusätzliche Systemtakt
zeiten in Anspruch zu nehmen.
Die Zustandsmaschine 32 liefert die Signale, durch die Start-
und Endecken und die verschiedenen Spezialfälle der Fig.
4A-E gehandhabt bzw. verarbeitet werden.
Die Zustandsmaschine konstruiert die Matrizen entsprechend den
folgenden Logikgleichungen. Diese Gleichungen sind in der
C-Programmiersprache geschrieben.
Definitionen:
! - binärer Komplementärwert (nicht)
∥ - binäre Inklusiv-ODER-Verknüpfung
&& - binäre UND-Verknüpfung
∧ - binäre Exklusiv-ODER-Verknüpfung
tlft, trght - oben links und oben rechts Eckenangabe
blft, brght - unten links und unten rechts Eckenangabe
Yagb bedeutet Ya < Yb
Yalb bedeutet Ya < Yb
∥ - binäre Inklusiv-ODER-Verknüpfung
&& - binäre UND-Verknüpfung
∧ - binäre Exklusiv-ODER-Verknüpfung
tlft, trght - oben links und oben rechts Eckenangabe
blft, brght - unten links und unten rechts Eckenangabe
Yagb bedeutet Ya < Yb
Yalb bedeutet Ya < Yb
Format-
Imat [Zeile] [Spalte]
Zeile 0
Imat [0] [0] = !(y 0g 1 ∥ y 0g 2 ∥ y 0g 3);
Imat [0] [1] = !(y 1g 0 ∥ y 1g 2 ∥ y 1g 3);
Imat [0] [2] = !(y 2g 0 ∥ y 2g 1 ∥ y 2g 3);
Imat [0] [3] = !(y 3g 0 ∥ y 3g 1 ∥ y 3g 2);
Imat [0] [0] = !(y 0g 1 ∥ y 0g 2 ∥ y 0g 3);
Imat [0] [1] = !(y 1g 0 ∥ y 1g 2 ∥ y 1g 3);
Imat [0] [2] = !(y 2g 0 ∥ y 2g 1 ∥ y 2g 3);
Imat [0] [3] = !(y 3g 0 ∥ y 3g 1 ∥ y 3g 2);
Zeile 1
Imat [1] [0] = (y 110 &&! (y 210 ∥ y 310)) ∥ (y 210 &&! (y110 ∥ y 310)) ∥ (y 310 &&! (y 110 ∥ y 210));
Imat [1] [1] = (y 011 &&! (y 211 ∥ y 311)) ∥ (y 211 &&! (y011 ∥ y 311)) ∥ (y 311 &&! (y 011 ∥ y 211));
Imat [1] [2] = (y 012 &&! (y 112 ∥ y 313)) ∥ (y 112 &&! (y012 ∥ y 312)) ∥ (y 312 &&! (y 012 ∥ y 112));
Imat [1] [3] = (y 013 &&! (y 113 ∥ y 213)) ∥ (y 113 &&! (y013 ∥ y 213)) ∥ (y 213 &&! (y 013 ∥ y 113));
Imat [1] [0] = (y 110 &&! (y 210 ∥ y 310)) ∥ (y 210 &&! (y110 ∥ y 310)) ∥ (y 310 &&! (y 110 ∥ y 210));
Imat [1] [1] = (y 011 &&! (y 211 ∥ y 311)) ∥ (y 211 &&! (y011 ∥ y 311)) ∥ (y 311 &&! (y 011 ∥ y 211));
Imat [1] [2] = (y 012 &&! (y 112 ∥ y 313)) ∥ (y 112 &&! (y012 ∥ y 312)) ∥ (y 312 &&! (y 012 ∥ y 112));
Imat [1] [3] = (y 013 &&! (y 113 ∥ y 213)) ∥ (y 113 &&! (y013 ∥ y 213)) ∥ (y 213 &&! (y 013 ∥ y 113));
Zeile 2
Imat [2] [0] = !(y 110 ∧ y 210 ∧ y 310) && (y 110 ∥ y 210 ∥ y 310));
Imat [2] [1] = !(y 011 ∧ y 211 ∧ y 311) && (y 011 ∥ y 211 ∥ y 311));
Imat [2] [2] = !(y 012 ∧ y 212 ∧ y 312) && (y 012 ∥ y 112 ∥ y 312));
Imat [2] [3] = !(y 013 ∧ y 213 ∧ y 213) && (y 013 ∥ y 113 ∥ y 213));
Imat [2] [0] = !(y 110 ∧ y 210 ∧ y 310) && (y 110 ∥ y 210 ∥ y 310));
Imat [2] [1] = !(y 011 ∧ y 211 ∧ y 311) && (y 011 ∥ y 211 ∥ y 311));
Imat [2] [2] = !(y 012 ∧ y 212 ∧ y 312) && (y 012 ∥ y 112 ∥ y 312));
Imat [2] [3] = !(y 013 ∧ y 213 ∧ y 213) && (y 013 ∥ y 113 ∥ y 213));
Zeile 3
Imat [3] [0] = (y 0g 1 && y 0g 2 && y 0g3);
Imat [3] [1] = (y 1g 0 && y 1g 2 && y 1g3);
Imat [3] [2] = (y 2g 0 && y 2g 1 && y 2g3);
Imat [3] [3] = (y 3g 0 && y 3g 1 && y 3g2);
Imat [3] [0] = (y 0g 1 && y 0g 2 && y 0g3);
Imat [3] [1] = (y 1g 0 && y 1g 2 && y 1g3);
Imat [3] [2] = (y 2g 0 && y 2g 1 && y 2g3);
Imat [3] [3] = (y 3g 0 && y 3g 1 && y 3g2);
Punkt 30 =
((Imat [0] [0] && Imat [0] [1] && Imat [0] [2] && ((x [1] == x [blft]) ∥ (x [1] == x [brght])) && (x [1] != x [2]) && (x [1] != x [0]))
∥ ((Imat [0] [0] && Imat [0] [1] && Imat [0] [3] && ((x [0] == x [blft]) ∥ (x [0] == x [brght])) && (x [0] != x [1]) && (x [0] != x [3]))
∥ ((Imat [0] [1] && Imat [0] [2] && Imat [0] [3] && ((x [2] == x [blft]) ∥ (x [2] == x [brght])) && (x [2] != x [1]) && (x [2] != x [3]))
∥ ((Imat [0] [0] && Imat [0] [2] && Imat [0] [3] && ((x [3] == x [blft]) ∥ (x [3] == x [brght])) && (x [3] != x [2]) && (x [3] != x [0]))
((Imat [0] [0] && Imat [0] [1] && Imat [0] [2] && ((x [1] == x [blft]) ∥ (x [1] == x [brght])) && (x [1] != x [2]) && (x [1] != x [0]))
∥ ((Imat [0] [0] && Imat [0] [1] && Imat [0] [3] && ((x [0] == x [blft]) ∥ (x [0] == x [brght])) && (x [0] != x [1]) && (x [0] != x [3]))
∥ ((Imat [0] [1] && Imat [0] [2] && Imat [0] [3] && ((x [2] == x [blft]) ∥ (x [2] == x [brght])) && (x [2] != x [1]) && (x [2] != x [3]))
∥ ((Imat [0] [0] && Imat [0] [2] && Imat [0] [3] && ((x [3] == x [blft]) ∥ (x [3] == x [brght])) && (x [3] != x [2]) && (x [3] != x [0]))
Punkt 31 =
((Imat [1] [0] && [1] [1] && Imat [1] [2] && ((x [1] == x [tlft]) ∥ (x [1] == x [trght])) && (x [1] != x [2] && (x [1] != x [0]))
∥ ((Imat [1] [0] && [1] [1] && Imat [1] [3] && ((x [0] == x [tlft]) ∥ (x [0] == x [trght])) && (x [0] != x [1] && (x [0] != x [3]))
∥ ((Imat [1] [1] && [1] [2] && Imat [1] [3] && ((x [2] == x [tlft]) ∥ (x [2] == x [trght])) && (x [2] != x [1] && (x [2] != x [3]))
∥ ((Imat [1] [0] && [1] [2] && Imat [1] [3] && ((x [3] == x [tlft]) ∥ (x [3] == x [trght])) && (x [3] != x [0] && (x [3] != x [2]))
((Imat [1] [0] && [1] [1] && Imat [1] [2] && ((x [1] == x [tlft]) ∥ (x [1] == x [trght])) && (x [1] != x [2] && (x [1] != x [0]))
∥ ((Imat [1] [0] && [1] [1] && Imat [1] [3] && ((x [0] == x [tlft]) ∥ (x [0] == x [trght])) && (x [0] != x [1] && (x [0] != x [3]))
∥ ((Imat [1] [1] && [1] [2] && Imat [1] [3] && ((x [2] == x [tlft]) ∥ (x [2] == x [trght])) && (x [2] != x [1] && (x [2] != x [3]))
∥ ((Imat [1] [0] && [1] [2] && Imat [1] [3] && ((x [3] == x [tlft]) ∥ (x [3] == x [trght])) && (x [3] != x [0] && (x [3] != x [2]))
Teil 34 der Zustandsmaschine 32 liefert als Ausgangssignale
auf sechsunddreißig unterschiedlichen Leitungen Signale, die
zum Implementieren des beschriebenen Algorithmus benutzt
werden. Diese Signale umfassen Signale, die jeweils die Nummer
einer Ecke des interessierenden Vierecks bezeichnen, und fer
ner Signale, welche den Niveauwert für jede Ecke bezeichnen.
Die eine Eckennummer bezeichnenden Signale sind 2-Bit-Signale
bei dem beschriebenen Ausführungsbeispiel. Die die Startecke
für die Linien A und B bezeichnenden Signale werden an Multi
plexer 40, 42, 48 und 50 für das Liniensegment A und an Multi
plexer 44, 46, 52 und 54 für das Liniensegment B auf Datenaus
wahlsteuerleitungen angelegt. Die Multiplexer 40 und 44 sind
vorwärtsblickende Multiplexer und geben als solche die Spalte
an, auf die die Eingabespalte als Vorwärtsspalte Bezug nimmt.
Daher wird ein Signal für jede Spalte am Eingang des Multiple
xers 40 an den mit 0 bis 3 bezeichneten Eingangsanschlüssen
(welche die Eintrittsspalte bezeichnen) angelegt. Dieses
2-Bit-Signal zeigt an, welche Spalte für die als Eintritts
spalte verwendete Eingabespalte als "Vorwärts"-Spalte bezeich
net ist. Da die Vorwärtsspalte stets die Spalte rechts von der
A-Leitungsegment-Eintrittsspalte ist, bezeichnet das an den
Datenanschlüssen für eine Spalte-0-Selektion anstehende Signal
die Spalte 1 als Vorwärtsspalte usw., wobei das Signal an
Spalte 3 die Spalte 0 als Vorwärtsspalte bezeichnet. Der Mul
tiplexer 44 wirkt in ähnlicher Weise, mit der Ausnahme, daß
die "Vorwärts"-Spalte für das B-Leitungssegment die links
gelegene Spalte ist; dementsprechend gibt das Signal auf der
Leitung für eine Spalte-1-Selektion die 0-Spalte an.
Die Dateneingaben zu den Spalten 0 bis 3 der Multiplexer 42
und 46 bezeichnen andererseits die für die gerade behandelte
Spalte "rückwärtige" Spalte. Das 2-Bit-Signal auf dem Spal
te-0-Eingang des Multiplexers 42 bezeichnet die Spalte 3 als
rückwärtige Spalte, und das Signal auf dem Spalte-3-Eingang
zeigt an, daß die Spalte 2 die rückwärtige Spalte ist. Multi
plexer 46 arbeitet in ähnlicher Weise; jedoch bezeichnet das
Signal auf jeder Spaltenleitung die Spalte, welche um eine
Zahl größer als die "rückwärtige" Spalte für das B-Linienseg
ment ist.
Zwei zusätzliche Multiplexer 48 und 50 sind für das A-Lei
tungssegment und weitere zwei zusätzliche Multiplexer 52 und
54 für das B-Leitungssegment vorgesehen. Auch diese Multiple
xer haben jeweils Eingangsdatenleitungen, die jede der Spalten
0-3 der durch die Schaltung 30 implementierten Matrix darstel
len. Diese Eingangsleitungen führen 2-Bit-Signale aus der
Schaltung 34, die den Y-Pegel jeder der Spalten bezeichnen.
Angewandt auf das Viereck gemäß Fig. 4A führt beispielsweise
die Leitung 0 des Niveaumultiplexers 48 in Vorwärtsrichtung
ein Signal, das das Niveau 3 angibt, da die Ecke 1 der Spalte
1 die Vorwärtsspalte für Spalte 0, drei Ecken unter sich hat.
In ähnlicher Weise führt das Vorwärtsniveau für Leitung 1 des
Multiplexers 48 ein Signal, das das Niveau 1 angibt, da die
Ecke der Spalte 2 auf einem Niveau liegt, unter welchem sich
nur eine einzige Ecke befindet. Der Multiplexer 52 arbeitet in
ähnlicher Weise (Blickrichtung jedoch nach links) und liefert
Vorwärtsniveaus für jede der Spalten des Liniensegments B. In
ähnlicher Weise liefern die Multiplexer 50 und 54 Signale,
welche die Niveaus der Ecken zu den "Rückwärts"-Spalten für
jede der die unterschiedlichen Spalten darstellenden Eingangs
leitungen bezeichnet.
Die Multiplexer 40, 42, 48 und 50 werden von Signalen auf
Leitungen 56 und 58 aus der Zustandsmaschine 32 aktiviert,
welche angeben, daß entweder das Liniensegment A oder das
Liniensegment B zu definieren ist. Ein Signal auf der Leitung
56 gibt an daß die gewählte Eintrittsspalte für Linie A die
Multiplexer 40, 42, 48 und 50 aktiviert und ein Ausgangssignal
liefert, welches die die Vorwärtsspalte für die jeweilige
Eintrittsspalte, das Niveau dieses Signals, die Rückwärtsspal
te für diese Eintrittsspalte und das Niveau jenes Signals
angibt. Daher wird die viereckige Form der Fig. 4A zerlegt,
wobei sich der Eintritt in Spalte 3 befindet; dieses Ein
trittsspaltensignal auf der Leitung 56 sorgt dafür, daß die
Multiplexer eine Vorwärtsspalte für die Spalte 0 mit einer
Ecke auf dem Niveau 2 und eine Rückwärtsspalte für die Spalte
2 mit einer Ecke auf dem Niveau 1 liefern. Die die beiden
Ecken zur Entwicklung des anfänglichen A-Liniensegments be
treffenden Informationen werden als 4-Bit-Ausgangssignal bei
dem beschriebenen Ausführungsbeispiel am Anschluß 60 zur Über
tragung zum Block 80 in Fig. 1 und zur Weiterbehandlung durch
das System angelegt.
In ähnlicher Weise wird zur Bestimmung des anfänglichen B-Li
niensegments für das Viereck gemäß Fig. 4A ein Signal auf die
Leitung 58 gegeben, welches die Eintrittsspalte für das Lini
ensegment B bezeichnen. Dies läßt die Multiplexer 44, 46, 52,
54 Ausgangssignale entwickeln, welche die Vorwärts- und Rück
wärtsspalten und die Niveaus der Ecken an jeder Vorwärts- und
Rückwärtsspalte bezeichnet. Die Information bezüglich der
beiden das anfängliche B-Liniensegment bildenden Ecken wird
als 4-Bit-Ausgangssignal bei dem beschriebenen Ausführungsbei
spiel am Anschluß 62 zur Verfügung gestellt und von dort zum
Block 18 in Fig. 1 zur Weiterverarbeitung durch das System
übertragen.
Die Zustandsmaschine 32 enthält auch Ausgangsleitungen zur
Lieferung von Signalen für einen Komparator 64; diese Signale
geben an wenn die Zerlegungsoperation für das besondere Vier
eck beendet ist. Die Leitung 66 liefert eine Angabe des höch
sten Niveaus für eine der Ecken des Vierecks, bestimmt durch
die X- und Y-Eingangsvergleichssignale. Diese Angabe wird vom
Vergleicher 64 benutzt und mit Signalen auf der Leitung 68
abgestimmt, welche das Niveau jeder der Endecken der Linien
segmente A und B angeben. Wenn die Liniensegmente auf gleichen
Y-Ecken enden, und es keine anderen darüber gelegenen Niveaus
von Ecken im Viereck gibt, liefert der Komparator 64 ein Si
gnal an das Zustandsregister 32, welches angibt, daß das Vier
eck zerlegt ist und die spezielle Operation abgeschlossen
ist.
Claims (5)
1. Schaltungsanordnung zur Auswahl der Liniensegmente einer
Graphikfigur, die von einem Computerausgabedisplay zur Anzeige
gebracht wird, wobei die Liniensegmente gemeinsame Abtastlini
en enthalten,
gekennzeichnet durch,
Mittel (12, 14) zur Erzeugung von Signalen, welche die Ecken einer anzuzeigenden Figur bezeichnen,
Vergleichermittel (16) zum Vergleich der relativen Posi tionen dieser Ecken bei deren Anzeige;
Mittel (40, 44) zur Auswahl einer Startecke für die Be stimmung der gemeinsame Abtastlinien enthaltenden Linienseg mente;
Mittel zur Auswahl eines von der Startecke ausgehenden ersten Liniensegments;
Mittel zur Auswahl eines von der Startecke ausgehenden zweiten Liniensegments; und
Mittel zur Erzeugung von die ausgewählten Liniensegmente bezeichnenden Ausgangssignalen.
Mittel (12, 14) zur Erzeugung von Signalen, welche die Ecken einer anzuzeigenden Figur bezeichnen,
Vergleichermittel (16) zum Vergleich der relativen Posi tionen dieser Ecken bei deren Anzeige;
Mittel (40, 44) zur Auswahl einer Startecke für die Be stimmung der gemeinsame Abtastlinien enthaltenden Linienseg mente;
Mittel zur Auswahl eines von der Startecke ausgehenden ersten Liniensegments;
Mittel zur Auswahl eines von der Startecke ausgehenden zweiten Liniensegments; und
Mittel zur Erzeugung von die ausgewählten Liniensegmente bezeichnenden Ausgangssignalen.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeich
net, daß außerdem Mittel vorgesehen sind, die feststellen,
welche der ersten oder zweiten Liniensegmente Abtastlinien
enthalten, die nicht den beiden Liniensegmenten gemeinsam
sind, und daß ferner Mittel zur Erzeugung eines dritten Lini
ensegments vorgesehen sind, das mit der Endecke eines der
ersten oder zweiten Liniensegmente beginnt, welche nur den
beiden Liniensegmenten gemeinsame Abtastlinien enthält.
3. Schaltungsanordnung nach Anspruch 1 oder 2, gekennzeich
net durch Mittel zur Bestimmung, welches der zuletzt ausge
wählten Liniensegmente Abtastlinien enthält, die den zuvor
ausgewählten Liniensegmenten nicht gemeinsam sind, und gekenn
zeichnet durch Mittel zur Erzeugung eines zusätzlichen Linien
segments, beginnend an der Endecke des einen der zuletzt aus
gewählten Liniensegmente, das die bereits bei zuvor ausgewähl
ten Liniensegmenten ausgewählten Abtastlinien enthält.
4. Schaltungsanordnung nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß Mittel (64, 66, 68 - Fig. 5) zur
Feststellung der Vervollständigung einer anzuzeigenden Figur
vorgesehen sind.
5. Schaltungsanordnung nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß Mittel vorgesehen sind, welche
bestimmen, ob mehr als zwei Ecken einer anzuzeigenden Figur
auf derselben horizontalen Abtastlinie liegen und ob eine
solche Ecke mit der Figur in solcher Weise verbunden ist, daß
ein einziges von der Figur ausgehendes Liniensegment definiert
wird, daß ferner Mittel zur Erzeugung eines Ausgabesignals bei
Feststellung der Lage von mehr als zwei Ecken einer anzuzei
genden Figur auf der gleichen horizontalen Abtastlinie und bei
Feststellung, daß eine dieser Ecken an die Figur in einer
solchen Weise anschließt, daß ein von der Figur ausgehendes
einzelnes Liniensegment definiert wird, wobei ein Signal er
zeugbar ist, das ein zu zeichnendes horizontales Liniensegment
im Anschluß an die extremen Ecken bezeichnet, und daß Mittel
vorgesehen sind, welche bei der Einstellung der Startecke die
extremen Ecken unberücksichtigt bleiben läßt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/287,128 US5020002A (en) | 1988-12-20 | 1988-12-20 | Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3941550A1 true DE3941550A1 (de) | 1990-06-28 |
DE3941550C2 DE3941550C2 (de) | 2000-06-21 |
Family
ID=23101576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3941550A Expired - Fee Related DE3941550C2 (de) | 1988-12-20 | 1989-12-15 | Schaltungsanordnung zum Zerlegen einer auf einem Computer-Ausgabedisplay anzuzeigenden Graphikfigur |
Country Status (6)
Country | Link |
---|---|
US (1) | US5020002A (de) |
AU (1) | AU618128B2 (de) |
CA (1) | CA1319996C (de) |
DE (1) | DE3941550C2 (de) |
GB (1) | GB2226481B (de) |
HK (1) | HK48994A (de) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5153937A (en) * | 1989-09-22 | 1992-10-06 | Ampex Corporation | System for generating anti-aliased video signal |
US5159665A (en) * | 1989-11-27 | 1992-10-27 | Sun Microsystems, Inc. | Graphics accelerator system |
US5133049A (en) * | 1990-03-14 | 1992-07-21 | Hewlett-Packard Company | Accelerated decomposition of small polygons into trapezoids |
US5129051A (en) * | 1990-03-16 | 1992-07-07 | Hewlett-Packard Company | Decomposition of arbitrary polygons into trapezoids |
CA2038412C (en) * | 1990-04-26 | 2001-10-16 | Glenn M. Courtright | Polygon sort engine |
GB2245394A (en) * | 1990-06-18 | 1992-01-02 | Rank Cintel Ltd | Video framestore selective addressing system |
US5371843A (en) * | 1992-10-16 | 1994-12-06 | International Business Machines Corporation | Method and system for filling non-complex polygons using vertical spans |
US5553206A (en) * | 1993-02-12 | 1996-09-03 | International Business Machines Corporation | Method and system for producing mesh representations of objects |
JP2642070B2 (ja) * | 1994-11-07 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 四角形メッシュの生成方法及びシステム |
GB9518695D0 (en) * | 1995-09-13 | 1995-11-15 | Philips Electronics Nv | Graphic image rendering |
JP3638568B2 (ja) * | 2001-06-08 | 2005-04-13 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理プログラム、画像処理プログラムを記録した記録媒体、画像処理装置及び方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3870922A (en) * | 1972-05-02 | 1975-03-11 | Nippon Electric Co | Graphic pattern generation for a tv-like scanned-graphic display equipment |
US4758965A (en) * | 1985-10-09 | 1988-07-19 | International Business Machines Corporation | Polygon fill processor |
US4791582A (en) * | 1985-09-27 | 1988-12-13 | Daikin Industries, Ltd. | Polygon-filling apparatus used in a scanning display unit and method of filling the same |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS634380A (ja) * | 1986-06-23 | 1988-01-09 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 計算機図形処理装置 |
JP2541539B2 (ja) * | 1987-02-13 | 1996-10-09 | 日本電気株式会社 | 図形処理装置 |
-
1988
- 1988-12-20 US US07/287,128 patent/US5020002A/en not_active Expired - Lifetime
-
1989
- 1989-09-15 CA CA000611654A patent/CA1319996C/en not_active Expired - Fee Related
- 1989-09-18 AU AU41514/89A patent/AU618128B2/en not_active Ceased
- 1989-09-22 GB GB8921442A patent/GB2226481B/en not_active Expired - Fee Related
- 1989-12-15 DE DE3941550A patent/DE3941550C2/de not_active Expired - Fee Related
-
1994
- 1994-05-19 HK HK48994A patent/HK48994A/xx not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3870922A (en) * | 1972-05-02 | 1975-03-11 | Nippon Electric Co | Graphic pattern generation for a tv-like scanned-graphic display equipment |
US4791582A (en) * | 1985-09-27 | 1988-12-13 | Daikin Industries, Ltd. | Polygon-filling apparatus used in a scanning display unit and method of filling the same |
US4758965A (en) * | 1985-10-09 | 1988-07-19 | International Business Machines Corporation | Polygon fill processor |
Also Published As
Publication number | Publication date |
---|---|
AU618128B2 (en) | 1991-12-12 |
AU4151489A (en) | 1990-06-28 |
US5020002A (en) | 1991-05-28 |
GB8921442D0 (en) | 1989-11-08 |
GB2226481B (en) | 1993-08-18 |
HK48994A (en) | 1994-05-27 |
DE3941550C2 (de) | 2000-06-21 |
CA1319996C (en) | 1993-07-06 |
GB2226481A (en) | 1990-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
DE3335162C2 (de) | Vorrichtung und Verfahren für graphische Darstellungen mittels Computer | |
DE3686664T2 (de) | Bildverarbeitungsverfahren und -system. | |
DE68915006T2 (de) | System zum Generieren von Musterdaten. | |
DE3586506T2 (de) | Monochromatische darstellung von farbbildern. | |
DE69708270T2 (de) | Videobildmischung in einem heimkommunikationsterminal | |
DE69403515T2 (de) | Verfahren und Vorrichtung zum Codieren und Anzeigen von überlappenden Fenstern mit Transparenz | |
DE69320746T2 (de) | Rasterbildverbesserung unter Verwendung eines reduzierten Schablonenspeichers | |
DE10053439B4 (de) | Grafik-Beschleuniger mit Interpolationsfunktion | |
DE68919024T2 (de) | Verfahren und Prozessor zur Abtastumsetzung. | |
DE60122835T2 (de) | Anzeigeeinrichtung und -Verfahren, und Datenträger der ein Computerprogramm zur Ansteuerung einer Anzeige mit unterteilten Bildelementen beinhaltet | |
DE4013263C2 (de) | Vorrichtung zur Farbauswahl bei einem Ausgabegerät mit Fensteranzeige | |
DE68927471T2 (de) | Verfahren zur Schattierung eines graphischen Bildes | |
DE69230095T2 (de) | Bildfensterverwaltung von verbundenen Anwendungen | |
DE3689926T2 (de) | Einrichtung zur sequenziellen Bildtransformation. | |
DE3619420A1 (de) | Computer-displayeinrichtung | |
DE3852149T2 (de) | Kathodenstrahlröhre-/Plasmaanzeigesteuergerät. | |
DE3518416A1 (de) | Speicher- und prozessorsystem mit schnellem zugriff zur rasteranzeige | |
DE2950712A1 (de) | Einrichtung zur erzeugung eines elektronischen hintergrundrasterfeldes | |
DE69330578T2 (de) | Verfahren und Einrichtung zum Füllen eines Bildes | |
DE3941550C2 (de) | Schaltungsanordnung zum Zerlegen einer auf einem Computer-Ausgabedisplay anzuzeigenden Graphikfigur | |
DE4415492C2 (de) | Verfahren zur Erzeugung von Videoeffekten unter Verwendung von Schlüsselrahmen | |
DE69009544T2 (de) | Beeinflussung eines Bildes. | |
DE3889557T2 (de) | Vektorgenerator für Raster-Bildschirmanzeige. | |
DE3620982A1 (de) | Ein-befehl, mehrfach-datenstrom (simd) computersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8141 | Disposal/no request for examination | ||
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06T 11/00 |
|
8170 | Reinstatement of the former position | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |