DE68928227T2 - Rechnerverfahren und Gerät zur Erzeugung eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement darstellt - Google Patents
Rechnerverfahren und Gerät zur Erzeugung eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement darstelltInfo
- Publication number
- DE68928227T2 DE68928227T2 DE1989628227 DE68928227T DE68928227T2 DE 68928227 T2 DE68928227 T2 DE 68928227T2 DE 1989628227 DE1989628227 DE 1989628227 DE 68928227 T DE68928227 T DE 68928227T DE 68928227 T2 DE68928227 T2 DE 68928227T2
- Authority
- DE
- Germany
- Prior art keywords
- brush
- procedure
- point
- trajectory
- bezier curve
- 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
Links
- 238000000034 method Methods 0.000 title claims description 107
- 238000012545 processing Methods 0.000 claims description 26
- 238000012360 testing method Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000009825 accumulation Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008520 organization Effects 0.000 claims description 4
- 230000001427 coherent effect Effects 0.000 claims description 3
- 230000001680 brushing effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004040 coloring Methods 0.000 description 5
- 239000002131 composite material Substances 0.000 description 5
- 238000007792 addition Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 244000185238 Lophostemon confertus Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003121 nonmonotonic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Description
- Die Erfindung bezieht sich auf ein Rechnerverfahren zur Erzeugung eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement darstellt. In der US-amerikanischen Patentschrift 4.631.690 des gleichen Zessionars, durch Nennung als hierin aufgenommen betrachtet, wird ein Multiprozessorsystem zur Bildung eines Farbbildes aus Objektelementen beschrieben, die in einer hierarchischen Datenstruktur definiert sind. Die vorliegende Erfindung ist nicht auf eine Hierarchie mit mehreren Ebenen beschränkt. Die vorliegende Erfindung kann auf ein Zweifarbsystem (z.B. Schwarz und Weiß) und auf eine Ein-Prozessor-Implementierung angewendet werden. Der Stand der Technik zeigt, daß selbst bei einer komplizierten bildlichen Situation die Anzahl der Berechnungsschritte, die für die Zuweisung einer Farbe für ein bestimmtes Pixel erforderlich sind, auf einen niedrigen Mittelwert begrenzt bleibt. Für den speziellen Fall der Bezier-Kurven und -Formen verkürzt sich die Berechnung im allgemeinen auf elementare Verschiebe- und Addier-Operationen, die direkt zu einer Implementierung der Verarbeitung als Siliziumanordnung führen. Die vorliegende Vorgehensweise ist punktbezogen - im Gegensatz zu der herkömmlichen objektbezogenen Vorgehensweise, die derzeit allgemein üblich ist. Die vorliegende Erfindung sieht die Verwendung von Pinseln vor. Für die entsprechende Konzeptionierung wird eine Bezier-Kurve als ein primitives Element definiert, das durch eine Bezier-Formel ausgedrückt wird. Ein Pfad ist eine Verkettung von Kurven und kann geschlossen oder nicht-geschlossen sein. Ein Pfad kann aus einer einzelnen Kurve bestehen. Eine Form wird durch einen oder mehrere geschlossene Pfade beschrieben. Eine bestimmte Innerhalb-zu-Außerhalb-Definition spezifiziert die Punkte der Form.
- Für eine bessere Erläuterung der nachfolgenden Beschreibung werden die folgenden drei Referenzrahmen spezifiziert:
- - erstens gibt es kontinuierliche oder analoge Anwendungs-Koordinaten, in denen die darzustellenden Objekte konzeptionell modelliert werden; diese werden im folgenden nicht betrachtet;
- - zweitens gibt es diskrete Anwendungs-Koordinaten, die für Rechenmodelle dieser Objekte und für digitale Berechnungen zur Erzeugung der darzustellen Ergebnisse benutzt werden;
- - schließlich spezifizieren diskrete Geräte-Koordinaten Pixel in dem darzustellenden Bildfeld gemäß einer bestimmten Farbspezifikation.
- Die Erfindung hat unter anderem zur Aufgabe, die Realisierung eines Pinsel-Überlagerung über ein Bahn zu ermöglichen, wobei die Bahn ein Pfad ist, und mittels elementarer arithmetischer Operationen ein Innerhalblaußerhalb-Prädikat für jedes Anzeigepixel und dadurch eine Farbe zu bestimmen. Der Nutzen einer solchen Überlagerung kann zum Beispiel einer der folgenden sein.
- a. gemäß einem ersten Anwendungsgebiet ist die Bahn die Führungslinie der Pinselbewegung, wobei jedes Pixel, das zu irgendeinem Zeitpunkt durch den Pinsel abgedeckt wurde, einen booleschen Ausdruck "innerhalb" erhält im Unterschied zu einem Pixel, das niemals durch den Pinsel abgedeckt wurde. Hier ist die Bahn eine nicht-rationale Bezier-Kurve, und das Innere des Pinsels ist eine Bezier-Form. Der Pinsel hat einen Ursprung oder Bezugspunkt, der sich auf der Bahn entlangbewegt. Die zu farbende Fläche braucht nicht als Bezier- Form definiert zu werden. Die vorliegende Erfindung erlaubt eine einfachere Modellierung der Bahn für eine Vielzahl von anwendbaren Pinselformen und läßt sich dennoch einfach implementieren.
- b. gemäß einem zweiten Anwendungsgebiet wird die Bahn durch den Umriß von Zeichen und ähnlichem gebildet, die als relativ kleine Bahnen mit vielen winzigen Details gedacht werden können. Ein Problem besteht dann darin, daß trotz Änderungen in der Vergrößerung, zum Beispiel Entzoomen, die Zeichen so lange wie möglich lesbar bleiben müssen. Eine interessante Lösung ist die Verwendung des Zeichenrandes als eine Pinselbahn. Alle Pixel, die durch den sich bewegenden Pinsel abgedeckt werden, erhalten die gleiche Farbe wie der Rest des Zeichens. An sich kann die Form des Pinsels beliebig sein. Das Zeichen wird also etwas ausgeweitet; auf diese Weise werden Probleme vermieden, die aufgrund von Unterabtastung von schmalen farbigen Formen bei starkem Entzoomen entstehen könnten. In diesem Fall muß die Bahn eine geschlossene Form haben. Wenn die Bahn keine geschlossene Form hat, herrscht das System aus Gebiet a) vor, das auch umfangreiches Entzoomen mildert. Die Verbindungslinien zwischen zwei Blöcken in einem Blockdiagramm würden zum Beispiel die Anschließbarkeit beibehalten. Für eine korrekte Lösung des Entzoom-Problems würden die Abmessungen des Pinsels in digitalen Anwendungs-Koordinaten so gewählt, daß sie der Pixel-Periodizität fast oder vollkommen entsprechen. Ein besonderer Vorteil dieser Anwendung ist die einfache Implementierbarkeit von elementaren und lokal anwendbaren Algorithmen für Anti-Aliasing; das Anti-Aliasing selbst ist in der Bildverarbeitung bekannt.
- c. ein drittes Anwendungsgebiet ist die Prüfung der räumlichen Kohärenz, das heißt die Prüfung eines Fensters auf Farbgleichförmigkeit. Diese Kohärenzinformation ermöglicht verschiedene strategische Maßnahmen, zum Beispiel die Entscheidung, ob ein Symbol (Icon), ein Teilbild oder andere bildliche Elemente, wenn sie in diesem Fenster plaziert sind, die zuvor vorhandenen Informationen stören würden. In diesem Fall wird ein Pinsel verwendet, dessen Form mit der Form des Fensters übereinstimmt, aber der in bezug auf einen vorgegebenen Fenster-Bezugspunkt invertiert ist. Der neue Pinsel fahrt jetzt mit seinem Bezugspunkt jede relevante Farbkante im Bild entlang und es wird festgestellt, ob der Pinsel den ursprünglichen Bezugspunkt irgendwann berührt. Wenn dies der Fall ist, ist die Fensterfarbe nicht gleichförmig. Die beschriebene Handlung läuft schneller ab als in umgekehrter Richtung, wobei alle Fensterpixel der Reihenfolge nach in Hinblick auf alle Bezier-Pfade abgefragt werden müßten.
- Es ist zu beachten, daß in allen Fällen ein Teil der Bahn aus dem Sichtfenster herausreichen kann. Bei der Anzeigevorrichtung kann es sich um eine Kathodenstrahlröhre, eine Flüssigkristallanzeige, einen Ausdruck auf Papier oder anderes handeln. Gemäß einem Aspekt der Erfindung wird die Aufgabe durch ein Rechnerverfahren zur pixelweisen Erzeugung eines Anzeigebildes erfüllt, das einen Objektelementensatz mit einem Pinselobjektelement darstellt, welches eine Bezier-Form ist, die mit ihrem Führungszentrum auf einer Führungsbahn entlangbewegt wird, die ein nicht-rationaler Bezier-Pfad in dem genannten Objektsatz ist, wobei das Verfahren folgende Schritte umfaßt:
- a. für jede Bahn-Bezier-Kurve einen bahnbezogenen Satz von Bahnsteuerpunkten in einem zugehörigen koordinatenartig orientierten Bahnkürven-Begrenzungskasten liefern und für jede Pinsel-Bezier-Kurve einen pinselbezogenen Satz von Pinselsteuerpunkten in einem zugehörigen Pinselkurven-Begrenzungskasten liefern, und einen Pinsel-Begrenzungskasten mit allen Punkten der Pinselform liefern;
- b. für jedes Pixel Anwendungs-Koordinatenwerte hinsichtlich jedes relevanten Objektelementes für einen tatsächlichen Punkt bestimmen, der mit diesem Pixel übereinstimmt, und anschließend erweitern jedes entsprechenden Bahnkurven- Begrenzungskastens mit dem Pinsel-Begrenzungskasten zu einem ausgeweiteten Kasten und
- c. in einem Bestimmungsverfahren für den genannten tatsächlichen Punkt bestimmen, entweder:
- c1. tatsächlicher Punkt liegt außerhalb des ausgeweiteten Kastens, dann fragliche Bahnkurve zurückweisen und zu einer anderen Bahnkurve gehen, oder
- c2. tatsächlicher Punkt liegt innerhalb des Pinsel-Begrenzungskasten, wenn das Pinsel-Führungszentrum in einem der Endpunkte der tatsächlichen Bahnkurve positioniert ist, dann Pinselprozedur mit Bezug auf einen solchen Endpunkt ausführen, aber
- c.3 andernfalls eine Teilungsprozedur für die betreffende Bahn-Bezier-Kurve ausführen und einen beliebigen Teil als sekundäre Bahn-Bezier-Kurve zur Verarbeitung in der genannten Bestimmungsprozedur nehmen;
- d. in der Pinseiprozedur für jede Pinsel-Bezier-Kurve für den genannten tatsächlichen Punkt bestimmen, entweder:
- d1. tatsächlicher Punkt liegt außerhalb des Pinselkurven-Begrenzungskastens, dann zur Schnittpunkt-Prozedur gehen, oder
- d2. tatsächlicher Punkt deckt sich mit einem Pinsel-Bezier-Kurven-Endpunkt, dann beenden und mit Zuordnungs-Operation fortfahren, oder
- d3. alle Steuerpunkte der Pinsel-Bezier-Kurve liegen in einem diskreten 2x2- Punkt-Quadrat, dann zur Schnittpunkt-Prozedur gehen, aber
- d4. andernfalls die Teilungsprozedur für die betreffende Pinsel-Bezier-Kurve ausführen und einen beliebigen Teil als sekundäre Pinsel-Bezier-Kurve zur Verarbeitung in der genannten Pinselprozedur nehmen;
- e. in der genannten Schnittpunkt-Prozedur eine Anzahl von Schnittpunkten von einer bestimmten quasi-unendlichen Linie beginnend in dem genannten tatsächlichen Punkt mit einer tatsächlichen Pinsel-Bezier-Kurve bestimmen und die genannte Anzahl akkumulieren, bis alle Pinsel-Bezier-Kurven in der Pinselprozedur verarbeitet sind und dann im Falle eines ungeradzahligen Akkumulationsergebnisses zu der genannten Zuordnungs-Operation gehen, aber andernfalls zu der genannten Bestimmungsprozedur zurückkehren und dabei die Akkumulierung zurücksetzen;
- f. in der genannten Zuordnungsprozedur dem betreffenden Pixel eine "Innerhalb"- Angabe zuweisen und Prozedur beenden;
- g. aber andernfalls dem betreffenden Pixel eine "Außerhalb"-Angabe zuweisen und Prozedur beenden.
- Die Erfindung bezieht sich auch auf ein Gerät zur Erzeugung eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement darstellt. Die Verarbeitung kann sehr gut in einem (hoch-)integrierten Schaltungsprozessor erfolgen.
- In den abhängigen Ansprüchen werden verschiedene vorteilhafte Aspekte genannt.
- Die Erfindung ermöglicht eine besonders schnelle und vielseitige Implementierung der punkt-gesteuerten Färbung von Pinseln in einem Anzeigegebiet, wobei die Pinsel viele verschiedene Formen haben können und weitgefaßte Anwendbarkeit finden, zum Beispiel in einer Entzoom-Situation. Außerdem können Bezier-Kurven, Pfade und Formen von unterschiedlicher Komplexität benutzt werden. Solche Vorteile könnten bei der Anzeige von Blockdiagrammen, schematischen Darstellungen vielerlei Art, technischen Zeichnungen, animierten Filmen, Textverarbeitungsprogrammen und vielem mehr von Nutzen sein. Insbesondere sind die Verarbeitungs-Operationen von einfacher Art, so daß sie entweder auf kostengünstige Weise mit allgemeinen Schaltungen ausgeführt werden können oder mit speziellen Schaltungen, die für die Geschwindigkeit optimiert wurden. Bemerkenswert ist, daß die Datenstruktur belieibig komplex sein kann und kaum besondere Fertigkeiten vom Bediener verlangt werden.
- Die Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher beschrieben. Es zeigen:
- die Figuren 1a bis 1d verschiedene Formen von Bahnen und Pinseln;
- die Figuren 2a bis 2c Anwendungen der Erfindung;
- die Figuren 3a bis 3f verschiedene Operationen in bezug auf Bezier-Kurven;
- die Figuren 4a bis 4c Architekturen zur erfindungsgemäßen Ausführung der Operationen;
- die Figuren 5a bis 5c Operationen in bezug auf rationale Bezier-Kurven;
- die Figuren 6a bis 6c verschiedene Beschleunigungsmechanismen für den Prozeß.
- Die genannte Patentschrift enthält eine umfangreiche Detailbeschreibung von nicht-rationalen Bezier-Kurven erster Ordnung (gerade Linien) und beliebiger höherer Ordnung. Jede Bezier-Kurve wird durch eine begrenzte Anzahl von sogenannten Steuerpunkten vollständig definiert, wobei der erste und der letzte Steuerpunkt mit den Endpunkten der Kurven zusammenfallen. Ein analytischer Ausdruck der Kurve wird durch ein Bezier-Polynom gebildet. Eine Bezier-Kurve der Ordnung j hat j +1 Steuerpunkt. Zunächst werden ausschließlich nicht-rationale Bezier-Kurven betrachtet.
- Figur 1 zeigt verschiedene Formen von Bahnen und Pinseln, die jeweils aus Bezier-Kurven erster Ordnung, also aus Geraden-Segmenten, gebildet werden. Der Kürze halber werden Bezier-Kurven höherer Ordnung nicht erörtert. Figur 1a zeigt eine aus drei aneinanderstoßenden geraden Linien bestehende Bahn; diese Bahn ist keine geschlossene Figur und würde selbst keine Innenregion oder Form definieren. Figur 1b zeigt eine Bahn in Form des Großbuchstabens L; diese Bahn ist eine geschlossene Figur und definiert eine Innenregion oder Form gegenüber einer Außenregion. Wenn die innerhalb der Form befindlichen Informationen anders dargestellt werden sollen als die Außenregion, erfolgt die entsprechende Zuordnung auf Pixel-für-Pixel-Basis. Dies ist kein Problem, wenn die Breite der Balken in Geräte-Koordinaten zum Beispiel drei Pixel oder mehr beträgt. Ist die Breite geringer, könnte ein gewisses Rauschen auftreten, das zu unregelmäßigen Kanten führt, wodurch die Lesbarkeit reduziert wird. Eine Standardlösung besteht darin, jeder Buchstabengröße und -ausrichtung normierte Formen in Form von Bit-Maps zuzuweisen. Dies verhindert jedoch einige elementare graphische Operationen wie Rotieren, Spiegeln und nicht ganzzahlige Vergrößerung. Die Probleme werden noch schwerwiegender, wenn die Breiten der Striche auf ein Pixel oder weniger heruntergehen. In bestimmten Situationen können die Striche aufgrund von Unterabtastung unterbrochen werden. Die vorliegende Lösung besteht darin, die Innenregion durch einen sogenannten Pinsel auszuweiten. Figur 1c zeigt ein elementares Pinselobjektelement in Form eines Quadrats. Es hat ein Führungszentrum, das als Punkt dargestellt ist. Das Führungszentrum wird jetzt auf der Bahn entlangbewegt Wenn der Pinsel ausreichend groß ist, werden die obigen Probleme der Kantenunschärfe und der unzureichenden Abtastung gemildert: Die Form wird durch den Pinselbereich erweitert. Das Entzoomen erfolgt jetzt, indem die Bahn einen variablen Vergrößerungsfaktor erhält, zum Beispiel durch Variieren der Punktabtastrate in der Beschreibung der Bahn.
- Auf der anderen Seite wird der Pinsel in Anwendungs-Koordinaten so gewählt, daß seine Abmessungen bei einer Abbildung auf die Geräte-Koordinaten 1x1 Pixel entsprechen würden. Aber auch verschiedene andere Abmessungen wären möglich; die Abmessungen müssen nicht unbedingt einer Ganzzahl entsprechen. Nach der Farbgebung kann eine Nachbearbeitung durch einen Filter die Zeichenformen weiter verbessern.
- Vorzugsweise werden die Pinselabmessungen in Geräte-Koordinaten bei jeder Zoom/- Entzoom-Operation konstant gehalten.
- Ein ähnlicher Effekt wird erreicht, wenn die Bahn mit der Breite null aus Figur 1a durch den Pinselbereich erweitert wird. Dies kann zum Beispiel in der Darstellung eines Blockdiagramms erfolgen, wobei die Verbindung der Verbindungslinien zwischen den verschiedenen Blöcken bei jedem Entzooming-Grad aufrechterhalten bleiben muß. In diesem Fall werden die Verbindungslinien niemals unterbrochen. Selbstverständlich würde in anderen Fällen der Pinsel nicht benutzt, während auch eine ausgewählte Pinselnutzung möglich ist, wobei bestimmte Bahnen eine Pinselbehandlung bekommen und andere nicht.
- Die Bezier-Kurven erster Ordnung sind Geraden-Segmente, die durch zwei Steuerpunkte beschrieben werden, welche sich an den Enden der Segmente befinden: angrenzende Segmente haben einen gemeinsamen Steuerpunkt. Das Phänomen bei nicht-rationalen Bezier-Kurven höherer Ordnung ist ähnlich: Der einzige Unterschied besteht darin, daß weitere Steuerpunkte erforderlich sind. Bahnen und Pinsel können unterschiedlich komplizierte Formen haben. Das Führungszentrum des Pinsels braucht nicht sein Schwerpunkt zu sein; es kann sogar außerhalb der eigentlichen Pinselform liegen. Pinsel brauchen nicht symmetrisch zu sein. Figur 1d zeigt zum Beispiel einen Pinsel in Form der Ziffer acht. Die Pinselform muß immer ein geschlossener Pfad sein. Das Führungszentrum ist normalerweise Teil der Innenregion des Pinsels. Die Verwendung der Pinselfunktion kann insofern abweichen, daß nicht Rauschen oder Unterabtastung das Problem ist, sondern daß das Ziel eine Verschönerung von bestimmten Formen ist. In diesem Fall könnten oft verschiedene asymmetrische Pinselformen Anwendung finden.
- In der genannten Patentschrift wird die Vereinbarung der geradzahligen/ungeradzahligen Füllung angewendet. Wenn ausgehend von einem bestimmten Punkt eine quasi-unendliche Linie den geschlossenen Pfad eine ungeradzahlige Anzahl von Malen schneidet, liegt der Punkt innerhalb des geschlossenen Pfades und andernfalls außerhalb davon. Eine weitere Vereinbarung ist die Füllung in Abhängigkeit einer Windungszahl ungleich null; Wenn sich der Vektor von dem betreffenden Punkt zu einem Punkt, der einen vollen Zyklus des geschlossenen Pfades entlangläuft, sich über ein Vielfaches von 360º ungleich null windet, liegt der betreffende Punkt innerhalb des geschlossenen Pfades. Bei einer Windungszahl gleich null liegt der betreffende Punkt außerhalb. Für bestimmte Formen können die beiden Konventionen unterschiedliche Ergebnisse liefern. Sie können auch gemischt verwendet werden.
- Die Figuren 2a bis 2c zeigen verschiedene Anwendungen der Erfindung. In Figur 2a ist das Ergebnis der ersten Anwendung der Erfindung dargestellt, d.h. die Kombination der Bahn gemäß Figur 1a und der Pinselform von Figur 1c. Hier ist die Bahn 20 als gestrichelte Linie abgebildet, während der Umriß 22 mit einer durchgezogenen Linie dargestellt wurde.
- Figur 2b zeigt ein weiteres Ergebnis der ersten Anwendung der Erfindung. Hier wird eine relativ kurze Bahn benutzt, die mit einer gestrichelten Linie 24 dargestellt ist. Der Pinsel hat jetzt die Form des Buchstabens L aus Figur 1b. Das Führungszentrum ist in der unteren linken Ecke mit einem Punkt gekennzeichnet. In einer anfänglichen Position wird die Pinselform durch die Umrißlinien 26, 30 dargestellt. Die gesamte Fläche, die durch den sich bewegenden Pinsel abgedeckt wird, wird durch die Umrißlinien 28, 30 dargestellt. Auf diese Weise kann einem Zeichen oder einer anderen Form ein schattenartiger Effekt verliehen werden. Gegenmaßnahmen gegen unzureichende Abtastung und ähnliches ergeben ähnliche Formen wie in den Figuren 2a, 2b dargestellt.
- Figur 2c zeigt ein Beispiel eines Tests der Kohärenz innerhalb von Fenster 34, das die Form eines geschlossenen Bezier-Pfades aufweist und den Bezugspunkt 36 hat. Die einzige relevante Kante zwischen zwei verschiedenen Farben ist die Bezier- Kurve 32. In der Praxis würden solche Kanten geschlossene Pfade sein, da sonst die farbige Region eine unbestimmte Größe haben würde. Der Vorgang verläuft folgendermaßen: Den Bezugspunkt 40 eines Pinsels 38, der mit dem Fenster 34 deckungsgleich, aber in beiden Koordinatenrichtungen invertiert ist, entlang Kurve 32 laufen lassen. Prüfen, ob Punkt 36 irgendwann durch die Pinselform 38 abgedeckt wird. Wenn dies der Fall ist, liegt keine Kohärenz vor und alle Pixel von Fenster 34 müssen nach einer separaten Bestimmung ihrer Position in bezug auf Kurve 32 entsprechend gefärbt wer den. Wenn Punkt 36 niemals durch den invertierten Pinsel abgedeckt wird, ist Kohärenz vorhanden und die Farbbestimmung für ein einzelnes Pixel ergibt die Farbe für alle anderen Pixel innerhalb von Fenster 34. Obiges gilt für alle Positionen des Bezugspunktes 36 in bezug auf Fenster 34.
- Die Schritte zum Färben eines Pixels im allgemeinen wurden in der genannten Patentschrift ausführlich beschrieben und werden im folgenden nur kurz zusammengefaßt. Die Objektelemente liegen in einer Datenstruktur mit einer oder mehreren hierarchischen Ebenen vor, die auf der untersten Ebene jedes hierarchischen Zweigs nur Bezier-Objektelemente enthält. Zuerst wird die Pixel-Position in einen diskreten Punkt in Anwendungs-Koordinaten umgesetzt. Anschließend wird die Relevanz oder Irrelevanz der Datenstruktur für diesen Punkt bestimmt. Bei Irrelevanz stoppt der Prozeß. Bei Relevanz wird auf die Objektelemente der nächstunteren Ebene in der Datenstruktur zugegriffen, jeweils als oberste Ebene einer partiellen Datenstruktur. Diese Bestimmung der Relevanz wird weiter nach unten fortgesetzt, bis entweder Irrelevanz gefunden wird oder bis auf der untersten Ebene ein Bezier-Objektelement angetroffen wird. Danach müssen die Farben auf der Basis einer Innerhalb/Außerhalb-Information bestimmt werden. Zu diesem Zweck nimmt die Prozedur zuerst für jede Bezier-Kurve einen Begrenzungskasten, die alle tatsächlichen Punkte der betreffenden Kurve enthält. Oft wird dieser Begrenzungskasten durch die beiden Endpunkte der Kurve bestimmt.
- Andernfalls kann der Begrenzungskasten der kleinste koordinatenweise orientierte Kasten mit allen Steuerpunkten der Kurve sein. Jeder größere Begrenzungskasten wäre ebenfalls geeignet. Wenn der betreffende Punkt außerhalb des Begrenzungskastens liegt, kann die Farbbestimmung beginnen. Wenn der betreffende Punkt innerhalb des Begrenzungskastens liegt, wird die Bezier-Kurve in zwei Teile unterteilt, denen jeweils ein neuer Begrenzungskasten zugewiesen wird. Normalerweise hat diese Iteration nur wenige Schritte. Wenn der Begrenzungskasten maximal gleich einem Kasten von 2x2 Punkten wird, stoppt der Prozeß ebenfalls. Der Vorgang wird für alle Kurven von einer Bezier-Form wiederholt. Nach diesem Prozeß wird eine quasi-unendliche, z.B. eine horizontale Linie durch den betreffenden Punkt gezogen und die Anzahl der Schnitt punkte mit der Bezier-Form gezählt. Die Verarbeitung des 2x2 Begrenzungskastens und das Zählen der Anzahl Schnittpunkte wurden in der genannten Patentschrift ausführlich behandelt. Wenn die Anzahl gerade ist, liegt also der betreffende Punkt "außerhalb"; ist die Anzahl ungerade, liegt der betreffende Punkt "innerhalb". Die sogenannte Vereinbarung der Füllung in Abhängigkeit einer Windungszahl ungleich null kann jedoch ebenso einfach unterstützt werden, indem die Kantendurchquerungen unter Berücksichtigung des Vorzeichens abhangig von der Richtung (entlang dem geschlossenen Pfad) gezählt werden, in der die horizontale Linie geschnitten wird, und indem nach Beendigung geprüft wird, ob die resultierende Zahl gleich null ist.
- In den Figuren 3a bis 3d sind verschiedene Operati6nen in bezug auf die Bestimmung von Bezier-Kurven-Pixels dargestellt. Figur 3a zeigt das bekannte Unterteilungs-Theorem für eine stetige Bezier-Kurve dritter Ordnung. Das Bezier-Polynom lautet:
- wobei n die Ordnung der Kurve ist und Pi die beschreibenden Vektoren der entsprechenden Steuerpunkte sind. Es folgt:
- P(u) = P&sub0; (1-u)³ + 3 P&sub1; u(1-u)² + 3 P&sub2; u²(1-u) + P&sub3; u³,
- wobei u der Parameter ist. Die Punkte 42 bis 48 sind die Steuerpunkte der kompletten Kurve. Die Punkte 52, 53, 55 sind die Mittenpunkte der Segmente, die die ursprünglichen Steuerpunkte miteinander verbinden. Die Punkte 54, 56 sind die Mittenpunkte der Liniensegmente, die die Punkte 52, 53, 55 miteinander verbinden. Punkt so ist der Mittenpunkt des Segmentes, das die Punkte 54, 56 verbindet. Punkt 50 stellt einen Steuerpunkt und Endpunkt von zwei partiellen Bezier-Kurven dar, die zusammen die ursprüngliche Bezier-Kurve bilden. Die anderen Steuerpunkte dieser beiden Teile sind 42 (Endpunkt), 52, 54 bzw. 56, 58, 48 (Endpunkt). Durch aufeinanderfolgende Divisionsschritte kann die gesamte Bezier-Kurve gefunden werden; siehe auch die genannte Patentschrift, Figuren 1b bis 1e. Zur Bestimmung der Position eines Punktes, der einer Bezier-Kurve entspricht, die auf dem diskreten Raster der Anwendungs-Koordinaten definiert ist, wird auf die vorliegenden Figuren 3b bis 3d verwiesen. In Figur 3b ist dies für eine Kurve erster Ordnung dargestellt. Die Steuerpunkte sind 60, 62, beide mit ihren zugehörigen Pixeln (graue Quadrate). Wenn die Kurve halbiert wird (Mitte des Kreises 64), wird der zugehörige Rasterpunkt auf dem diskreten Raster erneut als ein graues Quadrat dargestellt. Hier bedeutet "zugehörig", daß der Rasterpunkt die Fläche darstellt, wenn der Mittenpunkt entweder innerhalb oder auf der linken Kante oder der unteren Kante der Fläche liegt. Durch Abrunden wird der Quasi-Mittenpunkt also die untere linke Ecke des betreffenden Quadrats. In der Figur gibt ein neuer Kreis den Mittenpunkt der Halbkurve links an, und der zugehörige diskrete Punkt ist in Grau dargestellt. Zuletzt wird die Bestimmung der Mittenpunkte und der zugehörigen Anwendungsraum-Rasterpunkte bis zum Ende ausgeführt. Wenn die Steuerpunkte innerhalb eines 2x2 Punkt-Quadrates liegen, wird der Divisionsprozeß beendet.
- Figur 3c zeigt eine ähnliche Prozedur für eine nicht-monotone Bezier- Kurve dritter Ordnung. Jetzt kann sich die Kurve außerhalb eines rechteckigen Kästchens erstrecken, das den ersten und den letzten Steuerpunkt enthält. Es kann gezeigt werden, daß die Kurve nicht aus einem geradlinigen Kästchen herausreicht, das alle Steuerpunkte enthält. Die linke Ausführung zeigt die Steuerpunkte 66, 72, 74, 68 und die zugehörigen Pixel-Flächen. Außerdem ergeben aufeinanderfolgende Divisionen die Steuerpunkte 66, 76, 78, 70 der linken Halbkurve, die in Grau dargestellt sind. Durch Abrunden gelangen die neuen Steuerpunkte in die unteren linken Ecken dieser Punktflächen.
- Die nächste Version aus Figur 3d zeigt die Berechnung des Mittenpunktes 80 der zweiten Phase, der in den grauen Punkt 82 umgesetzt wird. Die zusätzlichen neuen Steuerpunkte liegen beide im grauen Punkt 84, so daß sich ihre abgekürzten Steuerpunkte decken. Die letzte Figur 3e zeigt in Grau alle Punkte auf dem diskreten Anwendungs-Koordinatenraster, die für die betreffende Bezier-Kurve erzeugt wurden.
- Figur 3f zeigt die Führung einer Pinselform enfiang einer Bahn. Die Bahn enthält drei Kurven 100 - 102; 102-104; 104-100, die der Einfachheit halber monoton gewählt wurden. Andere Steuerpunkte als die Endpunkte sind nicht dargestellt. Der Pinsel hat die Form eines unsymmetrischen Dreiecks mit einem Winkel von 90º. Der Pinsel ist in den Positionen 100-120-122 und 102-112-116 dargestellt, wobei sich sein Führungszentrum mit den Endpunkten 100 und 102 der Bezier-Kurve deckt. Zunächst betrachten wir nur diese Kurve. Aufgrund der Monotonie enthält der abgebildete Begrenzungskasten, der durch die Endpunkte 100-102 gegeben ist, alle Steuerpunkte der Kurve 100-102. Falls erforderlich, kann wie oben erwähnt ein größerer Begrenzungskasten benutzt werden. Dieser Begrenzungskasten wird mit dem Begrenzungskasten der Pinselform ausgeweitet, um einen zusammengesetzten Begrenzungskasten, gegeben durch 100-110-114-118, zu erhalten. Die Kantenlängen des ausgeweiteten Kastens werden durch die Summen der Kantenlängen des Bahn-Begrenzungskastens und des Pinsel- Begrenzungskastens gegeben. Die Summenbildung erfolgt folgendermaßen: Der Begrenzungskasten des sich bewegenden Pinsels bleibt innerhalb des ausgeweiteten Begrenzungskastens. Nun gibt es für die Position des betreffenden Punktes die folgenden Fälle, wobei die Situation für "nur Pinsel zu färben" und "Pinsel plus Bahnform zu färben" nebeneinander behandelt werden:
- -A. Betreffender Punkt befindet sich nicht im ausgeweiteten Begrenzungskasten: 132. Das bedeutet, daß die Farbe des Pixels, das diesem Punkt entspricht, jetzt insoweit bestimmt werden kann, als nur die Bewegung des Pinsels entlang der Kurve 100-102 betroffen ist. Wenn nur der Pinsel für eine andere Farbe betrachtet wird, erhält dieses Pixel die "Außerhalb"-Farbe. Wenn der geschlossene Pfad 100-102-104, der durch den Pinsel erweitert wurde, die "Innerhalb"-Angabe erhalten soll, muß die Anzahl der Schnittpunkte einer quasi-unendlichen Linie durch Punkt 132 mit dem geschlossenen Pfad berechnet werden. Der Betrag für Kurve 100-102 ist offensichtlich null oder eins. Anschließend muß eine ähnliche Berechnung wie für Kurve 100-102 auch für die anderen Kurven vorgenommen werden, einschließlich aller Operationen, die im folgenden in bezug auf Kurve 100-102 erörtert werden. Am Ende ergeben die Beiträge der anderen Kurven zu der Anzahl der Schnittpunkte ein Endergebnis. Wenn der Punkt bei allen Kurven, die den geschlossenen Pfad bilden, außerhalb des ausgeweiteten Begrenzungskastens liegt, wäre die Anzahl der Schnittpunkte für diese Kurve in der "Füllungs-Vereinbarung gerade/ungerade" entweder null oder zwei, und der betreffende Punkt würde eine "Außerhalb"-Angabe erhalten. Wenn in diesem Fall die Bahn selbst keine Farbe vorgibt, wird nur der Pinsel für die Bestimmung der "Innerhalb"-Information betrachtet. Im Fall von Figur 2a steuert dann die "Innerhalb"-Information eine Farbe. Im Fall von Figur 2c gibt die "Innerhalb"-Information dann ein nicht-kohärentes Ergebnis an, das eine getrennte (oder alternative) Farbbestimmung für alle einzelnen Pixel erforderlich macht, um die Regionen der betreffenden Pixel zu teilen und die Teilregionen erneut zu bearbeiten.
- -B. Der betreffende Punkt liegt innerhalb des ausgeweiteten Begrenzungskastens, aber nicht in dem Pinsel-Begrenzungskasten, wenn der Pinsel mit dem Führungszentrum an einem der Endpunkte (130) positioniert ist. Die Farbe ist unentschieden und es wird mit nächstem Teilungsschritt fortgefahren. Bei diesem Schritt wird die Bezier-Kurve wie oben beschrieben geteilt, und der Prozeß wiederholt, wobei jede Hälfte der Kurve als separate Kurve zu betrachten ist. Die Begrenzungskästen der Kurventeile werden erneut mit dem Pinsel-Begrenzungskasten erweitert.
- -C. Der betreffende Punkt liegt innerhalb des Pinsel-Begrenzungskastens, wenn der Pinsel-Bezugspunkt mit einem der Endpunkte übereinstimmt, z.B. in Punkt 126, 128. Wenn jetzt nur der Pinsel zu färben ist, beschränkt sich das Problem auf die Entscheidung, ob der betreffende Punkt innerhalb der Pinselform selbst liegt. Diese Bestimmung erfolgt auf die gleiche Weise wie in der genannten Patentschrift beschrieben; die relevanten Kurven sind jetzt die Kanten der Pinselform. Wenn der Punkt innerhalb der Pinselform (z.B. 126) liegt, erhält das zugehörige Pixel die Pinselfarbe. Wenn er außerhalb der Pinselform (128) liegt, wird er auf die gleiche Weise behandelt wie Punkt 130: Die Bezier-Kurve 100-102 wird entsprechend dem beschriebenen Algorithmus geteilt und die Punkte werden erneut für den kleineren, ausgeweiteten zusammengesetzten Begrenzungskasten bzw. für den Pinsel-Begrenzungskasten behandelt. Dies gilt für beide Teile der Kurve. Die Verarbeitung wie Punkt 132 erfolgt, wenn er außerhalb der beiden zusammengesetzten Begrenzungskasten liegt. Die Verarbeitung wie Punkt 130 erfolgt, wenn er innerhalb von mindestens einem zusammengesetzten Begrenzungskasten liegt. Die Verarbeitung wie Punkt 126, 128 erfolgt, wenn er innerhalb von mindestens einem Pinsel-Begrenzungskasten liegt. In Hinblick auf Kurve 100-102 gibt es keine anderen Fälle als die zuvor genannten Möglichkeiten 126, 128, 130, 132.
- Für jeden Teil der Kurve 100-102 wird der Teilungsprozeß fortgesetzt, bis entweder:
- - der Punkt außerhalb des ausgeweiteten Begrenzungskastens liegt;
- - der Punkt innerhalb des Pinsels liegt, wenn dieser an einem der Endpunkte positioniert ist;
- - in diesem Fall erhalten die Pixel des Punktes die "Innerhalb"-Farbe;
- - alle Steuerpunkte des Kurventeils liegen innerhalb eines 2x2 Punkt-Quadrats; in diesem Fall erfolgt die Verarbeitung wieder elementar, wie in der genannten Patentschrift beschrieben; in vielen Fällen rechtfertigt diese letztgenannte Möglichkeit keine separate Behandlung, weil die Größe des Pinsels ausreicht, damit der Fall von Punkt 130 nicht eintritt.
- Es wurde festgestellt, daß normalerweise die Anzahl der Verfahrensschritte zum Erreichen einer dieser Entscheidungen recht gering ist. Ferner wird das Verfahren auf genau die gleiche Weise durchgeführt, wenn eine Kurve Steuerpunkte hat, die nicht in dem durch die Endpunkte vorgegebenen Begrenzungskasten liegen. Der einzige Unterschied besteht darin, daß der Begrenzungskasten vergrößert werden muß, um alle Steuerpunkte zu enthalten. Dies gilt sowohl für die Bahn als auch für den Pinsel.
- Das beschriebene Verfahren kann oft vereinfacht werden. Wenn der Pinsel ein Rechteck ist, existiert der Fall von Punkt 128 nicht. Das Auftreten des Falls von Punkt 126 führt dann direkt zu der "Innerhalb"-Färbung und das Verfahren kann beendet werden.
- Figur 4a zeigt eine elementare Prozessor-Architektur für die Berechnung der Innerhalb-Außerhalb-Angabe. Der Einfachheit halber wird eine unitare Begrenzungsform betrachtet, was bedeutet, daß entweder die Bahnform mit der Pinsel-Dimension null betrachtet wird oder daß die Anordnung nur für die Pinselform benutzt wird. Der Fall einer zusammengesetzten begrenzenden Figur, bei dem sowohl die Bahn als auch die finite Pinsel-Dimension zu betrachten sind, wird unter Bezugnahme auf Figur 4c beschrieben. Jetzt werden die Koordinaten der Steuerpunkte der Bezier-Kurven der Bahn in Speicher 150 gespeichert, der über einen Adreßgenerator 152 verfügt. Für jeden Eintrag werden die x- und y-Werte gespeichert und auch eine Angabe m, die die Ordnung der Kurve angibt. x und y sind in Anwendungs-Koordinaten definiert. Der Kürze halber sind der Ledemechanismus und die Rückstellung (Reset) für den Adreßgenerator 152 nicht dargestellt. Element 156 ist ein Addierer, der der Deutlichkeit halber separat für die Werte x und y dargestellt wurde. In der Praxis kann ein einziger Addierer in Multiplex-Betrieb verwendet werden. Für die restliche Anordnung ist diese Verdopplung nicht dargestellt. Der Addierer 156 erhält den Inhalt von Speicher 150 und außerdem den Inhalt von Register 154, das die Koordinaten des Punktes enthält, der dem zu färbenden Pixel entspricht, und zwar nach Invertierung durch die Elemente 158.
- Außerdem wird eine einzelne Eins der zweitniedrigstwertigsten Bitposition zugeführt. Auf diese Weise wird eine Zweier-Komplement-Darstellung der tatsächlichen Punktkoordinaten erstellt und eine korrekte Subtraktion durchgeführt. Das gemultiplexte Ausgangsregister 160 erhält die relativen Koordinatenwerte der Steuerpunkte der Bezier- Kurve. Linie 162 gibt eine gedachte Bus-Verbindung an. Der Kürze halber wird die eigentliche Hardware-Realisierung außer acht gelassen. Element 164 ist ein "On-thefly"-Diskriminator zur Durchführung verschiedener Tests für den Satz Steuerpunkte von jeder beliebigen tatsächlichen Bezier-Kurve oder einem Teil davon. Wenn alle Steuerpunkte einer Bezier-Kurve das gleiche Vorzeichen entweder für relative x-Koordinatenwerte oder für relative y-Koordinatenwerte haben, liegt der tatsächliche Punkt außerhalb des Begrenzungskastens und es muß nur der Beitrag dieser Kante zu der Anzahl der Durchgänge berechnet werden. Wenn sich alle Steuerpunkte in einem 2x2 Quadrat befinden, ergibt eine weitere Teilung keine neuen Informationen und der Halbierungsprozeß kann beendet werden. Wenn sich der tatsächliche Punkt mit einem der Endpunkte deckt, ist keine weitere Halbierung erforderlich. Am Ausgang 166 erscheint eine entsprechende Meldung des obigen Sachverhalts an eine nicht abgebildete Ablaufsteuerungseinrichtung. Daraufhin wird auf die nächste Bezier-Kurve aus dem Speicher 150 zugegriffen. Bei einem solchen Zugriff gibt die Mitteilung von m auf Leitung 168 an den Sequencer die Anzahl der aus dem Speicher 150 auszulesenden Steuerpunkte vor. Für die dargestellte Anordnung ist diese Anzahl auf maximal 4 begrenzt. Beim Auslesen eines neuen Satzes von Steuerpunkten wird der letzte dieser Steuerpunkte im Register 170 zwischengespeichert, um als erster Steuerpunkt der nächsten Kurve der Bahn beibehalten zu werden: Angrenzende Seiten haben gemeinsame Endpunkte und es erfolgt keine doppelte Speicherung im Speicher 150. Die Steuerpunkte werden jetzt der Reihenfolge nach in die Register 172, 174, 176, 178 geladen. Da die Prüfung in Element 164 zu einem negativen Ergebnis führte, erfolgt der Teilungsvorgang durch eine Gruppe von Addierern 180 - 190, die jeweils mit einem Ausgangsregister versehen sind. Bei dem Addieren wird die volle Anzahl der Bits beibehalten, so daß die Anzahl der signifikanten Bits jedesmal effektiv um eins zunimmt. Anschließend werden die Steuerpunkte des zweiten Teils der Bezier-Kurve in den Registern 172, 180, 186, 190 gespeichert, so weit dies erforderlich ist: Die ersten beiden werden immer gefüllt, die letzten beiden nur, wenn die ursprüngliche Anzahl von Steuerpunkten ausreicht. Für eine Bezier-Kurve erster Ordnung werden die Steuerpunkte des ersten Teils jetzt in den Registern 174, 180 gespeichert. Für eine Bezier-Kurve zweiter Ordnung werden die Steuerpunkte der ersten Hälfte jetzt in den Registern 176, 182, 186 gespeichert. Für eine Bezier-Kurve dritter Ordnung werden die Steuerpunkte des ersten Teils jetzt in den Registern 178, 184, 188, 190 gespeichert. Die Steuerpunkte des ersten Teils werden nun aus ihren zugehörigen Registern unter festverdrahteter Verschiebung in ihre Standardzahl von signifikanten Bits ausgelesen und über Bus 162 und auf die gleiche Weise zyklisch behandelt, wie dies für die ursprüngliche Bezier-Kurve erfolgte, einschließlich der Prüfung durch Element 164. Außerdem werden jetzt die Steuerpunkte des zweiten Teils aus den betreffenden Registern über eine ähnliche festverdrahtete Verschiebung in ein zweites Bus-System 192 zur Speicherung im Stapelspeicher 194 ausgelesen, der eine Last-in-First-out-Organisation aufweist. Element 196 führt fliegend ähnliche Prüfungen durch wie Element 164. Wenn die Testergebnisse angeben, daß der Teil der Bezier-Kurve keine weitere Verarbeitung in der Gruppe erfordert, wird die Speicherung im Stapelspeicher 194 weggelassen und eine entsprechende Meldung auf Leitung 198 an den Sequencer weitergeleitet. Wenn Element 164 signalisiert, daß keine weitere Verarbeitung für den erhaltenen Steuerpunktsatz erforderlich ist, wird zuerst auf den Stapelspeicher 194 zugegriffen und der Vorgang wiederholt. Nachdem schließlich alle Teile der betreffenden Bezier-Kurve behandelt wurden, wird ein neuer Satz Steuerpunkte aus dem Speicher 150 ausgelesen (einschließlich des ersten Steuerpunktes aus Register 170). Im Prinzip kann Element 196 weggelassen werden, da seine Prüfungen durch Element 164 dupliziert werden. Die dargestellte Anordnung verringert allerdings die für den Stapelspeicher 194 erforderliche Speicherkapazität.
- In Figur 4b ist eine Abwandlung von Figur 4a dargestellt, die weniger Hardware-Aufwand erforderlich macht, ohne daß die Verarbeitungsgeschwindigkeit wesentlich verringert wird. Die Anzahl der Register ist die gleiche wie in Figur 4a. In der ersten Spalte empfängt Register 200 den ersten Steuerpunkt C1 (über Bus 162 von Register 170 oder Speicher 150). Anschließend wird der Inhalt zu Register 202 verschoben und der zweite Steuerpunkt C2 empfangen. Danach berechnet der Addierer 206 die Summe davon: C1 + C2, die im Register 208 gespeichert wird. Anschließend wird der gesamte Inhalt verschoben und der dritte Steuerpunkt C3 wird empfangen. Die Register enthalten jetzt C3, C2, C1,-; C1+C2, -, -; -, -; -. Danach wird der vierte Steuerpunkt empfangen und der Addierer 206 führt eine Operation durch, um die folgenden gespeicherten Ergebnisse zu erhalten: C4, C3, C2, C1; C3 + C2, C2 + C1,-; -, - ; -. Anschließend wird der gesamte Inhalt nach unten geschoben und die Addierer 206, 214 führen eine Operation durch, um die folgenden Ergebnisse zu erhalten: -, C4, C3, C2; C4+C3, C3+C2, C2+C1; C3+2C2+C1, -; -. Nach der folgenden Verschiebung und der Additionsoperation durch die Addierer 214, 220 erhält man die folgenden gespeicherten Ergebnisse: -, -, C4, C3; -, C4+C3, C3+C2; C4+2C3+C2, C3+2C2- + C1; -. Nach einer letzten Verschiebung und einer Additionsoperation durch den Addierer 220 erhält man die folgenden gespeicherten Ergebnisse: -, -, -, C4; -, -, C4+C3; -, C4+2C3+C2; C4+3C3+3C2+C1. Die Größen C4, C4+C3, C4+2C3+C2 und C4+3C3+3C2+C1 werden auf den Leitungen 228, 231, 234, 236 an die Bus-Organisation 192 ausgegeben. Die Größen C1, C2+C1, C3+2C2+C1, C4+3C3+3C2+C1 werden auf den Leitungen 226, 230, 232, 248 an die Bus-Organisation 162 ausgegeben.
- Der Kürze halber ist die relative Zeitsteuerung bei den verschiedenen Additionen nicht dargestellt. In der Tat können die Informationen jedes neuen Steuerpunktes direkt ausgegeben werden, sobald sie zur Verfügung stehen.
- Figur 4c zeigt eine Hardware-Anordnung zur Implementierung der Ausweitung durch einen Pinsel ungleich null. Zu einem großen Teil entspricht die Anordnung der von Figur 4a, so daß dieser Teil nicht genauer beschrieben wird. Der Speicher 250 enthält jetzt die Steuerpunkte der Bahn und auch die Abmessungen des Begrenzungskastens mit allen Steuerpunkten der Pinselform, oder - zu diesem Zweck - eines beliebigen geeigneten Kastens mit allen tatsächlichen Punkten der Pinselform. Die Hardware zwischen Speicher 250 und der Bus-Struktur 252 entspricht 1 zu 1 der Hardware aus Figur 4a, einschließlich Register 270. Die Gruppierung 254 entspricht ebenfalls Figur 4a. Der Kürze halber werden Abwandlungen bezüglich Figur 4b außer acht gelassen. Register 256 empfängt relative Anwendungs-Koordinaten des ersten Steuerpunktes der nächsten Bezier-Kurve in bezug auf den Punkt, dessen Farbe bestimmt werden soll. Der Addierer 258 empfängt daraufhin jeden weiteren Steuerpunkt dieser Kurve, wonach die beiden subtrahiert werden (258); es ist zu beachten, daß für die korrekte Subtraktion des Zweier-Komplements -1 eingefügt wird. Kasten 260 führt eine Prüfung durch, um herauszufinden, ob alle Steuerpunkte in einem 2x2 Punkt-Quadrat liegen. Wenn dies der Fall ist, ist eine Division der betreffenden Bezier-Kurve (des Teils) nicht nützlich, und die Gruppierung 254 braucht nicht in Aktion zu treten, was dem nicht abgebildeten Sequeneer auf Leitung 262 mitgeteilt wird. Leitung 263 erhält die x,y-Koordinaten der unteren linken Ecke des Pinsel-Begrenzungskastens (in bezug auf sein Führungszentrum). Der Addierer 266 addiert diese zu den zugehörigen (relativen) x,y-Koordinaten jedes Steuerpunktes der Bahnkurve (des Teils) und Element 272 prüft, ob für mindestens einen der Steuerpunkte das Ergebnis für die x-Koordinate negativ ist und ob für mindestens einen Steuerpunkt das Ergebnis für die y-Koordinate negativ ist. Diese beiden Steuerpunkte können ein und derselbe Steuerpunkt oder zwei verschiedene Steuerpunkte sein. Eine ähnliche Anordnung liegt für die maximalen x,y-Werte des Pinsel- Begrenzungskastens vor (d.h. für die obere rechte Ecke). Hier wird geprüft, ob für mindestens einen Steuerpunkt das Ergebnis für die x-Koordinate positiv ist und ob für mindestens einen Steuerpunkt (den gleichen oder einen anderen) das Ergebnis für die y- Koordinate positiv ist. Wenn beide Prüfungen der Blöcke 262, 274 positiv sind, liegt der betreffende Punkt innerhalb des ausgeweiteten Begrenzungskastens. Aus der Mitteilung auf den Leitungen 262, 276, 280 leitet der nicht abgebildete Sequencer ab, ob auf eine neue Bezier-Kurve aus dem Speicher 250 oder aus dem Stapelspeicher 286 zugegriffen werden kann oder ob die Gruppierung 254 eine Unterteilungs-Operation durchführen muß. Auf der anderen Seite der Gruppierung 254 ist eine Bus-Struktur 278 vorhanden. Außerdem ist ein ähnlicher Stapelspeicher 286 wie in Figur 4a vorhanden. Wenn der betrachtete tatsächliche Punkt innerhalb des Pinsel-Begrenzungskastens liegt, wenn der Pinsel-Bezugspunkt auf dem ersten oder dem letzten Steuerpunkt des betreffenden Teils der Bezier-Kurve positioniert ist, muß auf den tatsächlichen Pinsel zugegriffen werden. Dies geschieht in der Anordnung aus Figur 4a. Zu diesem Zweck werden die Endpunkt-Koordinaten der relevanten Bezier-Kurve über den Inverter 288 mit Addition von 1 im Addierer 290 ausgegeben: Es ist zu beachten, daß es sich dabei um relative Steuerpunkt-Koordinaten handelt, die jetzt erscheinen, wie im Koordinatensystem des positionierten Pinsels definiert. Diese Punktkoordinaten werden nun im Register 154 von Figur 4a gespeichert. Außerdem erfolgt auf Leitung 292 eine Rückstellung für den Adreßgenerator 152. Nachdem festgestellt wurde, ob der Punkt innerhalb oder außerhalb des Pinsels liegt, wird ein Signal von der Anordnung atis Figur 4a an den Sequencer gesendet. Es ist keine weitere Wechselwirkung zwischen der entsprechenden Hardware aus den Figuren 4a, 4c erforderlich. Bei einer umfassenden Vorrichtung können diese zwei Figuren selbstverstandlich verschiedene Teilsysteme gemeinsam haben.
- Die obige Beschreibung bezog sich auf den Fall, in dem die Bahn keine Innenform definiert. Wenn dies jedoch der Fall ist, dient der einzige weitere erforderliche Test dem Zweck, die Anzahl der Schnittpunkte der geschlossenen Bahnkurve und einer quasi-unendlichen Linie durch den betreffenden Punkt zu ermitteln. Dieser Test an sich wurde in der genannten Patentschrift beschrieben. Die hiermit verbundenen Divisions-Operationen der Bezier-Kurven-Teile können durch eine I-ogik entsprechend Figur 4c durchgeführt werden, jedoch mit einem zusätzlichen Testmechanismus, der Kasten 164 in Figur 4a entspricht. Wenn sich der betreffende Punkt entweder innerhalb der Bahnform oder irgendwo innerhalb des bewegten Pinsels befindet, erhalten die zugehörigen Pixel die "Innerhalb"-Färbung. Die Entscheidung, ob zuerst die Bahnprüfung oder zuerst die Pinselprüfung durchgeführt wird oder ob beide Prüfungen parallel durchgeführt werden, kann so optimiert werden, daß eine maximale Geschwindigkeit erreicht wird. Unter anderem kann die Entscheidung anhand der Beschaffenheit der Datenstruktur, sowie anhand der Abmessungen und der Form von Pinsel und Bahn getroffen werden.
- Jede beliebige Kurve kann durch eine stückweise nicht-rationale Bezier- Kurve bis zu einer beliebigen Genauigkeit angenähert werden. Unter bestimmten Umstanden jedoch würden rationale Bezier-Kurven für den Pinsel verwendet, vor allem, weil Kreise und Ellipsen nicht direkt als eine nicht-rationale Bezier-Kurve geschrieben werden können.
- Die stetige Ebenen-Formel für rationale Bezier-Kurven ist gegeben durch:
- wobei jeder Steuerpunkt Ci in der Ebene durch die üblichen Polynome und einen zusätzlichen Wichtungsfaktor wi gewichtet ist. Der auffälligste Unterschied ist natürlich der Nenner, der eine Skalarfunktion von t ist, die auf alle Steuerpunkte (und auf ihre x- und y-Koordinaten) gleichermaßen angewendet wird. Ein diskretes Gegenstück zu dieser Formel (das nur einfache und stabile Operationen in unserem diskreten weltlichen Raum betrifft) gibt es wahrscheinlich nicht. Da die einzige Annahme, die zu unseren Regionen getroffen wurde, darin besteht, daß sie ein finites Ausmaß haben müßten, wird von jetzt an davon ausgegangen, daß alle gewichteten Steuerpunkte wiCi begrenzt sind und daß die Nenner-Funktion nirgendwo entlang dem Kurvensegment gleich null ist.
- Eine bessere Formel ergibt sich aus dem "Ausmultiplizieren" des Nenners, um die dritte Koordinate der Kurvenpunkte in einem jetzt dreidimensionalen Raum zu werden. In diesem Raum erhält man die Formel für eine normale nicht-rationale Bezier-Kurve, die durch die Steuerpunkte mit 3D-Koordinaten (w&sub1;Cix, wiCiy, wi) definiert ist. Die rationale Kurve kann als Perspektiven-Projektion der nicht-rationalen Kurve auf die Ebene W = 1 angesehen werden, oder anders ausgedrückt: Die nichtrationale Kurve liegt auf dem infiniten Kegelsegment mit dem Ursprung des 3D-Raums als seinem Scheitelpunkt und unterstützt durch die rationale Kurve.
- In dieser Hinsicht zeigt Figur 5a eine zweidimensionale rationale Bezier- Kurve in der Ebene w = 1. Der Einfachheit halber werden nur drei Steuerpunkte 300, 302, 304 angenommen. Der Ursprung liegt bei 306. Das dreidimensionale nicht-rationale Gegenstück liegt auf dem gleichen Kegelsegment und hat die Endpunkte 300, 308. Wie nachstehend gezeigt, brauchen die beiden Kurven keinen gemeinsamen Punkt zu haben. Eine Konsequenz aus einer solchen Verallgemeinerung der Kurvendefinition ist, daß die w-Koordinate wieder dividiert werden muß, um die Koordinaten der Kurvensegment-Divisionspunkte in der zweidimensionalen Ebene zu erhalten und um festzustellen, ob die Stopp-Bedingung erreicht ist, wofür die Steuerpunkte ein gesondertes "Pixel" der diskreten weltlichen Ebene sein müssen. Die Division ist jedoch eine äußerst unwünschenswerte Operation, wenn sie mit einfacher und stabiler Arithmetik mit finiter Präzision implementiert werden muß.
- Hier wird die folgende Lösung benutzt. Der Punktgehalt für diese Regionen in der diskreten Ebene wird nicht über die Definition von diskreten rationalen Umrißkurven definiert, sondern als Gegenstück einer topologischen Eigenschaft höheren Niveaus in dem kontinuierlichen Raum abgeleitet. Man stelle sich einen geschlossenen stückweise rationalen Bezier-Umriß in der Ebene w = 1 vor, die unsere zweidimensionale Modellierebene ist. Die nicht-rationalen Versionen der Segmente liegen alle auf dem durch den Umriß unterstützten Kegel.
- Figur 5b zeigt einen geschlossenen rationalen Bezier-Pfad 310, der aus drei rationalen Kurven besteht (in der Praxis können nicht-rationale und rationale Kurven gemischt auftreten). Der Ursprung 312 hat gestrichelt dargestellte Radien. Die entsprechenden dreidimensionalen nicht-rationalen Kurven sind als gestrichelte Kurven 314/316, 318/320 und 322/324 dargestellt. Die jeweiligen Kurven können aufgrund der verschiedenen Werte von w in den jeweiligen Endpunkten eventuell nicht direkt verbunden werden. Die Verbindung kann jedoch durch die gestrichelten Segmente 316/318, 320/322, 324/314 hergestellt werden, die Radien des gleichen Kegels sind. Wenn der Punkt in der zweidimensionalen Region enthalten ist, liegen der Strahl durch diesen Punkt und den Ursprung ebenfalls innerhalb des Kegelvolumens. Die topologische Eigenschaft besteht darin, daß dieser Strahl dann auch innerhalb eines Zylindervolumens liegt, das parallel zu diesem Strahl ist und diese stückweise nicht-rationale 3D-Kurve als seine unterstützende Kurve hat (und umgekehrt). Das gleiche gilt für die Schnittpunkte von Zylinder und Strahl mit der Ebene w = 0: Um den Punktgehalt der RB-Region (rationale Bezier) zu kontrollieren, reicht es aus, zu prüfen, ob der Ursprung in dem Umriß enthalten ist, der sich aus der Parallelprojektion der nicht-rationalen 3D-Kurven auf die Ebene w = 0 durch den Ursprung ergibt. Es ist zu beachten, daß diese Projektion parallel zu diesem Strahl erfolgt, also normalerweise nicht orthogonal zu der Ebene. Da Bezier-Kurven bei Parallelprojektion unveränderlich sind, ist diese projizierte Region nichts anderes als eine normale B-Region (Bezier), für die das Problem des Punktgehalts bereits gelöst wurde. Die projizierten nicht-rationalen Kurvensegmente sind definiert durch ihre projizierten Steuerpunkte, von denen die x- und y-Koordinaten als gleich denjenigen des nicht-orthogonalen Achsensystems betrachtet werden können, die durch die ursprüngliche x- und y-Achse und eine w'-Achse definiert sind, die mit dem Strahl durch den 3D-Ursprung und den betreffenden Punkt P in der Ebene w = 1 zusammenfällt. Der relevante Teil der Koordinatentransformations-Matrix ist:
- und daher erfordert jeder rationale Bezier-Steuerpunkt mit einem Wichtungsfaktor ungleich 1 eine Multiplikation für seine x- und y-Koordinaten, bevor er in den Algorithmus der vorhergehenden Abschnitte eingeht (wo der Punkt, für den wir den Punktgehalt prüfen, immer der Ursprung ist). Es ist zu beachten, daß wenn alle Gewichtungen gleich eins wären (so daß wir von einer nicht-rationalen B_Region ausgehen müßten), diese Information sich auf die Translation des betreffenden Punktes zum Ursprung reduziert. Es ist auch zu beachten, daß die Geraden-Segmente auf dem Kegel, die wir eingeführt haben, um eine geschlossene Kurve in 3D zu konstruieren, keinen Einfluß auf die Anzahl der Schnittpunkte mit der quasi-unendlichen Geraden haben können, die für die Bestimmung der Innerhalb-Außerhalb-Angabe benutzt wird. In der Tat besteht die einzige Möglichkeit, wie sie einen Punkt gemeinsam mit der quasi-unendlichen Linie haben können, darin, vollständig mit dieser Linie zusammenzufallen.
- Der Punktgehalt für RB-Regionen wurde also durch die Transformation der Steuerpunkte in eine andere Region in der diskreten Ebene bestimmt, für die wir bereits den Punktgehalt hinsichtlich ihres Umrisses spezifiziert haben. Die einzigen neuen Operationen, die hierdurch eingeführt werden, sind die Festpunkt-Multiplikationen, die für jeden wirklich rationalen Steuerpunkt durchgeführt werden müssen, und zwar einmal für jeden fraglichen Punkt. Die besten numerischen Ergebnisse werden erzielt, wenn die Wi's aller Steuerpunkte einer RB-Kurve skaliert werden, während mit einem gemeinsamen Faktor modelliert wird, um ihre Anzahl signifikanter Bits zu maximieren.
- Wir können die Anzahl von Multiplikationen sogar drastisch reduzieren, wenn wir den recht typischen Fall von Kurven haben, die alle positiv gewichtet sind. Dann ist die konvexe Hüllen-Eigenschaft immer noch gültig, so daß wir nur zu multiplizieren brauchen, wenn der betreffende Punkt in dem Kasten um die konvexe Hülle der Steuerpunkte Ci von einem der Umrißsegmente enthalten ist.
- Mit diesem allgemeinen Algorithmus können wir den Eingangsregionen Einschränkungen auferlegen und erhalten vereinfachte Versionen des Algorithmus. Dies führt zu nützlichen Ergebnissen für den Fall einer elliptischen Region, die durch zwei semi-elliptische Kurvensegmente, die auf der Hauptachse enden, umrissen ist. Wenn die Hauptachsen die Längen 2a und 2b haben, liegen der erste und der letzte Steuerpunkt bei (-a,0) und (a,0), beide mit Gewichtungen gleich 1. Der mittlere Steuerpunkt entartet in der allgemeinen konischen Formel zu dem Punkt im Unendlichen entlang der 2D y- Achse, aber mit Gewichtung null: Der Steuerpunkt der entsprechenden 3D-Parabel liegt bei (w&sub1;C&sub1;x, w&sub1;C&sub1;y, w&sub1;) = (0,b,0). Die Transformation dieses Steuerpunktes durch die obige Matrix (d.h. Parallelprojektion auf die Ebene w = 0) ergibt eine Konstante (0,b) unabhängig von P. Die Prüfung, ob (Px,Py) in der (oberen Hälfte der) Ellipse enthalten ist, kann also durchgeführt werden, indem erst geprüft wird, ob er innerhalb des Kastens mit der durch (-a,0) und (a,b) gegebenen Diagonalen liegt. Wenn dies der Fall ist, wird anschließend geprüft, ob die durch (-a-Px,Py), (0,b) und (a-Px, -Py) gesteuerte Parabel die negative x-Achse einmal schneidet (siehe Figur 5c). Für diesen speziellen Fall sind keine Multiplikationen erforderlich: Wir brauchen nur in dem nicht-rationalen Algorithmus die "Ursprungs-Translation" des zweiten Steuerpunktes zu unterdrücken. Der Algorithmus wird so genau und numerisch stabil sein wie vorher und schnell das Punktgehalt-Ergebnis für Punkte liefern, die weit von dem elliptischen Umriß entfernt sind, und logarithmisch langsamer für Punkte, die näher liegen, mit einer unteren Begrenzung der Geschwindigkeit, die durch die Modellier-Präzision in dem diskreten Weltraum definiert ist. Auf diese Weise wäre nur eine geringe Modifikation der Hardware aus den Figuren 4a, c erforderlich.
- Im folgenden werden einige Beschleunigungs-Strategien für die in bezug auf Figur 3f erläuterte Berechnung dargelegt. Die erste Verbesserung wird erreicht für die Bestimmung, ob eine bestimmte Kategorie von Punkten jemals durch den Pinsel abgedeckt wird, vorausgesetzt, daß letzterer alle Punkte innerhalb des Pinsel-Begrenzungskastens auf einer horizontalen Linie oder einer vertikalen Linie durch sein Führungszentrum abdeckt. Dies ist in der Tat der Fall in Figur 3f und gilt auch für Kreise, Ellipsen und Rechtecke, wo das Führungszentrum der Schwerpunkt einer solchen symmetrischen Pinselform ist. Die Berechnung erfolgt folgendermaßen: Bestimmen, ob eine vertikale Linie durch den betreffenden Punkt den horizontalen Durchmesser des Pinsels durchquert, wenn das Führungszentrum des Pinsels in allen betreffenden Steuerpunkten der Bahnkurve positioniert wird. Wenn die Bestimmung für jeden Steuerpunkt immer positiv ist, wird der betreffende Punkt durch den Pinsel abgedeckt und es ist keine Divisions-Operation erforderlich und die Farbzuweisung kann direkt erfolgen. Die Beendigung kann auch folgen, wenn eine horizontale Linie durch den tatsächlichen Punkt alle vertikalen Durchmesser durchqueren würde. In der Situation aus Figur 3f ist jedoch der nächste Divisionsschritt erforderlich. Für eine vertikale oder horizontale gerade Bahn wäre die Division allerdings überflüssig. Das Verfahren ergibt jedoch ein korrektes Ergebnis für eine Führungskurve beliebiger Ordnung. Im Prinzip kann das Verfahren ebenso enfiang einer schrägen Achse erfolgen, vorausgesetzt, daß die Pinselform übereinstimmt. Normalerweise würde die erforderliche Koordinatentransformation die erreichte Beschleunigung unwirksam machen. Figur 6a zeigt ein Beispiel. Die gekrümmte Bahn (unterbrochene Linie) hat drei Steuerpunkte 400, 402, 404. Der Pinsel ist wie dargestellt rautenförmig. Der ausgeweitete Kasten 406 ist mit einer Position des Pinsel-Begrenzungskastens 408 dargestellt. Es kann für jede Art von Bezier-Kurve nachgewiesen werden, daß das Rechteck, das durch die Höhe des ausgeweiteten Begrenzungskastens (410) und die UND-Verknüpfung der horizontalen Durchmesser der Pinsel-Begrenzungskästen wie dargestellt (Pfeil 412) gegeben ist, immer durch den sich bewegenden Pinsel abgedeckt wird. Aus diesem Grunde kann die Farbzuweisung auf direktem Wege erfolgen.
- Die zweite Verbesserung macht auch die Ausführung der Division in den Fällen überflüssig, wo der betreffende Punkt in den äußeren Ecken des ausgeweiteten Begrenzungskastens liegt. Figur 6b zeigt eine geradlinige Bahn mit der gleichen Pinselform wie in Figur 6a. Die Pinselkästen sind in jeder der Ecken des Begrenzungskastens positioniert. Für jede dieser Positionen werden die Punkte in den kohärenten Nicht- Pinsel-Regionen des Begrenzungskastens, die an eine Ecke des ausgeweiteten Kastens angrenzen, von der weiteren Betrachtung für die fragliche Bahn ausgeschlossen. Wenn die Ordnung der Bahn höher ist, brauchen die Positionen der Pinsel-Begrenzungskästen in den Ecken nicht mit einer reellen Position übereinzustimmen. Die Bestimmung, ob der betreffende Punkt in einer der schraffierten Regionen 416 - 422 liegt, erfolgt in der Schnittpunkt-Prozedur für den Pinsel. Die Bestimmung, welcher Eckenteil auszuschließen ist, erfolgt folgendermaßen: Bestimmen der relativen Koordinaten aller Steuerpunkte in bezug auf den tatsächlich betrachteten Punkt. Wenn alle relativen x-Koordinaten das gleiche Vorzeichen haben und alle relativen y-Koordinaten das gleiche Vorzeichen haben, wird der betreffende Punkt als außerhalb befindlich betrachtet. Die dritte Verbesserung begrenzt die Anzahl der in der Schnittpunkt-Prozedur zu betrachtenden Bahnen. Zu diesem Zweck sind alle schneidenden quasi-unendlichen Linien parallel und vorzugsweise parallel zu einer der Koordinatenachsen, zum Beispiel der horizontalen. Für jeden tatsächlichen Punkt wären jetzt nur diejenigen Kurven relevant, deren ausgeweiteter (wenn Bahn) oder nicht-ausgeweiteter (Pinsel-Prozedur) Begrenzungskasten durch die horizontale unendliche Linie durch den tatsächlichen Punkt abgedeckt wird. Alle Punkte auf dieser Linie würden daher die gleiche Teilgruppe von Bahnkurven betrachten. Die UND-Verknüpfung der vertikalen Abmessungen dieser Teilgruppe von Bahnkurven ergibt einen Satz von angrenzenden Pixelreihen, für den nur auf die gleiche Teilgruppe der Bahnkurven zugegriffen werden muß. In Figur 6c sind die Höhen von drei ausgeweiteten Kästen als 424, 426, 428 dargestellt. Für die Punkte auf den Linien in Region 430 müssen alle drei Bahnen beginnend mit der "Bestimmungs-Prozedur" verarbeitet werden. Für die Punkte in Region 432 brauchen nur die Bahnen 424, 426 betrachtet zu werden. Für die Punkte in den Regionen 434 braucht nur Bahn 424 betrachtet zu werden. Für andere Fälle würden noch weitere Teilgruppen gelten, die hier nicht genauer dargestellt sind.
Claims (28)
1. Rechnerverfahren zur pixelweisen Erzeugung eines Anzeigebildes, das
einen Objektelementensatz mit einem Pinselobjektelement (Figuren 1c, 1d, Figur 3f,
100-120-122) darstellt, welches eine Bezier-Form ist, die mit ihrern Führungszentrum
auf einer Führungsbahn (100-102-104) entlangbewegt wird, die ein nicht-rationaler
Bezier-Pfad in dem genannten Objektsatz ist, wobei das Verfahren folgende Schritte
umfaßt:
a. für jede Bahn-Bezier-Kurve einen bahnbezogenen Satz von Bahnsteuerpunkten
in einem zugehörigen koordinatenartig orientierten
Bahnkurven-Begrenzungskasten (100, 106, 116, 118) liefern und für jede Pinsel-Bezier-Kurve einen
pinselbezogenen Satz von Pinselsteuerpunkten in einem zugehörigen
Pinselkurven-Begrenzungskasten (100, 120, 124, 122) liefern, und einen
Pinsel-Begrenzungskasten mit allen Punkten der Pinselform liefern;
b. für jedes Pixel Anwendungs-Koordinatenwerte hinsichtlich jedes relevanten
Objektelementes fur einen tatsächlichen Punkt bestimmen, der mit diesem Pixel
übereinstimmt, und anschließend erweitern jedes entsprechenden Bahnkurven-
Begrenzungskastens mit dem Pinsel-Begrenzungskasten zu einem ausgeweiteten
Kasten (100-110-114-118) und
c. in einem Bestimmungsverfahren für den genannten tatsächlichen Punkt
bestimmen, entweder:
c1. tatsächlicher Punkt liegt außerhalb des ausgeweiteten Kastens (132), dann
fragliche Bahnkurve zurückweisen und zu einer anderen Bahnkurve gehen,
oder
c2. tatsächlicher Punkt liegt innerhalb des Pinsel-Begrenzungskasten (126-
128), wenn das Pinsel-Führungszentrum in einem der Endpunkte der
tatsächlichen Bahnkurve positioniert ist, dann Pinselprozedur mit Bezug
auf einen solchen Endpunkt ausführen, aber
c.3 andernfalls (130) eine Teilungsprozedur für die betreffende Bahn-Bezier-
Kurve ausführen und einen beliebigen Teil als sekundäre Bahn-Bezier-
Kurve zur Verarbeitung in der genannten Bestimmungsprozedur nehmen;
d. in der Pinselprozedur für jede Pinsel-Bezier-Kurve für den genannten
tatsächlichen Punkt bestimmen, entweder:
d1. tatsächlicher Punkt liegt außerhalb des Pinselkurven-Begrenzungskastens,
dann zur Schnittpunkt-Prozedur gehen, oder
d2. tatsächlicher Punkt deckt sich mit einem Pinsel-Bezier-Kurven-Endpunkt,
dann beenden und mit Zuordnungs-Operation fortfahren, oder
d3. alle Steuerpunkte der Pinsel-Bezier-Kurve liegen in einem diskreten 2x2-
Punkt-Quadrat, dann zur Schnittpunkt-Prozedur gehen, aber
d4. andernfalls die Teilungsprozedur für die betreffende Pinsel-Bezier-Kurve
ausführen und einen beliebigen Teil als sekundäre Pinsel-Bezier-Kurve zur
Verarbeitung in der genannten Pinselprozedur nehmen;
e. in der genannten Schnittpunkt-Prozedur eine Anzahl von Schnittpunkten von
einer bestimmten quasi-unendlichen Linie beginnend in dem genannten
tatsächlichen Punkt mit einer tatsächlichen Pinsel-Bezier-Kurve bestimmen und die
genannte Anzahl akkumulieren, bis alle Pinsel-Bezier-Kurven in der
Pinselprozedur verarbeitet sind und dann im Falle eines ungeradzahligen
Akkumulationsergebnisses zu der genannten Zuordnungs-Operation gehen, aber
andernfalls zu der genannten Bestimmungsprozedur zurückkehren und dabei die
Akkumulierung zurücksetzen;
f. in der genannten Zuordnungsprozedur dem betreffenden Pixel eine "Innerhalb"-
Angabe zuweisen und Prozedur beenden;
g. aber andernfalls dem betreffenden Pixel eine "Außerhalb"-Angabe zuweisen und
Prozedur beenden.
2. Verfahren nach Anspruch 1, wobei in der genannten
Bestimmungsprozedur in Verbindung mit den Schritten c1, c2 geprüft wird, ob alle Steuerpunkte der
tatsächlichen Bahn-Bezier-Kurve in einem diskreten 2x2-Punkt-Quadrat liegen und dann
zu der genannten Pinsel-Prozedur weitergegangen wird, wobei der Pinsel an einem der
Endpunkte der tatsächlichen Bahn-Bezier-Kurve positioniert ist.
3. Verfahren nach Anspruch 1, wobei die genannte quasi-unendliche Linie
eine erste koordinatenartige Richtung hat, und in Verbindung mit den Schritten c1, c2
geprüft wird, ob eine Gerade durch den tatsächlichen Punkt und senkrecht zu der
genannten ersten koordinatenartigen Richtung immer die Pinselform schneiden würde,
wenn sie mit ihrem Führungszentrum auf einen beliebigen Steuerpunkt der tatsächlichen
Bahnkurve positioniert wird, wobei im positiven Fall mit der Zuordnungs-Prozedur
fortgefahren wird.
4. Verfahren nach Anspruch 1, wobei in Punkt c2 auf die Pinsel-Prozedur
zugegriffen wird, wenn der tatsächliche Punkt in dem Pinsel-Begrenzungskasten liegt,
wenn sich der Pinsel-Begrenzungskasten mit irgendeiner Ecke des ausgeweiteten
Kastens deckt und wobei in der Pinsel-Prozedur geprüft wird, ob der tatsächliche Punkt
außerhalb des Pinsels, aber in einem kohärenten Gebiet liegt, das an eine Ecke des
ausgeweiteten Kastens angrenzt, wobei im positiven Fall mit einer weiteren Bahnkurve
fortgefahren wird.
5. Verfahren nach Anspruch 1, wobei in Verbindung mit Schritt c1 das
genannte "Außerhalb"-Ergebnis die betreffende Bahnkurve von der Betrachtung
hinsichtlich eines tatsächlichen Punktes auf einer unendlichen Linie, die sich mit der
genannten quasi-unendlichen Linie deckt, ausschließt, vorausgesetzt, die genannte
unendliche Linie schneidet nicht den ausgeweiteten Kasten.
6. Verfahren nach Anspruch 5, wobei die Größe senkrecht zu der genannten
unendlichen Linie des genannten ausgeweiteten Kastens in mindestens einer Teilgruppe
von Bahnkurven mit NICHT/ODER verknüpft wird, um eine Deckungsungleichheit
hinsichtlich einer Gruppe von parallelen angrenzenden Punktlinien zu liefern, welche die
genannte unendliche Linie enthält, und wobei eine Bahnkurve innerhalb der genannten
Teilgruppe von der Betrachtung hinsichtlich eines tatsächlichen Punktes auf einer Linie
der genannten Gruppe ausgeschlossen wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die genannte
Führungsbahn eine geschlossene Form ist und auch die genannte "Innerhalb"-Angabe
definiert, wobei die genannte Pinsel-Prozedur ebenfalls getrennt für die Bahn ausgeführt
wird, welche dann als zweiter, stationärer Pinsel dient.
8. Verfahren nach Anspruch 7, wobei eine "Innerhalb"-Angabe hinsichtlich
der genannten Bahn Vorrang vor jeder "Außerhalb"-Angabe hat, die sich aus der
Verarbeitung der Pinselform ergibt.
9. Verfahren nach einem der Ansprüche 1 bis 8, wobei jede für ein
tatsächliches Pixel erzeugte "Innerhalb"-Angabe die Verarbeitung dieses Pixeis beendet.
10. Verfahren nach einem der Ansprüche 1 bis 9, wobei die genannte
Pinselform eine Abmessung hat, die in Anwendungs-Koordinaten variabel ist, um ihre
Abmessung bei Zoom/Entzoom-Operationen in Anzeigegerät-Koordinaten konstant zu
halten.
11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die genannte
Führungsbahn ein alphanumerisches Zeichen definiert.
12. Verfahren nach einem der Ansprüche 1 bis 11, wobei die genannte
Führungsbahn zwei geschlossene Figuren miteinander verbindet.
13. Verfahren nach einem der Ansprüche 1 bis 12, um die räumliche
Kohärenz innerhalb eines Anzeigefensters in bezug auf eine anzuzeigende Region zu
bestimmen, die durch einen zweiten geschlossenen Bezier-Pfad umrissen ist, wobei der
genannte zweite Pfad als Führungsbahn dient und das genannte Fenster in bezug auf einen
Ursprungspunkt räumlich invertiert ist, wobei der genannte Ursprung daraufhin als
Führungszentrum dient, und ein Ergebnis der genannten Invertierungs-Operation als
Pinsel dient, wonach jede "Innerhalb"-Angabe für den genannten Ursprungspunkt eine
Nicht-Kohärenz signalisiert.
14. Verfahren nach einem der Ansprüche 1 bis 13 zur Verwendung für eine
mehrfarbige Anzeigevorrichtung.
15. Verfahren nach einem der Ansprüche 1 bis 14 zur Verwendung für eine
Textverarbeitungsvorrichtung.
16. Verfahren nach einem der Ansprüche 1 bis 15 zur Verwendung für ein
Graphikverarbeitungssystem.
17. Verfahren nach einem der Ansprüche 1 bis 16, wobei die genannte
Pinselform eine rationale Bezier-Kurve enthält, die mit Hilfe einer konischen Projektion in
bezug auf einen zweiten Ursprung in eine nicht-rationale Bezier-Kurve in drei
Dimensionen übertragen wird, welche sich mit Hilfe einer zylindrischen Projektion parallel zu
der Verbindungslinie zwischen dem zweiten Ursprung und dem tatsächlichen Punkt zu
einer weiteren nicht-rationalen Bezier-Form wandelt, für die das Punktgehalt-Ergebnis
des zweiten Ursprungs identisch ist mit dem Punktgehalt des betreffenden
ursprünglichen Punktes in bezug auf die ursprüngliche Pinselform.
18. Verfahren nach Anspruch 17, wobei die Pinselform mindestens einen
konischen Abschnitt enthält.
19. Verfahren nach Anspruch 18, wobei die genannte Pinselform
ausschließlich aus konischen Abschnitt-Teilen besteht.
20. Verfahren nach Anspruch 19, wobei die genannte Pinselform ein einzelner
konischer Abschnitt ist.
21. Verfahren nach Anspruch 20, wobei die genannte Pinselform ein Kreis ist.
22. Verfahren nach Anspruch 20, wobei die genannte Pinselform eine Ellipse
ist.
23. Verfahren nach einem der Ansprüche 1 bis 16, wobei die genannte
Pinselform ein Rechteck ist.
24. Gerät zur Ausführung eines Rechnerverfahrens zur pixelweisen Erzeugung
eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement
(Figuren 1c, 1d, Figur 3f, 100-120-122) darstellt, welches eine Bezier-Form ist, die mit
ihrem Führungszentrum auf einer Führungsbahn (100-102-104) entlangbewegt wird, die
ein nicht-rationaler Bezier-Pfad in dem genannten Objektsatz ist, wobei das Verfahren
folgende Schritte umfaßt:
a. für jede Bahn-Bezier-Kurve einen bahnbezogenen Satz von Bahnsteuerpunkten
in einem zugehörigen koordinatenartig orientierten
Bahnkurven-Begrenzungskasten (100, 106, 116, 118) liefern und für jede Pinsel-Bezier-Kurve einen
pinselbezogenen Satz von Pinselsteuerpunkten in einem zugehörigen
Pinselkurven-Begrenzungskasten (100, 120, 124, 122) liefern, und einen
Pinsel-Begrenzungskasten mit allen Punkten der Pinselform liefern;
b. für jedes Pixel Anwendungs-Koordinatenwerte hinsichtlich jedes relevanten
Objektelementes für einen tatsächlichen Punkt bestimmen, der mit diesem Pixel
übereinstimmt, und anschließend erweitern jedes entsprechenden Bahnkurven-
Begrenzungskastens mit dem Pinsel-Begrenzungskasten zu einem ausgeweiteten
Kasten (100-110-114-118) und
c. in einem Bestimmungsverfahren für den genannten tatsächlichen Punkt
bestimmen, entweder:
c1. tatsächlicher Punkt liegt außerhalb des ausgeweiteten Kastens (132), dann
fragliche Bahnkurve zurückweisen und zu einer anderen Bahnkurve gehen,
oder
c2. tatsächlicher Punkt liegt innerhalb des Pinsel-Begrenzungskasten (126-
128), wenn das Pinsel-Führungszentrum in einem der Endpunkte der
tatsächlichen Bahnkurve positioniert ist, dann Pinselprozedur mit Bezug
auf einen solchen Endpunkt ausführen, aber
c.3 andernfalls (130) eine Teilungsprozedur für die betreffende Bahn-Bezier-
Kurve ausführen und einen beliebigen Teil als sekundäre Bahn-Bezier-
Kurve zur Verarbeitung in der genannten Bestimmungsprozedur nehmen;
d. in der Pinselprozedur für jede Pinsel-Bezier-Kurve für den genannten
tatsächlichen Punkt bestimmen, entweder:
d1. tatsächlicher Punkt liegt außerhalb des Pinselkurven-Begrenzungskastens,
dann zur Schnittpunkt-Prozedur gehen, oder
d2. tatsächlicher Punkt deckt sich mit einem Pinsel-Bezier-Kurven-Endpunkt,
dann beenden und mit Zuordnungs-Operation fortfahren, oder
d3. alle Steuerpunkte der Pinsel-Bezier-Kurve liegen in einem diskreten 2x2-
Punkt-Quadrat, dann zur Schnittpunkt-Prozedur gehen, aber
d4. andernfalls die Teilungsprozedur für die betreffende Pinsel-Bezier-Kurve
ausführen und einen beliebigen Teil als sekundäre Pinsel-Bezier-Kurve zur
Verarbeitung in der genannten Pinselprozedur nehmen;
e. in der genannten Schnittpunkt-Prozedur eine Anzahl von Schnittpunkten von
einer bestimmten quasi-unendlichen Linie beginnend in dem genannten
tatsächlichen Punkt mit einer tatsächlichen Pinsel-Bezier-Kurve bestimmen und die
genannte Anzahl akkumulieren, bis alle Pinsel-Bezier-Kurven in der
Pinselprozedur verarbeitet sind und dann im Falle eines ungeradzahligen
Akkumulationsergebnisses zu der genannten Zuordnungs-Operation gehen, aber
andernfalls zu der genannten Bestimmungsprozedur zurückkehren und dabei die
Akkumulierung zurücksetzen;
f. in der genannten Zuordnungsprozedur dem betreffenden Pixel eine "Innerhalb"-
Angabe zuweisen und Prozedur beenden;
g. aber andernfalls dem betreffenden Pixel eine "Außerhalb"-Angabe zuweisen und
Prozedur beenden;
wobei das genannte Gerät folgendes umfaßt:
- erste Speichermittel zur wahlweisen Speicherung einer Folge von Bahnsteuerpunkt-
Koordinaten und Kantenkoordinaten des genannten Pinsel-Begrenzungskastens (250);
- zweite Speichermittel zur Speicherung der Koordinaten des genannten tatsächlichen
Punktes (154);
- erste Berechnungsmittel, die durch die genannten ersten und zweiten Speichermittel
versorgt werden, um die relativen Koordinaten der genannten Bahnsteuerpunkte zu
berechnen;
- erste Prüfmittel, die durch die genannten ersten Berechnungsmittel versorgt werden,
um für alle Steuerpunkte einer Bezier-Kurve zu prüfen, ob sie in einem 2x2-Punkt-
Quadrat liegen (260);
- zweite Berechnungsmittel, die durch die genannten ersten Speichermittel und zweiten
Speichermittel versorgt werden, um die relativen Werte der Kanten des ausgeweiteten
Kastens zu berechnen (266);
- zweite Prüfmittel, die durch die genannten zweiten Berechnungsmittel versorgt
werden, um zu prüfen, ob der tatsächliche Punkt außerhalb des genannten ausgeweiteten
Kastens liegt (272, 274);
- dritte Berechnungsmittel, die durch die genannten ersten Berechnungsmittel versorgt
werden, um die Steuerpunkte einer geteilten Bahn-Bezier-Kurve zu berechnen und diese
den genannten ersten und zweiten Prüfmitteln zur bedingten Rückkopplung an den
eigenen Eingang zu liefern;
- wobei das Gerät außerdem ein Ausgangsmittel besitzt, das durch die genannten ersten
Berechnungsmittel versorgt wird, um verarbeitete Steuerpunkte an ein Pinsel-Prozedur-
Verarbeitungsmittel auszugeben.
25. Gerät nach Anspruch 24, wobei das genannte dritte Berechnungsmittel ein
Gruppierungsmittel zur gleichzeitigen Berechnung von mindestens zwei
Ausgangs-Steuerpunkten als Zwischenpunkt zwischen jeweiligen Paaren von Eingangs-Steuerpunkten
ist.
26. Gerät nach Anspruch 24, wobei das genannte Gruppierungsmittel eine
einzige Reihe von Addierern hat, die eine serielle Pipeline-Organisation und eine
Vielzahl von parallelen Ausgängen aufweisen.
27. Gerät nach Anspruch 24, wobei das genannte
Pinsel-Prozedur-Verarbeitungsmittel mindestens ein Bahn-Bezier-Kurven-Teilungsmittel gemeinsam mit dem
genannten dritten Berechnungsmittel hat.
28. Gerät nach Anspruch 24, wobei ein drittes Speichermittel an einem
Ausgang der genannten dritten Berechnungsmittel vorgesehen ist, um die Steuerpunkte von
mindestens einer geteilten Bahn-Bezier-Kurve stapelweise für die spätere Verarbeitung
in dem genannten dritten Berechnungsmittel zu speichern.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19707788A | 1988-05-20 | 1988-05-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68928227D1 DE68928227D1 (de) | 1997-09-11 |
DE68928227T2 true DE68928227T2 (de) | 1998-02-12 |
Family
ID=22727948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1989628227 Expired - Fee Related DE68928227T2 (de) | 1988-05-20 | 1989-05-16 | Rechnerverfahren und Gerät zur Erzeugung eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement darstellt |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0342752B1 (de) |
JP (1) | JPH0271374A (de) |
DE (1) | DE68928227T2 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2248754A (en) * | 1990-06-13 | 1992-04-15 | Rank Cintel Ltd | Electronic painting system |
WO1992009966A1 (en) * | 1990-11-30 | 1992-06-11 | Cambridge Animation Systems Limited | Image synthesis and processing |
CN116372964B (zh) * | 2023-06-05 | 2024-02-20 | 西湖大学 | 具有可切换末端执行机构集的空中机器人系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8300872A (nl) * | 1983-03-10 | 1984-10-01 | Philips Nv | Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen. |
US4620287A (en) * | 1983-01-20 | 1986-10-28 | Dicomed Corporation | Method and apparatus for representation of a curve of uniform width |
-
1989
- 1989-05-16 DE DE1989628227 patent/DE68928227T2/de not_active Expired - Fee Related
- 1989-05-16 EP EP19890201219 patent/EP0342752B1/de not_active Expired - Lifetime
- 1989-05-17 JP JP12412289A patent/JPH0271374A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE68928227D1 (de) | 1997-09-11 |
JPH0271374A (ja) | 1990-03-09 |
EP0342752B1 (de) | 1997-08-06 |
EP0342752A3 (de) | 1991-11-21 |
EP0342752A2 (de) | 1989-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3851046T2 (de) | Verfahren zum Füllen von Polygonen. | |
DE69221414T2 (de) | Intelligenter Schriftartdarstellungskoprozessor | |
DE68927471T2 (de) | Verfahren zur Schattierung eines graphischen Bildes | |
DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
DE69130432T2 (de) | Bildanzeigesystem | |
DE69312505T2 (de) | Polygonaufrasterung | |
DE3855639T2 (de) | Grafisches Anzeigeverfahren | |
DE69328589T2 (de) | System und Verfahren zur Darstellung von Bezier-Splines-Kurven | |
DE69224499T2 (de) | Dreidimensionale graphische Verarbeitung | |
DE68915006T2 (de) | System zum Generieren von Musterdaten. | |
DE69100140T2 (de) | Verfahren zur Anzeige eines Bildteiles einer physikalischen Struktur. | |
DE68919024T2 (de) | Verfahren und Prozessor zur Abtastumsetzung. | |
DE3687668T2 (de) | Verfahren und einrichtung zur verbesserung der bildqualitaet in einem nach dem rasterverfahren arbeitenden anzeigegeraet. | |
DE69222707T2 (de) | Zeichenverdünnung mit Verwendung des Auftrittsverhaltens von lokal unabhängigen kompetitiven Prozessen | |
DE69534331T2 (de) | Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur | |
DE3407983C2 (de) | Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen | |
DE69027402T2 (de) | Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind | |
DE3608438A1 (de) | Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc | |
DE69423129T2 (de) | System und Verfahren zur Kurvendarstellung | |
DE19807013B4 (de) | Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet | |
DE102005050846A1 (de) | Perspektiveneditierwerkzeuge für 2-D Bilder | |
DE69330900T2 (de) | Verfahren zum Ausfüllen der Bildpunkte innerhalb eines Polygons | |
DE3315148A1 (de) | Digitale sichtanzeigeeinrichtung | |
DE69329316T2 (de) | Gerät und Verfahren zur graphischer Darstellung von Flächen | |
DE69924230T2 (de) | Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N |
|
8339 | Ceased/non-payment of the annual fee |