DE3587129T2 - Graphische anzeigesysteme. - Google Patents

Graphische anzeigesysteme.

Info

Publication number
DE3587129T2
DE3587129T2 DE8585104226T DE3587129T DE3587129T2 DE 3587129 T2 DE3587129 T2 DE 3587129T2 DE 8585104226 T DE8585104226 T DE 8585104226T DE 3587129 T DE3587129 T DE 3587129T DE 3587129 T2 DE3587129 T2 DE 3587129T2
Authority
DE
Germany
Prior art keywords
list
parts
subject
clip
area
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 - Fee Related
Application number
DE8585104226T
Other languages
English (en)
Other versions
DE3587129D1 (de
Inventor
Ian Holden
Michael Jon Mailings
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE3587129D1 publication Critical patent/DE3587129D1/de
Publication of DE3587129T2 publication Critical patent/DE3587129T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/22Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using plotters
    • 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/42Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of patterns using a display memory without fixed position correspondence between the display memory contents and the display position on the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf graphische Anzeigesysteme und im besonderen auf diejenigen Systeme, die als Ausgabeeinrichtung für im System entwickelte Bilder einen Zeichenstiftplatter enthalten.
  • Ein dialogfähiges graphisches Anzeigesystem, wie zum Beispiel das Graphik-Dienstprogramm des IBM Graphics Display Data Manager (GDDM), welches in der EU Patentveröffentlichung 26266 beschrieben wurde, ermöglicht einem Benutzer die Erzeugung graphischer Abbildungen auf einem Bildschirm, wie zum Beispiel dem IBM 3279. (IBM ist ein eingetragenes Warenzeichen). Nach der Erzeugung des Bildes ist es oft wünschenswert, eine Hartkopie davon anzufertigen; zu diesem Zweck werden im allgemeinen an das System angeschlossene Zeichenstiftplotter verwendet.
  • Zeichenstiftplotter sind eine billige Möglichkeit, qualitativ hochwertige Graphik-Hartkopien herzustellen.
  • Die Technologie unterscheidet sich jedoch von der einer Anzeige mit Kathodenstrahlröhre in einem wesentlichen Punkt: wenn nämlich ein Bild erst einmal gezeichnet ist, kann es weder gelöscht noch verändert werden. Dieser Unterschied stellt ein Problem dar, wenn, sagen wir einmal, ein rotes Quadrat über einem größeren blauen Quadrat gezeichnet wird. In der Anzeige werden die zuunterst liegenden blauen Bildelemente einfach in rote Bildelemente umgewandelt; auf einem Plotter wird jedoch mit Rot über Blau gezeichnet und das Ergebnis ist eine schmutzigbraune Farbe. Um qualitativ hochwertige Plotterausgaben zu erzeugen, ist es daher erforderlich, alle unten liegenden Flächen durch Herausschneiden (clipping) aller oben liegenden Flächen zu verändern. Beim Zeichnen und Schraffieren der unten liegenden Fläche bleibt das Papier an den Stellen, an denen die oben liegenden Flächen später eingezeichnet werden sollen, weiß und man erhält einen wesentlich besseren Plot.
  • Verschiedene Methoden für das Herausschneiden von Flächen wurden bisher veröffentlicht. In "Reentrant Polygon Clipping", von IVan E. Sutherland & Gary W. Hodgman Comm. of ACM, Januar 1974, V17 Nr. 1, Seite 32-42, wird eine einfache Methode beschrieben, mit der ein konkav geformtes Polygon zu einer konvexen Fläche geclippt wird. Hierfür ist eine konkav geformte Clip-Fläche erforderlich, die in konvex geformte Polygone unterteilt werden muß, wodurch die Komplexität der Berechnungen zunimmt. In "Hidden surface removal using polygon area sorting" von Kevin Weiler & Peter Atherton Siggraph 77 proceedings Computer Graphics 11 (2), Sommer 77, Seite 214, wird eine andere Methode zum Clippen konkaver Polygone mit Öffnungen beschrieben; hierzu ist jedoch eine Definition der Polygone im Uhrzeigersinn und der Öffnungen entgegen dem Uhrzeigersinn erforderlich.
  • In dem Verfahren der vorliegenden Erfindung werden keine Beschränkungen der Bereichsdefinitionen gemacht. Sowohl die Subjektfläche als auch die Clip-Fläche können aus mehreren überlappenden, sich selbst schneidenden Polygonen bestehen. Das Innere einer Fläche wird definiert als alle Punkte, die die Flächengrenze eine ungerade Anzahl von Malen kreuzen würden, wenn sie entlang einer geraden Linie bis zur Unendlichkeit bewegt würden.
  • Es ist ein Ziel der Erfindung, ein Verfahren zur Verfügung zu stellen, mit dem eine Flächendefinition zu einer anderen Flächendefinition geclippt werden kann.
  • Das Verfahren findet auch Anwendung für ein qualitativ hochwertiges Plotting in folgenden Fällen:
  • Ausführung von "Hintergrund"-Linien, indem jede Hintergrundlinie als eine dünne Fläche behandelt wird, die die doppelte Breite des Zeichenstiftes hat. Diese können aus jedem beliebigen Teil des Bildes, das von ihnen überlagert wird, herausgeschnitten werden.
  • Beim Plotten auf Folien ist ein bekanntes Problem das Verlaufen der Farbe, zum Beispiel wenn zwei Flächen aneinandergrenzen und in unterschiedlichen Farben gezeichnet werden sollen, da die Farbe längere Zeit trocknen muß, und sich die beiden Farben im Grenzbereich miteinander mischen. Dieses Problem kann dadurch überwunden werden, daß die Flächen um eine Zeichenstiftbreite geschrumpft werden. Der einfachste Weg, dies für eine beliebige Flächendefinition zu erreichen, ist die Definition einer dünnen Fläche von doppelter Zeichenstiftbreite, die um die Grenze der Fläche herum verläuft, und das Herausschneiden dieser Fläche aus der Originalfläche.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zur Bestimmung der Koinzidenz einer Subjektfläche und einer Clip-Fläche zur Verfügung gestellt, von denen jede einen oder mehrere, gegebenenfalls überlappende, sich selbst schneidende Polygone aufweist, in einem graphischen Anzeigesystem, in welchem Flächendefinitionen in einem Anzeigenlistenspeicher gespeichert sind, das die folgenden Schritte aufweist:
  • a) Erzeugen und Speichern einer Liste mit Subjektflächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien der Subjektfläche, die nicht durch die Clip-Fläche führen, getrennte Einträge aufweist,
  • b) Erzeugen und Speichern einer Liste mit Clip-Flächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien der Clip-Fläche, die durch die Subjektfläche führen, getrennte Einträge aufweist,
  • c) Erzeugen und Speichern einer Liste für überlappende Teile, die für jeden Teil einer überlappenden Linie, sowohl der Subjekt- als auch der Clip-Fläche, getrennte Einträge aufweist,
  • d) für jeden Eintrag in der Liste der Subjektflächenteile: Absuchen nicht verarbeiteter Einträge erstens in der Liste der Subjektflächenteile, zweitens in der Liste der Clip-Flächenteile und drittens in der Liste der überlappenden Teile nach einem Eintrag, der eine gleiche Definition des Endpunktes besitzt, wie eine Endpunktdefinition des zu verarbeitenden Teils, Erzeugen eines neuen Teils durch Verbinden jedes gefundenen Teils mit dem zu verarbeitenden Teil, Speichern des erzeugten Teils in einer Liste für Ergebnisteile und Wiederholen des Prozesses für den Eintrag in der Liste für die Ergebnisteile, bis keine weiteren Teile gefunden werden, wodurch die Liste der Ergebnisteile die Definition des Abschnittes der Subjektfläche enthält, der nicht mit der Clip-Fläche übereinstimmt.
  • Entsprechend dem zweiten Aspekt der Erfindung wird ein graphisches Anzeigesystem zur Verfügung gestellt, in welchem Flächendefinitionen in einem Anzeigenlistenspeicher gespeichert werden, welches Steuermittel zur Steuerung des Betriebs des Systems zur Durchführung des Verfahrens der Bestimmung der Koinzidenz einer Subjektfläche und einer Clip-Fläche enthält, von denen jede einen oder mehrere, gegebenenfalls überlappende, sich selbst schneidende Polygone aufweist, das folgende Schritte umfaßt
  • a) Erzeugen und Speichern einer Liste mit Subjektflächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien der Subjektfläche, die nicht durch die Clip-Fläche führen, getrennte Einträge aufweist,
  • b) Erzeugen und Speichern einer Liste mit Clip-Flächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien der Clip-Fläche, die durch die Subjektfläche führen, getrennte Einträge aufweist,
  • c) Erzeugen und Speichern einer Liste für überlappende Teile, die für jeden Teil einer überlappenden Linie, sowohl der Subjekt- als auch der Clip-Fläche, getrennte Einträge aufweist,
  • d) für jeden Eintrag in der Liste der Subjektflächenteile: Absuchen nicht verarbeiteter Einträge, erstens in der Liste der Subjektflächenteile, zweitens in der Liste der Clip-Flächenteile und drittens in der Liste der überlappenden Teile, nach einem Eintrag, der eine gleiche Definition des Endpunktes besitzt, wie eine Endpunktdefinition des zu verarbeitenden Teils, Erzeugen eines neuen Teils durch Verbinden jedes gefundenen Teils mit dem zu verarbeitenden Teil, Speichern des erzeugten Teils in einer Liste für Ergebnisteile und Wiederholen des Prozesses für den Eintrag in der Liste der Ergebnisteile, bis keine weiteren Teile gefunden werden, wodurch die Liste der Ergebnisteile die Definition des Abschnittes der Subjekt fläche enthält, der nicht mit der Clip-Fläche übereinstimmt.
  • Um die Erfindung besser verständlich zu machen, soll diese nun anhand der beiliegenden Zeichnungen beschrieben werden; es zeigt:
  • Fig. 1-4 anhand eines Beispiels, wie das Verfahren funktioniert.
  • Fig. 5 den Funktionsablauf der einzelnen Komponenten des Verfahrens.
  • Fig. 6 eine schematische Darstellung eines Systems in Blockform, in dem das Verfahren implementiert werden kann.
  • Das Verfahren, welches die Ausgestaltung der Erfindung darstellt, clippt eine "Subjektfläche" zu einer "Clip-Fläche" und erzeugt hierdurch als Ergebnis eine Fläche, die alle Teile der Subjektfläche, die außerhalb der Clip-Fläche liegen, definiert. Gegebenenfalls kann das Verfahren auf einfache Weise so verändert werden, daß das Herausschneiden in umgekehrter Weise erfolgt, das heißt, daß eine Definition der Teile der Subjektfläche erzeugt wird, die sich innerhalb der Clip-Fläche befinden.
  • Jede Flächendefinition wird durch eine Liste von Polygon-Definitionen dargestellt, jede Polygon-Definition wird durch einen Ring von Vertices dargestellt. Die sich daraus ergebende Flächendefinition ist formatgleich, so daß sie bei Bedarf weiter in andere Flächen hineingeschnitten werden kann.
  • Für das Verfahren ist die Aufstellung von drei Listen erforderlich. Eine Liste (die Liste der Subjektteile) enthält die Teile der Subjektflächengrenze, die sich außerhalb der Clip- Fläche befinden. Die zweite Liste (die Liste der Clip-Teile) enthält die Teile der Clip-Flächengrenze, die innerhalb der Subjektfläche liegen, und die dritte Liste enthält alle Grenzlinien der Clip-Fläche, die sich mit Grenzlinien der Subjektfläche überlappen (bezeichnet als: "überlappende" Clip-Teile).
  • Jede Liste wird unter Berücksichtigung jeder Linie in der Fläche und Clippen dieser Linie zur Innenseite/Außenseite der anderen Fläche aufgebaut. Hierzu ist eine Linien-Clip-Routine erforderlich, mit der eine beliebige Linie zu einer beliebigen Bereichsdefinition geclippt werden kann. Insbesondere muß diese Routine mit Linien arbeiten, die (i) die Fläche in einem Vertex schneiden, (ii) eine (oder mehrere) der Flächengrenzlinien überlappen; und Flächen, die aus mehrfach überlappenden, sich selbst schneidenden Polygonen bestehen können. Eine solche Routine soll nachfolgend beschrieben werden.
  • Die resultierende Flächendefinition wird durch Verbinden der Teile der drei Listen zu einem Polygon erzeugt.
  • Der Verbindungsprozeß läuft so ab, daß versucht wird, ein Subjektteil zu verbinden, und zwar erstens: mit einem nicht überlappenden Clip-Teil, zweitens: mit einem anderen Subjektteil und drittens: mit einem überlappenden Clip-Teil.
  • Das Subjektteil wird also erweitert und die Gesamtzahl der Teile wird reduziert. Wenn ein Polygon gebildet wird, wird es aus der Liste der Subjektteile herausgenommen und der sich ergebenden Flächendefinition hinzugefügt. Dieses Verfahren wird für jeden Subjektteil fortgesetzt, bis alle Subjektteile verbraucht sind.
  • Schließlich werden alle übrigen Clip-Teile (wo dies möglich ist) verbunden, um zu versuchen, mehr Polygone zu bilden. Diese Polygone werden der sich ergebenden Flächendefinition hinzugefügt, es sei denn, sie wurden nur aus sich überlappenden Clip-Teilen gebildet. In diesem Fall wird festgestellt, ob dieses Polygon (welches der Subjekt und der Clip-Fläche gemeinsam ist) sowohl in der Subjekt als auch in der Clip- Fläche dieselbe Bedeutung hat (mit Öffnung oder massiv). Das Polygon wird dem Ergebnis nur dann hinzugefügt, wenn seine Bedeutung in der Subjekt- und der Clip-Fläche unterschiedlich ist.
  • In den seltenen Fällen, in denen in eine sich selbst schneidende Fläche mit vielen gemeinsamen oder die Subjektgrenze überlappenden Grenzlinien geclippt wird, ist es möglich, daß nach dem Verbinden verschiedener Teile ein unvorhergesehenes Ende erreicht wird, das heißt, daß keine Teile mehr gefunden werden können, die sich verbinden lassen. Diese Situation kann dann auftreten, wenn zwei oder mehr sich überlappende Clip-Teile mit dem Subjektteil verbunden werden können und zufällig der falsche Teil ausgewählt wird. Dies geschieht nicht sehr oft und die einfachste Lösung ist die, die Subjektfläche um einen ganz geringen Betrag in x- und y-Richtung zu verschieben, und dann das Clip-Verfahren nochmals zu starten.
  • In den Fig. 1 bis 4 wird das Verfahren anhand eines Beispiels veranschaulicht. Ein komplexes Polygon, wie in 1 (a) dargestellt, wird auf einem Bildschirm angezeigt. Es kann sich hierbei zum Beispiel um einen Teil einer graphischen Darstellung handeln. Eine zweite Fläche, in 1 (b) dargestellt, soll der Fläche von 1 (a) überlagert werden, um das in Fig. 1 (c) dargestellte Ergebnis zu liefern. In diesem Fall muß die schraffierte Fläche von 1 (b) aus der Fläche von 1 (a) herausgeschnitten werden.
  • Die Fig. 2a und 2b veranschaulichen den Inhalt einer Liste von Subjektteilen.
  • Die Fig. 3a und 3b veranschaulichen den Inhalt einer Liste von Clip-Teilen.
  • Die Fig. 4a und 4b veranschaulichen den Inhalt einer Liste mit überlappenden Teilen.
  • Natürlich werden alle Linien und Teile in Wirklichkeit in Form von Endpunktkoordinaten gespeichert und die Zeichnungen dienen nur dem besseren Verständnis.
  • Allgemein kann man sagen, daß der erste Schritt die Überprüfung aller Linien der Subjektfläche ist, um festzustellen, ob sie durch die Clip-Fläche führen oder nicht. Beginnend in der oberen linken Ecke hat Linie 10 einen Abschnitt 11, der die Clip-Fläche überlappt. Dieser wird in die Liste der überlappenden Teile (Fig. 4a) eingetragen. Der zweite Abschnitt 12 wird in die Liste der Subjektteile eingetragen, Fig. 2.
  • Danach werden die Linien 13, 14, 15 und 16 geprüft und in die Liste der Subjektteile eingetragen. Da jede Linie mit der vorhergehenden Linie eine gemeinsame Koordinate aufweist, wird ein Komplexteil entwickelt. Die Linie 18 hat einen Abschnitt 19, der durch die Clip-Fläche führt, und Abschnitte 17 und 20, die nicht durch die Clip-Fläche führen. Der Abschnitt 17 wird in der Liste der Subjektteile dem Komplexteil 2 (a) hinzugefügt, der Abschnitt 19 wird ignoriert und der Abschnitt 20 beginnt in der Liste der Subjektteile einen neuen Teil. Die Linie 21 wird in der Liste der Subjektteile an Teil 20 angefügt und die Linie 22 wird in die Liste der überlappenden Teile eingetragen (4 (b)).
  • Die Clip-Fläche wird dann überprüft, um festzustellen, welche Linien durch die Subjektfläche führen oder darin enthalten sind. Die Linie 11 befindet sich bereits in der Liste der überlappenden Teile. Die Linie 23 hat zwei Teile, der Abschnitt 24 wird in die Liste der Clip-Teile eingetragen und Abschnitt 25 wird, ebenso wie Abschnitt 27 der Linie 26, ignoriert. Die Abschnitte 28 und 29 der Linie 30 werden jedoch in die Liste der Clip-Teile (3 (b)) eingetragen. Abschnitt 22 der Linie 29 befindet sich bereits in der Liste der überlappenden Teile.
  • Um die Subjektfläche minus der Clip-Fläche aufzubauen, wird der erste Eintrag in der Liste der Subjektteile geprüft, danach werden in der folgenden Reihenfolge die übrigen Einträge in der Liste der Clip-Teile geprüft, dann wird die Liste der überlappenden Teile geprüft, um den ersten Eintrag zu bestimmen, der eine gemeinsame Endpunktkoordinate mit dem ersten Eintrag hat. Dieser gefundene Teil wird dann dem Subjektteil hinzugefügt und das Ergebnis wird in eine Liste mit Ergebnisteilen eingetragen. Der Prozeß wird wiederholt, wobei der Eintrag in der Liste der Ergebnisteile verwendet wird, bis keine Teile gefunden werden, die einen gemeinsamen Endpunkt mit dem resultierenden Teil haben. In allen Fällen ist das Ergebnis ein geschlossenes Polygon. Danach wird der nächste Eintrag in der Liste der Subjektteile geprüft und die Verfahren werden solange wiederholt, bis sich keine weiteren Teile mehr in der Liste der Subjektteile befinden. Die Liste der Ergebnisteile enthält dann eine Definition der Subjektfläche minus der Clip-Fläche.
  • Es folgt nun eine ausführliche Beschreibung des Verfahrens. Das Verfahren wurde in kleinere Prozeduren unterteilt, in der Abbildung 5 ist dargestellt, in welcher Beziehung diese zueinander stehen.
  • Flächen-Clip 50 (Fig. 5)
  • Diese Prozedur steuert den gesamten Flächen-Clip-Prozeß. Die "Subjektfläche" wird zur "Clip-Fläche" geclippt. Das Ergebnis ist eine neue Subjektfläche, die all diejenigen Teile der ursprünglichen Subjektfläche definiert, die außerhalb der Clip- Fläche liegen.
  • Aufruf "AUBAU DER TEILELISTE" zum Aufbauen der Liste der Subjektteile, die alle Teile der "Subjektfläche" enthält, die außerhalb der "Clip-Fläche" liegen.
  • Aufruf "AUFBAU DER TEILELISTE" zum Aufbauen der Liste der Clip-Teile, die alle Teile der "Clip-Fläche" enthält, die innerhalb der "Clip-Fläche" liegen. Diese Liste enthält auch "überlappende Clip- Teile".
  • Beide Teilelisten absuchen und alle Teile, die Polygone sind, zur Ergebnisfläche übertragen.
  • ABSUCHEN:
  • AUSFÜHREN für jeden Subjektteil SOLANGE Liste der Subjektteile nicht leer ist
  • WENN ein nicht überlappender Clip-Teil vorhanden ist, der sich verbinden läßt, DANN
  • AUFRUF "ZWEI TEILE VERBINDEN"
  • ABSUCH-SCHLEIFE WIEDERHOLEN
  • WENN-ENDE
  • WENN ein Subjektteil vorhanden ist, der sich verbinden läßt, DANN
  • AUFRUF "ZWEI TEILE VERBINDEN"
  • ABSUCH-SCHLEIFE WIEDERHOLEN
  • WENN-ENDE
  • WENN ein überlappender Clip-Teil vorhanden ist, der sich verbinden läßt, DANN
  • AUFRUF "ZWEI TEILE VERBINDEN"
  • ABSUCH-SCHLEIFE WIEDERHOLEN
  • WENN-ENDE
  • Wenn dieser Punkt erreicht ist, haben wir eine falsche Drehung nach weiter hinten ausgeführt, was uns zu einem unvorhergesehenen Ende geführt hat.
  • Die Subjektflächendefinition absuchen und um eine Einheit verschieben
  • WIEDERANLAUF der Clipp-Prozedur.
  • ENDE AUSFÜHRUNG
  • Die Subjektliste ist jetzt leer, versuchen, aus allen verbleibenden Clip-Teilen mehr Polygone aufzubauen.
  • ABSUCHEN 2:
  • AUSFÜHREN SOLANGE Liste der Clip-Teile nicht leer ist Ersten Clip-Teil nehmen
  • AUSFÜHREN für jeden folgenden Clip-Teil
  • WENN dieser sich mit dem ersten Clip-Teil verbinden läßt, DANN
  • AUFRUF "ZWEI TEILE VERBINDEN"
  • ABSUCH 2 - SCHLEIFE WIEDERHOLEN
  • WENN-ENDE
  • ENDE AUSFÜHRUNG
  • Den ersten Clip-Teil streichen, er bildet kein Polygon
  • ENDE AUSFÜHRUNG
  • Das Clipping-Verfahren ist jetzt abgeschlossen. Die ursprüngliche Subjektfläche löschen und gegen die Ergebnisfläche aus tauschen.
  • Aufbau der Teile-Liste (51)
  • Diese Prozedur wird an zwei Flächendefinitionen weitergegeben, die Subjektfläche muß in Teile aufgeteilt werden, die entweder innerhalb oder außerhalb der Clip-Fläche liegen. Man beachte, daß die Begriffe "Subjektfläche" und "Clip-Fläche" sich auf die mit dieser Prozedur durchgeführte Verarbeitung beziehen und nicht mit den in der Prozedur FLÄCHEN-CLIP verwendeten gleichen Begriffen zusammenhängen.
  • AUSFÜHREN für jedes Polygon in der Definition der Subjektfläche
  • AUSFÜHREN für jeden Vertex im Polygon Linie vom aktuellen Vertex zum nächsten Vertex berücksichtigen, AUFRUF "FENSTER", um zu prüfen, ob wir die Linie als trivial verwerfen können
  • WENN Linie verworfen werden kann, DANN
  • WENN Teile außerhalb der Clip-Fläche liegen müssen,
  • DANN
  • Ergebnis = aktuelle Linie
  • SONST
  • Ergebnis = Null
  • SONST
  • AUFRUF "LINIE ZUM BEREICH CLIPPEN", um die Linie zu clippen
  • WENN-ENDE
  • AUSFÜHREN für jede Linie im Ergebnis
  • WENN diese Linie nicht als überlappend gekennzeichnet ist, DANN
  • AUFRUF "LINIE DER TEILE-KISTE HINZUFÜGEN"
  • SONST
  • nur dann überlappende Linien verarbeiten, wenn eine Liste von Teilen aufgebaut wird, die innerhalb der Clip-Fläche liegen
  • WENN Teile innerhalb der Clip-Fläche liegen müssen, DANN wird jede überlappende Linie weiter zu ihrer sie enthaltenden Fläche geclippt, um sie aufzuspalten, wenn sie von ihrer eigenen Grenze geschnitten wird.
  • AUFRUF "LINIE ZUR FLACHE CLIPPEN", um das aufgeteilte Ergebnis zu erzeugen
  • AUSFÜHREN für jede Linie im aufgespaltenen Ergebnis
  • AUFRUF "LINIE DER TEILE-LISTE HINZUFÜGEN"
  • Linie aus dem aufgespaltenen Ergebnis löschen
  • AUSFÜHREN ENDE
  • WENN-ENDE
  • WENN-ENDE
  • AUSFÜHREN ENDE
  • Linie aus dem Ergebnis löschen
  • AUSFÜHREN ENDE
  • AUSFÜHREN ENDE
  • WENN der erste Vertex im ersten Teil mit dem letzten Vertex im letzten Teil übereinstimmt
  • UND keiner der Teile als überlappend gekennzeichnet ist
  • DANN
  • AUFRUF "ZWEI TEILE VERBINDEN", um den ersten Teil mit dem letzten Teil zu verbinden
  • WENN-ENDE
  • Linie in die Teile-Liste eintragen 52
  • Eine einzelne Linie in eine Teile-Liste eintragen. Als überlappend gekennzeichnete Linien werden in der Teile-Liste einzeln gehalten. Andere Linien werden an das Ende des aktuellen Teils angehängt, wenn dies möglich ist.
  • WENN Teile-Liste leer ist
  • ODER der aktuelle Teil als überlappend gekennzeichnet ist
  • ODER die Linie als überlappend gekennzeichnet ist
  • ODER der letzte Vertex des aktuellen Teils sich vom ersten Vertex auf der Linie unterscheidet
  • DANN
  • einen neuen Teil beginnen
  • Den ersten und letzten Vertex der Linie in den neuen Teil kopieren
  • SONST
  • den letzten Vertex der Linie dem aktuellen Teil hinzufügen
  • WENN-ENDE
  • Fenster 53
  • Dieses Verfahren nimmt eine Linie und eine Fläche und setzt eine Flagge, um anzuzeigen, ob die Linie sich komplett außerhalb des Inzidenz-Rechtecks der Fläche befindet. Hierdurch kann die Linie als trivial aus dem Clipping-Verfahren verworfen werden.
  • Geeignete Techniken nach dem bisherigen Stand der Technik sind bekannt.
  • Zwei Teile verbinden 54
  • In diesem Verfahren werden zwei Teile (Teil 1 und Teil 2) genommen und miteinander verbunden. Es wird angenommen, daß der Aufrufer festgelegt hat, daß der letzte Vertex in Teil 1 einem der End-Vertices von Teil 2 entspricht, d. h., daß Teil 2 mit dem Ende des Teils 1 verbunden werden kann.
  • Teil 2 wird aus seiner ihn enthaltenden Liste herausgenommen und an Teil 1 angehängt, wenn Teil 1 jetzt ein Polygon definiert, wird er aus seiner Liste herausgenommen und der Definition der Ergebnisfläche hinzugefügt.
  • WENN letzter Vertex von Teil 1 = letzter Vertex von Teil 2, DANN die Reihenfolge der Vertices in Teil 2 umkehren
  • WENN-ENDE
  • Letzten Vertex in Teil 1 löschen Teil 2 zum Ende von Teil 1 übertragen
  • WENN der letzte Vertex mit dem ersten Vertex in Teil 1 übereinstimmt, DANN
  • wurde ein Polygon gebildet Teil 1 aus seiner Liste entfernen
  • WENN alle Linien im Polygon als überlappend gekennzeichnet sind, DANN
  • ist dieses Polygon beiden Flächen gemeinsam, wir müssen seine Bedeutung bestimmen
  • Eine horizontale Linie definieren, die das Inzidenz-Rechteck des Polygons halbiert, das heißt xmin, (ymax-ymin)/2 bis xmin, (ymax-ymin)/2
  • AUFRUF "LINIE ZUR FLÄCHE CLIPPEN", um eine Linie innerhalb der Subjektfläche zu clippen
  • AUFRUF "LINIE ZUR FLÄCHE CLIPPEN", um eine Linie innerhalb der Clip-Fläche zu clippen, diese beiden Ergebnisse vergleichen
  • WENN der erste Punkt in jedem Ergebnis verschieden ist
  • ODER nur ein Ergebnis gleich Null ist
  • DANN
  • haben die Polygone eine unterschiedliche Bedeutung (d. h., ein Polygon ist eine Öffnung und das andere ein massiver Körper) Polygon zur Ergebnisflächendefinition übertragen
  • SONST
  • Polygon löschen
  • SONST
  • Polygon zur Ergebnisflächendefinition übertragen
  • WENN-ENDE
  • WENN-ENDE
  • Linie zum Bereich clippen 55
  • Mit dieser Prozedur wird eine einzelne "Subjekt-Linie" zur Innen- oder Außenseite einer Fläche geclippt. Das Ergebnis ist eine Anzahl von Linien, dargestellt durch eine Liste, die eine gerade Zahl geordneter Punkte enthält. Jedes ungeradegerade Punktepaar definiert die beiden Endpunkte einer Linie.
  • Bestimmen der Hauptachse der Linie
  • WENN Endpunkt 1 > Endpunkt 2 entlang der Hauptachse,
  • DANN
  • die beiden Endpunkte der Linien austauschen daran denken, daß die Linie umgekehrt wurde
  • WENN-ENDE
  • AUFRUF "LISTE DER ÜBERSCHNEIDUNGEN HOLEN" zum Aufbau einer Liste mit allen Überschneidungen der (in beiden Richtungen zur Unendlichkeit verlängerten) Linie mit der Fläche.
  • AUFRUF "LISTE DER ÜBERSCHNEIDUNGEN VERARBEITEN" zum Aufbau der Liste von Vertices, welche die Clip-Linie darstellen
  • WENN die ursprüngliche Linie umgekehrt wurde, DANN die beiden Endpunkte der Linien austauschen
  • Liste der Überschneidungen holen 56
  • Alle Überschneidungen einer zur Unendlichkeit verlängerten Linie mit einer Flächengrenze finden.
  • Die Überschneidung der Subjektlinie mit jeder Grenzlinie wird berechnet, liegt die Überschneidung im Bereich der Grenzlinie, wird sie der Liste der Überschneidungen hinzugefügt.
  • Grenzlinien, die zu der Subjektlinie ko-linear sind, werden einer Liste ko-linearer Grenzlinien hinzugefügt, diese Liste wird von dem Befehl "ÜBERLAPPENDE LINIEN KENNZEICHNEN" dazu verwendet, alle Teile der Clip-Linie, die eine Grenzlinie überlappen, zu kennzeichnen.
  • Nach der Sortierung definiert die Liste der Überschneidungen jeden Punkt, an dem die verlängerte Subjektlinie in die Fläche eintritt bzw. diese verläßt, so daß beim Absuchen der Liste Linien von Überschneidungen mit ungerader Numerierung zu Überschneidungen mit gerader Numerierung innerhalb der Fläche liegen und Linien von Überschneidungen mit gerader Numerierung zu Überschneidungen mit ungerader Numerierung außerhalb der Fläche liegen.
  • Es ist wichtig, sicherzustellen, daß die richtige Anzahl von Überschneidungen der Liste hinzugefügt wird, wenn die Subjektlinie einen Vertex schneidet oder zu einer Grenzlinie ko-linear ist, siehe Fig. 4. Dieser Vorgang wird über die Routinen "PARALLELLINIE VERARBEITEN" und "ÜBERSCHNEIDUNG HINZUFÜGEN" abgewickelt.
  • AUSFÜHREN für jedes Polygon in der Fläche
  • AUSFÜHREN für jeden Vertex im Polygon
  • Betrachte die Grenzlinie p1-p2 vom aktuellen Vertex zum nächsten Vertex
  • WENN die Grenzlinie parallel zur Subjektlinie verläuft, DANN
  • AUFRUF "PARALLELLINIE VERARBEITEN"
  • SONST
  • WENN Überschneidung im Bereich der Grenzlinie liegt, DANN
  • AUFRUF "ÜBERSCHNEIDUNG HINZUFÜGEN"
  • WENN-ENDE
  • WENN-ENDE
  • AUSFÜHREN ENDE
  • AUSFÜHREN ENDE
  • Liste der Überschneidungen verarbeiten 57
  • Die Liste der Überschneidungen wird sortiert und abgesucht, um festzustellen, welche Überschneidungen für die resultierende Definition der Clip-Linie benötigt werden. Überschneidungen außerhalb des Bereichs der Subjektlinie werden entfernt.
  • Liste der Überschneidungen entlang der Hauptachse sortieren.
  • Überschneidungen, die sich vor oder am ersten Endpunkt der Subjektlinie befinden, löschen und zählen.
  • Erbringt die Zählung ein ungerades Ergebnis, liegt der erste Endpunkt der Subjektlinie innerhalb der Fläche, sonst außerhalb.
  • Entsprechend der folgenden Tabelle den ersten Endpunkt der Subjektlinie an den Beginn der Liste der Überschneidungen anfügen: Erster Endpunkt der Linien Ausführung des Clip-Verfahrens Ersten Punkt zur Liste hinzufügen? Innenfläche innen Ja außen Nein Außenfläche
  • Liste der Überschneidungen absuchen und zählen, um die letzte Überschneidung zu finden, die vor dem zweiten Endpunkt der Subjektlinien liegt.
  • WENN die Zählung ungerade ist, DANN
  • den zweiten Endpunkt der Subjektlinien am Ende der Liste der Überschneidungen anfügen
  • WENN-ENDE
  • Alle verbleibenden Überschneidungen nach dem zweiten Endpunkt löschen.
  • Wurde die Subjektlinie durch "ÜBERSCHNEIDUNGSLISTE HO- LEN" umgekehrt, DANN
  • die Reihenfolge der Überschneidungen umkehren
  • WENN-ENDE
  • Die Liste der Überschneidungen definiert jetzt die geclippte Subjektlinie
  • AUFRUF "ÜBERLAPPENDE LINIEN KENNZEICHNEN" um alle Teile des Ergebnisses zu kennzeichnen, die eine Flächengrenzlinie überlappen
  • Überlappende Linien kennzeichnen 58
  • Linien und Lücken in der resultierenden Definition der Clip-Linie werden mit den Grenzlinien in der Liste der ko-linearen Grenzlinien verglichen. Alle Linien, die mit einer Grenzlinie überlappen, werden als überlappende Linien gekennzeichnet. Außerdem werden alle Lücken, die mit einer Grenzlinie überlappen, zur Definition der Clip-Linie als überlappende Linien hinzugefügt.
  • AUSFÜHREN für jeden Punkt in der Definition der Clip-Linie mit einer ungeraden Nummer
  • WENN Linie vom aktuellen Punkt zum nächsten Punkt eine der Grenzlinien in der Liste der ko-linearen Grenzlinien überlappt
  • DANN
  • diese Linie als überlappend kennzeichnen
  • WENN-ENDE
  • WENN Linie vom nächsten Punkt zum nächsten Punkt danach überlappt
  • DANN
  • Diese beiden Punkte nach dem aktuellen Punkt hinzufügen, damit die Lücke zu einer Linie wird, diese neue Linie als überlappend kennzeichnen
  • ENDE
  • AUSFÜHREN ENDE
  • WENN der erste Endpunkt der Subjektlinie sich nicht im geclippten Ergebnis befindet, DANN
  • WENN Linie vom ersten Endpunkt der Subjektlinie zum ersten Punkt in der geclippten Linie überlappt
  • DANN
  • Diese beiden Punkte nach dem aktuellen Punkt hinzufügen, damit die Lücke zu einer Linie wird diese neue Linie als überlappend kennzeichnen
  • WENN-ENDE
  • WENN - ENDE
  • Wenn der zweite Endpunkt der Subjektlinie sich nicht im geclippten Ergebnis befindet, DANN
  • WENN Linie vom letzten Punkt im geclippten Ergebnis zum zweiten Endpunkt der Subjektlinie überlappt
  • DANN
  • Diese beiden Punkte nach dem aktuellen Punkt hinzufügen, damit die Lücke zu einer Linie wird, diese neue Linie als überlappend kennzeichnen
  • WENN-ENDE
  • WENN-ENDE
  • Eine Überschneidung hinzufügen 59
  • Mit dieser Prozedur wird festgelegt, ob der Liste der Überschneidungen keine, eine oder zwei Überschneidungen hinzugefügt werden müssen. Bei einer Überschneidung bei P1 muß diese nicht hinzugefügt werden, weil diese Überschneidung bereits als P2 für die vorherige Linie verarbeitet wurde. Wenn die Linie bei P2 schneidet, müssen wir feststellen, ob die Subjektlinie zu der Fläche tangential ist, wenn ja, werden zwei Überschneidungen bei P2 hinzugefügt, sonst wird eine Überschneidung bei P2 hinzugefügt. Wenn sich die Überschneidung nicht bei P1 oder P2 befindet, wird die tatsächliche Überschneidung berechnet und der Liste der Überschneidungen hinzugefügt.
  • WENN sich die Überschneidung bei P1 befindet, DANN nichts ausführen
  • SONST
  • WENN sich die Überschneidung bei P2 befindet, DANN Linie von P1 nach P3 betrachten (dem nächsten Vertex nach P2)
  • WENN die Subjektlinie P1-P3 im Bereich von P1-P3 schneidet
  • DANN
  • Ist die Subjektlinie zu der Fläche nicht tangential
  • Den Punkt P2 zweimal der Liste der Überschneidungen hinzufügen
  • WENN-ENDE
  • SONST
  • Die Koordinaten der Überschneidung berechnen
  • Den Überschneidungspunkt der Liste der Überschneidungen hinzufügen
  • WENN-ENDE
  • WENN-ENDE
  • Parallellinie verarbeiten 60
  • Diese Prozedur verarbeitet eine Subjektlinie, die parallel zu der aktuellen Grenzlinie P1-P2 verläuft. Sind die beiden Linien nicht ko-linear, werden keine Überschneidungen hinzugefügt. Sind sie ko-linear, wird eine Verarbeitung ähnlich wie in "ÜBERSCHNEIDUNG HINZUFÜGEN" ausgeführt, um festzustellen, ob die Subjektlinie zu der Fläche tangential ist oder nicht.
  • Die Nebenachse der Grenzlinie P1-P2 bestimmen
  • Die Linie durch Addieren von 1 zu P1 und Subtrahieren von 1 von P2 entlang der Nebenachse drehen.
  • WENN die Subjektlinie die gedrehte Grenzlinie in der Mitte schneidet
  • DANN
  • sind die Linien ko-linear
  • Die Linie von P0 (vorheriger Vertex zu P1) und P3 betrachten
  • (nächster Vertex nach P2)
  • WENN die Subjektlinie die Linie P0-P3 im Bereich von P0-P3 schneidet
  • DANN
  • ist die Subjektlinie zu der Fläche nicht tangential
  • Punkt P2 einer Liste der Überschneidungen hinzufügen
  • SONST
  • Ist die Subjektlinie zu der Fläche tangential
  • Den Punkt P2 zweimal der Liste der Überschneidungen hinzufügen
  • WENN-ENDE
  • WENN-ENDE
  • Anmerkungen zur Implementierung Berechnung der Linienüberschneidung
  • Zur Berechnung der Überschneidung von zwei Linien wird die folgende Technik angewendet. Um Abrundungsfehler zu vermeiden, kann durchweg eine Festpunkt-Arithmetik verwendet werden. Außerdem kann die Position der Überschneidung, bezogen auf jede Linie, durch Vergleich des oberen und unteren Teils des Bruches, der At oder Bt bildet, gefunden werden, ohne die tatsächliche Überschneidung berechnen zu müssen.
  • Man nehme zwei Linien A und B an, definiert durch ihre Endpunkte Ax1, Ay1 Ax2, Ay2 und Bx1, By1 Bx2, By2
  • Aa = Ay1-Ay2 Ba = By1-By2
  • Ab = Ax2-Ax1 Bb = Bx2-Bx1
  • bot = (Ab*Ba) - (Aa*Bb)
  • wenn bot=0, verlaufen die beiden Linien parallel
  • Atop = Bb*(By1-Ay1) + Ab (By1-Ay1)
  • At = Atop/bot
  • Wenn 0< =At< =1, liegt die Überschneidung im Bereich der Linie A
  • Wenn At< 0 liegt die Überschneidung auf der Seite des Punktes Ax1, Ay1
  • Wenn At> 1 liegt die Überschneidung auf der Seite des Punktes Ax2, Ay2
  • Btop = Aa*(Bx1-Ax1)
  • Bt = Btop/bot
  • Wenn 0< =Bt< =1, liegt die Überschneidung im Bereich der Linie B
  • Wenn Bt< 0 liegt die Überschneidung auf der Seite des Punktes Bx1, By1
  • Wenn Bt> 1 liegt die Überschneidung auf der Seite des Punktes Bx2, By2
  • Der Überschneidungspunkt Ix, Iy kann unter Verwendung von Bt oder At berechnet werden
  • Ix = Ab*At + Ax1 = Bb*Bt + Bx1
  • Iy = -Aa*At + Ay1 = -Ba*Bt + By1
  • Datenstrukturen
  • Flächendefinitionen werden durch eine einfache Datenstruktur dargestellt, bestehend aus einer Liste von Polygonen, wobei jeder Polygon als ein Ring von Punkten (Vertices) dargestellt wird). Flächendefinition Flächenattribute Polygon-Ankerzeiger Liste der Polygone nächster Zeiger vorheriger Zeiger POLYGON-DEFINITION Polygon-Attribute Vertex-Ankerzeiger Ring aus Punkten PUNKT-DEFINITION Punkt-Attribute
  • Zu den Flächenattributen gehören alle Informationen zur Fläche, zum Beispiel
  • das Inzidenz-Rechteck der Flächen (min. & max. X- und Y-Werte)
  • Farbe
  • Schraffurmuster
  • Zu den Polygon-Attributen können folgende gehören:
  • das Inzidenz-Rechteck der Polygone Vertexzählung.
  • Punkt-Attribute enthalten die Koordinate des Punktes sowie Attribute, die von diesem Punkt bis zum nächsten Punkt zur Linie gehören, zum Beispiel:
  • X-Koordinate
  • Y-Koordinate
  • Farbe
  • Linienausführung
  • Überlappungskennzeichen.
  • Eine Liniendefinition besteht einfach aus zwei oder mehr miteinander verbundenen Punkt-Definitionen, so wird zum Beispiel eine einzelne Grenzlinie ganz einfach dadurch in die Clipping-Routine überführt, daß der aktuelle Polygon-Vertex übertragen wird. Das Ergebnis des Clippens ist eine Liste von Punkt-Definitionen, zwischen jedem Punkt mit ungerader Zahl und seinem nächsten Punkt existieren Linien, zwischen jedem Punkt mit gerader Zahl und seinem nächsten Punkt existieren Lücken.
  • Das oben beschriebene Verfahren kann zum Beispiel in einem System verwirklicht werden, wie es die Fig. 6 schematisch darstellt. Eine Hauptrechnereinheit 61 ist an eine Anzeigesteuereinheit 62 angeschlossen. Die Anzeigesteuereinheit 62 steuert die Anzeige und den Bildschirm 63 und empfängt Eingabesignale von einer Tastatur 64 und einer Cursor-Steuereinrichtung 65, die entweder ein Lichtstift, ein Tablett oder eine optische Maus sein kann. Eine Hartkopie der angezeigten Bilder wird von einem Plotter 66 angefertigt, der ebenfalls von der Anzeige-Steuereinheit gesteuert wird. Eine graphische Abbildung kann von einem Benutzer in Dialogmodus auf dem Bildschirm entwickelt und zum späteren Gebrauch in der Hauptrechnereinheit gespeichert werden. Alternativ kann über den Plotter 66 eine Hartkopie erzeugt werden, in diesem Fall wird dann das oben beschriebene Verfahren angewendet.
  • Der zur Steuerung des Systembetriebs zur Ausführung des Prozesses erforderliche Steuermechanismus kann eine in der Zentraleinheit gespeicherte Steuerroutine sein, oder es kann sich um eine auf einer Diskette gespeicherte Steuerroutine handeln, die dann in den Direktzugriffsspeicher der Anzeige-Steuereinheit geladen wird. Ein weiteres Ausführungsbeispiel der Erfindung enthält einen programmierbaren Festwertspeicher, der in der Anzeige-Steuereinheit enthalten ist und die zur Durchführung des Prozesses erforderlichen Routinen speichert.
  • Es ist beabsichtigt, diese möglichen Mechanismen in den Rahmen der folgenden Ansprüche einzubeziehen.

Claims (4)

1. Verfahren zum Bestimmen der Koinzidenz einer Subjektfläche (Fig. 1A) mit einer Clip-Fläche (Fig. 1B), von denen jede ein oder mehrere gegebenenfalls überlappende, sich selbst schneidende Polygone aufweist, in einem graphischen Anzeigesystem (61, 61, 63, 64, 65, 66), in welchem Flächendefinitionen in einem Anzeigelistenspeicher gespeichert sind, das die folgenden Schritte aufweist:
a) Erzeugen und Speichern (51) einer Liste mit Subjektflächenteilen; die für jeden Teil einer oder mehrerer angrenzender Linien (12-17, 20-21) der Subjektfläche, die nicht durch die Clip-Fläche führen, getrennte Einträge aufweist,
b) Erzeugen und Speichern (51) einer Liste mit Clip-Flächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien (24, 28, 30) der Clip-Fläche, die durch die Subjektfläche führen, getrennte Einträge aufweist,
c) Erzeugen und Speichern (51) einer Liste für überlappende Teile, die für jeden Teil eine überlappenden Linie (11, 22), sowohl der Subjekt als auch der Clip-Fläche, getrennte Einträge aufweist,
d) für jeden Eintrag in der Liste der Subjektflächenteile: Absuchen (50) nicht verarbeiteter Einträge erstens in der Liste der Subjektflächenteile, zweitens in der Liste der Clip-Flächenteile und drittens in der Liste der überlappenden Teile nach einem Eintrag, der eine gleiche Definition des Endpunktes besitzt, wie eine Endpunktdefinition des zu verarbeitetenden Teils, Erzeugen eines neuen Teils durch Verbinden (54) jedes gefundenen Teils mit dem zu verarbeitenden Teil, Speichern des erzeugten Teils in einer Liste für Ergebnisteile und Wiederholen der Verarbeitung für den Eintrag in der Liste für die Ergebnisteile bis keine weiteren Teile gefunden werden, wodurch die Liste der Ergebnisteile die Definition des Abschnittes der Subjektfläche enthält, der nicht mit der Clip-Fläche übereinstimmt.
2. Verfahren nach Anspruch 1, bei welchem das graphische Anzeigesystem einen Ausgabeplotter (66) enthält und die Liste der Ergebnisteile zur Steuerung des Plotters verwendet wird, wenn die Subjektfläche gezeichnet wird.
3. Graphisches Anzeigesystem (61, 62, 63, 64, 65, 66), bei welchem Flächendefinitionen in einem Anzeigelistenspeicher gespeichert sind, das Steuermittel enthält, zur Steuerung des Betriebes des Systems für das Ausführen des Verfahrens zum Bestimmen der Koinzidenz einer Subjektfläche (Fig. 1A) mit einer Clip-Fläche (Fig. 1B) eingestellt sind, von denen jede einen oder mehrere, gegebenenfalls überlappende, sich selbst schneidende Polygone aufweist, das die folgenden Schritte aufweist:
a) Erzeugen und Speichern (51) einer Liste mit Subjektflächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien (12-17, 20-21) der Subjektfläche, die nicht durch die Clip-Fläche führen, getrennte Einträge aufweist,
b) Erzeugen und Speichern (51) einer Liste mit Clip-Flächenteilen, die für jeden Teil einer oder mehrerer angrenzender Linien (24, 28, 30) der Clip- Fläche, die durch die Subjektfläche führen, getrennte Einträge aufweist,
c) Erzeugen und Speichern (51) einer Liste für überlappende Teile, die für jeden Teil einer überlappenden Linie (11, 22), sowohl der Subjekt- als auch der Clip- Fläche, getrennte Einträge aufweist,
d) für jeden Eintrag in der Liste der Subjektflächenteile: Absuchen (50) nicht verarbeiteter Einträge erstens in der Liste der Subjektflächenteile, zweitens in der Liste der Clip-Flächenteile und drittens in der Liste der überlappenden Teile nach einem Eintrag, der eine gleiche Definition des Endpunktes besitzt, wie eine Endpunktdefinition des zu verarbeitetenden Teils, Erzeugen eines neuen Teils durch Verbinden (54) jedes gefundenen Teils mit dem zu verarbeitenden Teil, Speichern des erzeugten Teils in einer Liste für Ergebnisteile und Wiederholen der Verarbeitung für den Eintrag in der Liste für die Ergebnisteile bis keine weiteren Teile gefunden werden, wodurch die Liste der Ergebnisteile die Definition des Abschnittes der Subjektfläche enthält, der nicht mit der Clip-Fläche übereinstimmt.
4. Graphisches Anzeigesystem nach Anspruch 3, das einen Ausgabeplotter (66) enthält und bei welchem die Liste der Ergebnisteile zur Steuerung des Plotters verwendet wird, wenn die Subjektfläche gezeichnet wird.
DE8585104226T 1984-05-05 1985-04-11 Graphische anzeigesysteme. Expired - Fee Related DE3587129T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB848411579A GB8411579D0 (en) 1984-05-05 1984-05-05 Graphic display systems

Publications (2)

Publication Number Publication Date
DE3587129D1 DE3587129D1 (de) 1993-04-08
DE3587129T2 true DE3587129T2 (de) 1993-09-16

Family

ID=10560553

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8585104226T Expired - Fee Related DE3587129T2 (de) 1984-05-05 1985-04-11 Graphische anzeigesysteme.

Country Status (6)

Country Link
US (1) US4698779A (de)
EP (1) EP0163852B1 (de)
JP (1) JPS60239825A (de)
CA (1) CA1219377A (de)
DE (1) DE3587129T2 (de)
GB (1) GB8411579D0 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853971A (en) * 1985-03-18 1989-08-01 Dainippon Screen Mfg. Co., Ltd. Method and apparatus for processing image data
FR2586838B1 (fr) * 1985-08-30 1989-07-28 Labo Electronique Physique Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions
US5003498A (en) * 1986-01-13 1991-03-26 Hitachi, Ltd. Graphic display method
US4829446A (en) * 1986-12-12 1989-05-09 Caeco, Inc. Method and apparatus for recording and rearranging representations of objects in a model of a group of objects located using a co-ordinate system
JP2777628B2 (ja) * 1987-06-15 1998-07-23 株式会社日立製作所 図形処理方法及び装置
US4888712A (en) * 1987-11-04 1989-12-19 Schlumberger Systems, Inc. Guardband clipping method and apparatus for 3-D graphics display system
US4958305A (en) * 1987-11-04 1990-09-18 General Electric Company Polygon edge clipping
JPH0187463U (de) * 1987-12-02 1989-06-09
US5040130A (en) * 1988-09-20 1991-08-13 International Business Machines Corporation Computer graphics boundary--defined area clippping and extraneous edge deletion method
EP0372810A3 (de) * 1988-12-02 1991-07-10 Spectra-Physics, Inc. Farbstrahldrucker
US4980843A (en) * 1988-12-02 1990-12-25 Spectra-Physics Ink saving method for plotters
US5247609A (en) * 1988-12-08 1993-09-21 Thermo Separation Products (California) Inc. Line density control for plotters
EP0382495B1 (de) * 1989-02-08 2000-04-26 Canon Kabushiki Kaisha Figurverarbeitungsgerät
US5060170A (en) * 1989-08-09 1991-10-22 International Business Machines Corp. Space allocation and positioning method for screen display regions in a variable windowing system
US5146554A (en) * 1989-09-29 1992-09-08 Eastman Kodak Company Page memory control in a raster image processor employed for digital halftoning
US5131049A (en) * 1989-12-08 1992-07-14 Xerox Corporation Identification, characterization, and segmentation of halftone or stippled regions of binary images by growing a seed to a clipping mask
US5231695A (en) * 1990-08-29 1993-07-27 Xerox Corporation Generalized clipping in an extended frame buffer
EP0521210B1 (de) * 1991-07-05 2000-03-22 International Business Machines Corporation Graphische Abschneidung
EP0521209B1 (de) * 1991-07-05 2000-03-01 International Business Machines Corporation Graphisches Verarbeitungsgerät, -verfahren und -computerprogram
US6005574A (en) * 1991-07-05 1999-12-21 International Business Machines Corporation Data processing system including method and apparatus for performing graphics clipping operations
KR940003044B1 (ko) * 1991-09-13 1994-04-11 삼성전자 주식회사 영상합성 방법 및 장치
US5563990A (en) * 1992-10-30 1996-10-08 International Business Machines Corporation Method and apparatus for processing a pick event
JP2607416B2 (ja) * 1993-01-14 1997-05-07 株式会社日立製作所 図形選択表示方法
US5668931A (en) * 1993-03-31 1997-09-16 Dermer; Richard A. Method for automatic trap selection for correcting for plate misregistration in color printing
US5313570A (en) * 1993-03-31 1994-05-17 Miles, Inc. Method for determining color boundaries for correcting for plate misregistration in color printing
US5613046A (en) * 1993-03-31 1997-03-18 Miles Inc. Method and apparatus for correcting for plate misregistration in color printing
US5613052A (en) * 1993-09-02 1997-03-18 International Business Machines Corporation Method and apparatus for clipping and determining color factors for polygons
US5546524A (en) * 1993-12-15 1996-08-13 International Business Machines Corp. Method and apparatus for interlocking graphical objects
US5757963A (en) * 1994-09-30 1998-05-26 Xerox Corporation Method and apparatus for complex column segmentation by major white region pattern matching
US5555556A (en) * 1994-09-30 1996-09-10 Xerox Corporation Method and apparatus for document segmentation by background analysis
US5574802A (en) * 1994-09-30 1996-11-12 Xerox Corporation Method and apparatus for document element classification by analysis of major white region geometry
US5699453A (en) * 1994-09-30 1997-12-16 Xerox Corporation Method and apparatus for logically tagging of document elements in the column by major white region pattern matching

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3816726A (en) * 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
US3889107A (en) * 1972-10-16 1975-06-10 Evans & Sutherland Computer Co System of polygon sorting by dissection
US4319339A (en) * 1976-06-11 1982-03-09 James Utzerath Line segment video display apparatus
JPS5326534A (en) * 1976-08-25 1978-03-11 Hitachi Ltd Vi deo display device
DE3008443A1 (de) * 1979-03-05 1980-09-18 Texas Instruments Inc Digitale datenverarbeitungsanordnung
US4492956A (en) * 1980-02-29 1985-01-08 Calma Company Graphics display system and method including preclipping circuit
US4328550A (en) * 1980-08-08 1982-05-04 Weber John M Programmer unit with composite calculation capability
US4412296A (en) * 1981-06-10 1983-10-25 Smiths Industries, Inc. Graphics clipping circuit
US4622545A (en) * 1982-09-30 1986-11-11 Apple Computer, Inc. Method and apparatus for image compression and manipulation
US4531120A (en) * 1983-01-20 1985-07-23 International Business Machines Corporation Superposing graphic patterns

Also Published As

Publication number Publication date
CA1219377A (en) 1987-03-17
US4698779A (en) 1987-10-06
EP0163852A3 (en) 1990-03-21
EP0163852B1 (de) 1993-03-03
EP0163852A2 (de) 1985-12-11
GB8411579D0 (en) 1984-06-13
JPS60239825A (ja) 1985-11-28
DE3587129D1 (de) 1993-04-08

Similar Documents

Publication Publication Date Title
DE3587129T2 (de) Graphische anzeigesysteme.
DE3650119T2 (de) Verfahren zur Anzeigesteuerung für ein System mit mehreren Bildausschnitten.
DE69129474T2 (de) Veränderung eines graphischen Anzeigebildes
DE3335162C2 (de) Vorrichtung und Verfahren für graphische Darstellungen mittels Computer
DE3346816C2 (de)
DE69130509T2 (de) Interaktive datenanzeige
DE3787496T2 (de) Verfahren und Einrichtung zum Steuern von Mehrfenstern und Arbeitsstation mit Mehrfensterfunktion.
DE69418908T2 (de) Verfahren und Gerät zum Informationsanschauen in einer Rechnerdatenbank
DE3121503C2 (de) Dokumenten-Verarbeitungssystem
DE3806223C2 (de) Verfahren zur Erzeugung von Zeichenmustern
DE69017118T2 (de) Verfahren zur Steuerung der Konstruktion von veränderlichen Fenstern auf einem Anzeigebildschirm.
EP0096079B1 (de) Verfahren zur Aufbereitung von Punktrasterdaten für Zeichen- und/oder Bilddarstellungen
DE69219281T2 (de) Verfahren und Vorrichtung mit Datenikonen
DE3688918T2 (de) System für geometrische Verarbeitung.
DE3722444A1 (de) Verfahren und vorrichtung zum erzeugen von entwurfsmusterdaten
DE3586646T2 (de) Bildanzeigegeraet.
DE69130085T2 (de) Figuredierungsgerät
DE2943749C2 (de)
DE3629104A1 (de) Handschriftzeichen-eingabesystem
DE19528596C2 (de) Verfahren und Vorrichtung zur Kolorierunterstützung
DE3407983A1 (de) Mehrprozessorrechnersystem zum verarbeiten in einer hierarchischen datenstruktur definierter objektelemente zu einer farbigen abbildung
DE3401060A1 (de) Verfahren zum grafischen darstellen eines gebildes
DE2752421A1 (de) Anordnung fuer die abtastung und digitalisierung von grafischen darstellungen oder daten
DE60106301T2 (de) Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten
DE3855225T2 (de) Datenbanksystem für Bildkomposition

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee