-
Urheberrechtliche Hinweise
-
Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das urheberrechtlich geschützt ist. Der Rechteinhaber erhebt keine Einwände dagegen, dass Dritte das Patentdokument oder die Patentoffenbarung, so wie sie in den Akten oder Aufzeichnungen des Patent- und Markenamtes erscheint, originalgetreu wiedergeben, behält sich aber alle anderen urheberrechtlichen Rechte vor.
-
Gebiet der Offenbarung
-
Diese Offenbarung bezieht sich allgemein auf das Gebiet der Datenverarbeitung und genauer auf die computerisierte Erzeugung von ornamentalen Designs
-
Hintergrund
-
Ein populärer Stil von ornamentalen Designs beinhaltet das Ausfüllen eines Containerbereichs mit einer Anzahl von kleinen dekorativen Elementen. Die dekorativen Elemente sind einfache geometrische Formen, oftmals stilisierte Pflanzen, Spiralen oder andere abstrakte Formen. Die Elemente sind groß genug, so dass sie einzeln wahrgenommen werden können, wirken jedoch zusammen, um die Gesamtform der Containerform zu kommunizieren. Typischer Weise bilden sie auch eine kohäsive stilistische Familie.
-
Bezüglich der Erzeugung von Packungen oder Mosaiken gibt es ein gewisses Maß an früherer Forschung in Computergrafik gegeben, hauptsächlich im Gebiet des nicht-fotorealistischen Renderns. Die meisten Techniken packen Elemente mittels fester Bewegungen, was zu einer hohen Gleichförmigkeit aber unzureichender Varietät führt. Andere Arbeiten beinhalten das verteilen kleiner geometrischer Elemente, um Texturen oder Mosaike zu erzeugen. A. Hausner beschreibt in: „Simulating decorative mosaics“, Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH '01, Seiten 573-580. ACM, New York, NY, USA, 2001. doi: 10.1145/383259.383327 beispielsweise eine Variante von Lloyds Methode, um quadratische Kacheln, welche relativ zu einem Vektorfeld ausgerichtet sind, zu verteilen in einer Simulation traditioneller Mosaike. Nachfolgende Arbeiten haben diesen Ansatz verallgemeinert auf Familien unterschiedlicher Elementformen und einen FFT-basierten Bildkorrelationsschritt aufgenommen, um einen gleichförmigeren negativen Raum bzw. Abstand zu erzeugen. Siehe beispielsweise S. Hiller, H. Hellwig und 0. Deussen, „Beyond Stippling - Methods for Distributing Objects on the Plane“, Computer Graphics Forum, 2003. doi: 10.1111/1467-8659.00699; und K. Dalal, A. W. Klein, Y. Liu, und K. Smith, „A spectral approach to NPR packing“, Proceedings of the 4th International Symposium on Non-photorealistic Animation and Rendering, NPAR '06, Seiten 71-78. ACM, New York, NY, USA, 2006. doi: 10.1145/1124728.1124741.
-
Ein separater Ast der Forschung behandelt das Platzieren von Elementen als eine Form beispielsbasierter Textursynthese, siehe zum Beispiel T. Hurtut, P.-E. Landes, J. Thollot, Y. Gousseau, R. Drouillhet und J.-F. Coeurjolly, „Appearance-guided synthesis of element arrangements by example“, Proceedings of the 7th International Symposium on Non-Photorealistic Animation and Rendering, NPAR '09, Seiten 51-60. ACM, New York, NY, USA, 2009, doi: 10.1145/1572614.1572623; und Z. AlMeraj, C. S. Kaplan und P. Asente, „Patch-based geometric texture synthesis“, Proceedings of the Symposium on Computational Aesthetics, CAE '13, Seiten 15-19. ACM, New York, NY, USA, 2013. doi: 10.1145/2487276.2487278. In diesen Techniken ist es das Ziel, die statistischen Eigenschaften einer eingegebenen Textur zu reproduzieren, einschließlich der unregelmäßigen Abstände zwischen Elementen. T. Ijiri, R. Měch, T. Igarashi und G. S. P. Miller, schlagen in: „An example-based procedural system for element arrangement“, Comput. Graph. Forum, 27:429-436, 2008, ein Wachstumsmodell vor, in welchem Elemente relativ zu einem Vektorfeld orientiert und durch Begrenzungskurven beschränkt werden können. Wie auch in den Techniken, die auf Lloyds Methode basieren, werden in diesen Fällen Elemente mittels Translation und Rotation platziert, ohne dass dabei eine Verformung vorgesehen ist.
-
Andere Arbeiten beinhalten Puzzlebildmosaike („Jigsaw Image Mosaics“, JIMs), die Elemente dicht in einen Containerbereich packen, ohne irgendeinen negativen Raum zu lassen. Siehe beispielsweise J. Kim, F. Pellacini, „Jigsaw image mosaics“, Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH '02, Seiten 657-664. ACM, New York, NY, USA, 2002. doi: 10.1145/566570.566633. Die JIMs werden mittels einer Optimierung erzeugt, welche begrenzte Ausmaße an Überlappungen und Verformungen erlaubt. Die Berechnung von Kachelungen der Ebene basierend auf von einem Benutzer bereitgestellten Formen ist beschrieben in: C. S. Kaplan und D. H. Salesin, „Escherization“, Proceedings of the 27th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH '00, Seiten 499-510. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 2000. doi: 10.1145/344779.345022. Diese Techniken lassen die Designmöglichkeiten unberücksichtigt, welche durch den Fluss oder die Kontrolle des negativen Raums geboten werden.
-
Eine andere Kategorie früherer Forschungen trachtet danach, explizite Prozedurale Modelle zum Erstellen dekorativer Muster zu entwickeln. Ein Satz von Designprinzipien, welcher beinhaltet: Wiederholung, Balance und Übereinstimmung mit geometrischen Zwangsbedingungen, wird zusammen mit einem grammatikartigen System zum Anordnen pflanzlicher Ornamente von M. T. Wong, D. E. Zongker und D. H. Salesin beschrieben in: „Computer-generated floral ornament“, Proceedings of the 25th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH '98, Seiten 423-434. ACM, New York, NY, USA, 1998. doi: 10.1145/280814.280948. Ein weiteres Beispiel ist DecoBrush, wobei ornamentale Elemente entlang Linienkunst verformt wird, wie beschrieben von J. Lu, C. Barnes, C. Wan, P. Asente, R. Měch und A. Finkelstein in DecoBrush: „Drawing structured decorative patterns by example“, ACM Trans. Graph., 33(4):90:1-90:9, Juli 2014. doi: 10.1145/2601097.2601190. Das PATEX System, wie beschrieben von P. Guerrero, G. Bernstein, W. Li und N. J. Mitra in: „PATEX: Exploring pattern variations“, ACM Trans. Graph., 35(4):48:1-48:13, Juli 2016. doi: 10.1145/2897824.2925950, behält geometrische Beziehungen auf hoher Ebene bei, wie Symmetrie und Wiederholung, während ornamentale Designs editiert werden.
-
Andere verwandte Forschungen beinhalten solche, welche sich auf das Packen einzelner Schriftzeichenformen oder von Textblöcken in Containerbereiche bezieht, wie etwa das Erzeugen von Kalligrammen durch das Ausfüllen eines Containers mit einer kleinen Anzahl von Schriftzeichen, welche ein oder zwei Wörter bilden. Siehe beispielsweise J. Xu und C. S. Kaplan, „Calligraphic packing“, Proceedings of Graphics Interface 2007, GI '07, Seiten 43-50. ACM, New York, NY, USA, 2007. doi: 10.1145/1268517.1268527; und C. Zou, J. Cao, W. Ranaweera, I. Alhashim, P. Tan, A. Sheffer und H. Zhang, „Legible compact calligrams“, ACM Trans. Graph., 35(4):122:1-122:12, Juli 2016. doi: 10.1145/2897824.2925887. Das Ziel ist es, eine Balance zwischen dem Ausfüllen des Containerraums und dem Beibehalten der Lesbarkeit zu finden. Ein anderes Beispiel ist die Verformung von Textzeilen, um diese entlang Stromlinien in einem Container anzupassen, wie etwa beschrieben von R. Maharik, M. Bessmeltsev, A. Sheffer, A. Shamir und N. Carr, „Digital micrography“, ACM SIGGRAPH 2011 Papers, SIGGRAPH '11, Seiten 100:1-100:12. ACM, New York, NY, USA, 2011. doi: 10. 1145/1964921.1964995.
-
Schließlich haben einige jüngere Arbeiten das Elaborieren von ornamentalen Mustern auf Oberflächen unter Zwangsbedingungen, die durch die Fabrikation auferlegt werden, untersucht. Beispielsweise beschreiben W. Chen, X. Zhang, S. Xin, Y. Xia, S. Lefebvre und W. Wang in: „Synthesis of filigrees for digitalfabrication“, ACM Trans. Graph., 35(4):98:1-98:13, Juli 2016, doi: 10.1145/2897824.2925911 ein Verfahren, um filigrane Muster zu synthetisieren. J. Zehnder, S. Coros und B. Thomaszewski schlagen in: „Designing structurally sound ornamental curve networks“, ACM Trans. Graph., 35(4):99:1-99:10, Juli 2016, doi: 10.1145/2897824.2925888 halbautomatisierte Werkzeuge zum Verformen von ornamentalen Kurven vor, um eine Oberfläche zu bedecken. In beiden Fällen muss das Layout der Elemente berechnet werden, um sowohl ästhetische und strukturelle Ziele zu erfüllen-vor allem müssen sich Elemente überlappen, um ein verbundenes Ergebnis zu erhalten, das zusammenhalten wird, wenn es 3D gedruckt wird.
-
Während die oben beschriebenen Arbeiten eine Vielfalt von Techniken bereitstellen, um künstlerische Werke zu erzeugen, verbleibt ein Bedürfnis nach computerisierten Verfahren und Systemen, die ornamentale Designs erzeugen können, welche einen Container verwenden, der mit unregelmäßig geformten Elementen gefüllt wird, die visuell gefällig sind und die es erlauben, dass die Elemente einzeln wahrgenommen werden, während die Gesamtform des Containers kommuniziert wird.
-
Figurenliste
-
Die beigefügten Zeichnungen, welche in dieses Dokument inkorporiert werden und einen Bestandteil desselben bilden, exemplifizieren die Ausführungsformen der vorliegenden Erfindung und dienen zusammen mit der Beschreibung dazu, Prinzipien der hierin offenbarten erfinderischen Techniken zu erläutern und zu illustrieren.
- 1 ist ein Übersichtsdiagramm, welches eine Ausführungsform eines Systems zum Packen ornamentaler Elemente zeigt.
- 2 zeigt vier weitere Beispiele von ornamentalen Packungen.
- 3A und 3B sind Flussdiagramme, welche Details der Operation der Elementplatzierungsoperationen 116 von 1 zeigen.
- 3C ist eine Illustration der in 3A und 3B gezeigten Schritte.
- 4A ist ein Flussdiagramm, welches weitere Details der Erzeugung einer LR Funktion zur Elementplatzierung darstellt.
- 4B ist eine Darstellung der in 4A gezeigten Operationen.
- 5 ist eine Illustration der Nachverfolgung von Stromlinien.
- 6 ist ein Flussdiagramm, welches weitere Details des Matchens von Elementen und Blobs zeigt.
- 7A, 7B und 7C illustrieren das Verformen eines Elements.
- 8A und 8B illustrieren Aspekte des Stromliniendehnens.
- 9A und 9B illustrieren Stromlinienschnappen.
- 10, 11 und 12 geben weitere Beispiele ornamentaler Packungen.
- 13 zeigt ein Blockdiagramm einer Hardware, die in verschiedenen Ausführungsformen verwendet werden kann.
-
Detaillierte Beschreibung
-
In der folgenden detaillierten Beschreibung wird sich auf die beigefügten Zeichnungen bezogen, in welchen gleiche funktionelle Elemente mit gleichen Bezugszeichen bezeichnet sind. Die besagten beigefügten Zeichnungen zeigen allein beispielhaft und nicht beschränkend spezifische Ausführungsformen und Implementierungen i n Übereinstimmung mit Prinzipien der vorliegenden Erfindung. Diese Implementierungen werden in ausreichendem Detail beschrieben, um die Fachleute in die Lage zu versetzen, die Erfindung auszuführen, und es sei verstanden, dass andere Implementierungen verwendet und dass strukturelle Änderungen und/oder Ersetzungen verschiedener Elemente vorgenommen werden können, ohne vom Bereich und Geist der vorliegenden Erfindung abzuweichen. Die folgende detaillierte Beschreibung soll daher nicht in einem beschränkenden Sinn verstanden werden.
-
Die hierin offenbarten Systeme und Verfahren ermöglichen das computerisierte Zeichnen von ornamentalen Designs, welche aus platzierten Instanzen einfacher Formen bestehen. Diese Formen, welche Elemente genannt werden, können aus einer kleinen Bibliothek von Templates ausgewählt werden. Die Elemente werden verformt, so dass sie entlang eines Richtungsfeldes fließen, das aus von einem Benutzer gegebenen Strichen interpoliert wird, was der finalen Komposition einen Eindruck eines visuellen Flusses verleiht, und werden so begrenzt, dass sie innerhalb eines Containerbereichs liegen. In einer Implementierung wird basierend auf den von dem Benutzer gegebenen Strichen ein Vektorfeld berechnet. Es werden Stromlinien konstruiert, welche dem Vektorfeld entsprechen, und es wird ein Element über jede Stromlinie platziert.
-
In 1 ist ein System 100 zum Packen von ornamentalen Elementen gezeigt, das wie oben beschrieben arbeitet. Ein oder mehrere Benutzer 101 interagieren mit dem System 100, um ornamentale Designs zu erzeugen, wie etwa bei 106 gezeigt. Das System 100 beinhaltet einen Speicher 103, der verwendet werden kann, um eine Vielzahl von im Voraus erzeugten Containern 104 und eine Vielzahl von im Voraus erzeugten Elementen 105 zu speichern. Die Container 104 haben die Form visueller Bilder, welche die Form einer einfach geschlossenen Kurve (simple closed curve) annehmen, mit anderen Worten, einer Kurve, die keine Endpunkte aufweist und die einen Bereich vollständig einschließt, und den die Kurve nicht selbst durchkreuzt. Die einfach geschlossene Kurve ist auf keine bestimmte Form beschränkt, wie etwa bekannte geometrische Formen, sondern kann stattdessen asymmetrisch sein und kann irregulär geformt sein, wie etwa die verschiedenen in den Zeichnungen gezeigten Bilder. Auch wenn die in den Zeichnungen gezeigten Bilder von Tieren sind, oder ein Tierkopf oder ein menschlicher Schädel, sind die Container 104 nicht auf Bilder von Tieren oder Menschen beschränkt. Auch wenn der Container 104 als ein visuell geschlossener Container mit einem durchzogenen Umfang gezeigt ist, braucht das vervollständigte ornamentale Design 106 keinen sichtbaren Umfang aufweisen, der zusammenhängend oder ununterbrochen ist. So weist etwa das ornamentale Design 106 in 1 in seinem Umfang mehrere Diskontinuitäten auf, wie auch die ornamentalen Designs in den anderen Zeichnungen. Wie weiter erläutert, in Verbindung mit 4B, haben die Elemente 105 die Form visueller Formen, welche die Form einer einfach geschlossenen Kurve annehmen, welche nicht symmetrisch zu sein braucht und welche auch unregelmäßig geformt sein kann. Ein Element 105 kann auch eine Menge einfach geschlossener Kurven sein, wie etwa als 105.1 in 4B zu sehen ist welches zwei Kurven aufweist.
-
Der Benutzer 101 kann das System 100 dazu veranlassen, ein ornamentales Design 106 zu erzeugen, indem er einen Container 104 auswählt. Der von dem Benutzer 101 in 1 ausgewählte Container 104 ist eine Menge von drei Containern: der Fischkörper und zwei Flossen. Der Benutzer 101 kann auch ein oder mehrere Elemente 105 zur Platzierung in dem Container 104 auswählen. Das bzw. die ausgewählte(n) Element(e) 105 wird bzw. werden durch das System 100 mittels einer Reihe von Operationen platziert, welche allgemein bei 116 gezeigt und weiter in Verbindung mit den verbleibenden Figuren und der begleitenden Beschreibung beschrieben werden. Kurz gesagt wird zur Elementplatzierung 116 der Benutzer 101 einen oder mehrere, typischer Weise multiple vom Benutzer spezifizierte Richtungsflüsse, oder Richtungshinweise, für den ausgewählten Container 104 geben. Ein Fluss ist in 1 bei 114 innerhalb des Körpers des Fisches zu sehen. Andere Flüsse können an anderen Positionen innerhalb des Containers 104 platziert werden, und ebenfalls, wie zu sehen, entlang des Umfangs des Containers 104. Der Benutzer 101 kann auch ein oder mehrere erste Elemente in den Container 110 platzieren, wie etwa das Auge 112. Die festen Elemente 112 können aus einer Menge fester Elemente ausgewählt werden, die in dem Speicher 103 gespeichert sind, oder können von dem Benutzer 103 manuell erzeugt werden. Die ausgewählten Elemente 105 werden in den ausgewählten Container 104 platziert, indem sie in der lokalen Richtung des Flusses, wie durch den gerichteten Fluss 114 angezeigt, ausgerichtet werden. Die ausgewählten Elemente 105 können auch verformt werden, um Änderungen der Flussrichtung zu erfassen. Bestimmte Elemente 105 werden auch verformt, um die Nutzung negativen Raums mit benachbarten Elementen auszubalancieren. Die Größe bestimmter Elemente 105 kann auch geändert werden. In bestimmten Ausführungsformen platzieren die Elementplatzierungsoperationen 116 die ausgewählten Elemente 105 so, dass eines oder mehreren der folgenden erreicht wird: (i) folge dem Fluss, der durch den Richtungshinweis 114 definiert wird, (ii) erhalte so wenig freiem Raum wie möglich zwischen den platzierten Elementen, (iii) mache den Abstand zwischen Elementen so gleich wie möglich, (iv) bringe die Elemente mit den Containerbegrenzungen in Übereinstimmung, (v) variiere Elementbreite und -länge, um eine übermäßig gleichförmige Anordnung zu vermeiden.
-
Das resultierende ornamentale Design 106 für den Container 104 kann in dem Speicher 103 gespeichert und/oder dem Benutzer 101 für andere Verwendungen verfügbar gemacht werden, wie etwa zum Senden an andere, zur weiteren Bearbeitung, zum Drucken und so weiter. Der digitale Speicher 103 ist allgemein dargestellt, kann aber eine Vielfalt von Formen von Speichern für digitale Inhalte annehmen, einschließlich einem Speicher, der physisch über zahlreiche Speichervorrichtungen hinweg verteilt ist, und der auch teilweise oder vollständig physisch von anderen Teilen des Systems 100 entfernt ist.
-
2 zeigt vier weitere Beispiele ornamentaler Designs 106, wie einen Hund, einen Fisch, einen Löwenkopf und einen Schädel, welche von dem System 100 erzeugt werden können. Beispiele von Elementen 105 sind in 4B gezeigt (in größerem Detail später beschrieben), wobei mit jedem Element 105 ein Rückgrat 109 assoziiert ist, welche die Verformung des zugeordneten Elements 105 kontrolliert. Ausführungsformen des Systems 100 arbeiten, um die ornamentalen Designs 106 zu erzeugen, die in 1 und 2 zu sehen sind (sowie auch später beschrieben in 9-11), in Übereinstimmung mit einem oder mit mehreren höheren Prinzipien, die für deren Erstellung von Wichtigkeit sind. (1) Balance - die Komposition zeigt nicht zu viel Variation in lokalen Ausmaßen von positivem und negativem Raum. Dieses Ziel wird typischer Weise erreicht, indem die Variationen in Durchmessern von Elementen begrenzt wird (was die Variation in positivem Raum kontrolliert), und indem sichergestellt wird, dass Elemente gleichmäßig beabstandet werden (was den negativen Raum kontrolliert). (2) Fluss - in lokalen Teilen einer Komposition werden die Elemente ausgerichtet, um einen Eindruck von Gerichtetheit oder Fluss zu kommunizieren. Die gezeigten Beispiele zeigen ein gewisses Maß an Fluss. In dem Hund schienen viele Elemente von der Blume in der Mitte des Körpers nach außen hin zu fließen, und dann den Hals hoch und in die Beine. Die Schuppen und andere Elemente auf dem Fisch fließen entlang der Körperlänge. In dem Löwen und dem Schädel fließen Elemente von einer mittleren Symmetrieachse horizontal nach außen, was im Fall des Löwen ein Fell oder Schnurrhaare suggeriert. Fluss verschafft einer Komposition ein visuelles Interesse, was den Betrachter engagiert, indem ein Eindruck von Progression und Bewegung durch die Elemente gegeben wird. (3) Gleichförmigkeit inmitten von Vielfalt - wiederholte Elemente müssen eine Balance zwischen zwei entgegengesetzten Kräften finden. Gleichförmigkeit zielt auf eine gesamtheitliche Einheit des Designs ab; Varietät trachtet danach, die Monotonie reiner Wiederholung zu durchbrechen. Es sollte den Elementen erlaubt sein, in Form zu variieren, aber auf kontrollierte Weise. Dieses Prinzip wird als Gleichförmigkeit inmitten von Vielfalt bzw. „uniformity amidst variety“ bezeichnet, ein Ausdruck, der von dem Philosophen Francis Hutcheson entliehen ist. Siehe F. Hutcheson, „An Inquiry Into the Original of Our Ideas of Beauty and Virtue“, J. und J. Knapton et al, 1729. Siehe zur Rolle der Variation im Design auch E. H. Gombrich, „The Sense of Order: A Study in the Psychology of Decorative Art", Phaidon Press Limited, 1984. In den Beispielen hierin folgen sowohl die Spiralen des Hundes als auch die Schuppen des Fisches beide diesem Prinzip. Auch der Löwe und der Schädel tun dies, außer dass die Hälfte der Elemente gespiegelte Kopien der anderen Hälfte sind, gespiegelt an einer vertikalen Linie durch die Mitte der Komposition. Diese Wiederholung betont die zweiseitige Symmetrie in dem Design. (4) Feste Elemente - Kompositionen verwenden eine kleine Anzahl fester Elemente, um spezifische Designprobleme zu lösen oder um Fokussierungspunkte zu bieten. In jeder figürlichen Zeichnung dienen Augen als ein mächtiger Fokussierungspunkt; in jedem Beispiel in 2 sind Augen eingezeichnet als besondere bzw. einzigartige feste Elemente 112 (das Auge des Hundes wird durch eine sorgsam platzierte Spirale ausgedrückt). Andere Situationen, die nach spezialisierten Formen verlangen, beinhalten die Pfoten des Hundes, die Zähne und Flossen des Fisches, der Bart des Löwen und die Zähne des Schädels. Eine scharfe Variation in der Balance von positivem und negativem Raum kann auch verwendet werden, um einen Fokussierungspunkt zu betonen, wie etwa in dem leeren Raum um die Augen des Fisches. (5) Begrenzungen - in vielen ornamentalen Packungen werden Elemente sorgsam angeordnet, so dass sie mit Containerbegrenzungen übereinstimmen und diese betonen. Der Fisch zeigt dieses Prinzip am deutlichsten: wir können die Lücken zwischen Elementen leicht ausfüllen, um ein mentales Bild eines kontinuierlichen Umrisses zu formen. Die Elemente des Hundes sind ebenso wohl angeordnet, um die Form des Containers anzuzeigen. Diese Regel ist jedoch nicht universell. Der Löwe untergräbt dies auf raffinierte Weise mit Elementen, die nach außen hin zu einer undeutlichen Begrenzung fließen, was dabei hilft, die Erscheinung von Fell zu vermitteln.
-
Die Ergebnisse des Systems 100 vermeiden auch, Elemente über rigide Bewegungen zu packen, die zu einer hohen Gleichförmigkeit, aber ungenügenden Varietät führen. Das System 100 stellt systematische Moden geometrischer Verformung bereit, die aus einer einzelnen eingegebenen Form plausible Familien miteinander in Beziehung stehender dekorativer Elemente erzeugen kann. Das System 100 fokussiert darauf, eine große Anzahl kleiner Elemente zu packen, um Kompositionen großer, visuell unterschiedlicher Elemente zu erzeugen. Die Packung ist nicht zu dicht, so dass jede einzelne Form erkannt werden kann.
-
3A und 3B sind Flussdiagramme, welche Operationsdetails der Elementplatzierungsoperationen 116 von 1 zeigen. 3C zeigt visuell die Ergebnisse der Schritte, die in 3A und 3B ausgeführt werden. Die in 3A, 3B und 3C ausgeführten Operationen werden hier zusammengefasst, wobei Details in Verbindung mit den verbleibenden Figuren gegeben werden. Bei 302 werden Ausgabedatenstrukturen initialisiert, und es werden über Benutzereingaben 306 etwaige feste Elemente wie beispielsweise 112 bei 304 erhalten. Die ausgewählten ornamentalen Elemente 105 werden bei 308 analysiert und bei 310 wird für jedes ausgewählte ornamentale Element 105 ein Formdeskriptor erzeugt. Der Richtungshinweis 114 wird bei 310 verwendet, um jeden Zielcontainer 106 mit einem Vektorfeld zu füllen. 1 zeigt einen einzelnen Richtungshinweis 114, aber es kann mehr als einen Richtungshinweis geben. Bei 312 werden Stromlinien in die Vektorfelder nachverfolgt. Die Zielcontainer werden bei 314 in Blobs um die Stromlinien unterteilt. Bei 316 werden die Elementformdeskriptoren verwendet, um für jeden Blob das beste Element zu bestimmen. Bei 318 wird das Element in einen entsprechenden Blob platziert, wobei es als ein Skelettstrich behandelt wird und dessen Rückgrat auf die Stromlinie abgebildet wird.
-
Falls es mehrere zu füllende Container gibt, werden die hierin beschriebenen Operationen für jeden Container ausgeführt. Es wird eine Variable eingabe_größe definiert als das Maximum der kombinierten Breite oder Höhe von allen Zielcontainern und festen Elementen, wie sie durch den Benutzer 101 ausgelegt wurden. Diese wird verwendet, um verschiedene Parameter im Syntheseprozess einzustellen.
-
Ornamentale Elemente 105 haben die Form von einer oder mehreren geschlossenen Kurven, die unregelmäßig geformt sein können. Das Platzieren der Elemente 105 erfordert die Verformung von einigen, wenn nicht sogar von allen Elementen unter Verwendung eines einfachen Skelettstrichalgorithmus, wie etwa beschrieben von S. C. Hsu, I. H. H. Lee und N. E. Wiseman in: „Skeletal strokes“, in Proceedings of the 6th Annual ACM Symposium on User Interface Software and Technology, UIST '93, Seiten 197-206. ACM, New York, NY, USA, 1993. doi: 10.1145/168642.168662. Eine solche Technik verwendet ein gerades Rückgrat, wie das Rückgrat 109, um die Verformung zu führen. Das Rückgrat 109 braucht nicht durch die Mitte des Elements 105 zu verlaufen; es kann an beliebiger Stelle sein. In 4B sind Beispiele von Rückgraten 109 (genauer 109.1-109.6), die den Elementen 105 entsprechen, zu sehen, wobei zwei Klassen von Elementen gezeigt sind: ganze Elemente, wie 105.1-105.3, welche sich zu beiden Seiten ihres Rückgrat erstrecken, und halbe Elemente, wie etwa 105.4-105.6, die gänzlich auf einer Seite ihres Rückgrat sind. Wenn die Eingabe 101 Richtungshinweise 114 enthält, die mit Begrenzungen des Zielcontainers zusammenfallen, werden die Halbelemente so platziert werden, dass diese entlang dieser Begrenzungen ausgerichtet sind. Halbelemente, die Kanten aufweisen, die ihren Rückgraten eng folgen, wirken dergestalt, dass sie Containerbegrenzungen visuell verstärken.
-
Für jedes Element wird ein einfacher Formdeskriptor erzeugt, der als LR Funktion bezeichnet wird. Dieser wird später verwendet, um auszuwählen, welches Element platziert werden soll. 4A zeigt die Erzeugung des Formdeskriptors. In 402 wird das Rückgrat 109 des Elements 105 an n Stellen gesampelt. Ein Wert von n = 100 liefert allgemein eine hinreichende Granularität bereit. Bei 404 wird an jeder gesampelten Stelle eine Bestimmung gemacht, wie weit sich das Ornament zur linken und zur rechten des Rückgrats erstreckt. Die LR Funktion ist die Menge {L, R}, wobei L = {L1, ..., Ln} die linke Funktion und R = {r1, ..., rn} die rechte Funktion ist. Weitere Einzelheiten einer solchen Technik sind beschrieben von R. Gal, A. Shamir und D. Cohen-Or in: „Poseoblivious shape signature“, IEEE Transactions on Visualization and Computer Graphics, 13(2):261-271, März 2007. doi: 10.1109/TVCG.2007.45.
-
Intuitiv nehmen LR Funktionen einen näherungsweisen Bereich eines ornamentalen Elements ein. 4B zeigt sechs Elemente (ganze Elemente 105.1-105.3 und halbe Elemente 105.4-105.6). Die linken und rechten Werte, die mit jedem Element 105 assoziiert sind, sind graphisch dargestellt, zusammen mit dem mit dem Element assoziierten Element, bei 420.1-420.6. Ganze Element 105.1-105.3 haben nichtleere linke und rechte Seiten, während halbe Elemente 105.4-105.6 nur eine Seite aufweisen. Die LR Funktionen werden bei 406 auf ein Einheitsquadrat normalisiert, indem ihre Domäne und ihr Bereich auf das Intervall [0,1] skaliert wird.
-
Um die Elemente 105 entsprechend den benutzerdefinierten Flüssen zu platzieren, wie durch die Richtungshinweise 114 definiert, wird jeder Zielcontainer 104 mit einem Vektorfeld gefüllt, beschränkt durch die Richtungshinweise 114 in diesem Container. Die Richtungshinweise 114, D = {d1, d2, ..., dn} werden jeweils gesampelt, und die Tangente an jedem Samplepunkt wird als eine Richtungsbedingung verwendet. Es wird dann ein Vektorfeld, allgemein bei 310 in 3C gezeigt, erzeugt unter Verwendung des N-RoSy („N-way Rotational Symmetry“) Algorithmus, der beschrieben ist von J. Palacios und E. Zhang, „Rotational symmetry field design on surfaces“, in ACM SIGGRAPH 2007 Papers, SIGGRAPH '07. ACM, New York, NY, USA, 2007. doi: 10.1145/1275808.1276446. Feste Elemente 112 beeinflussen das Vektorfeld nicht. Der Benutzer 101 kann falls gewünscht Richtungshinweise 114 einbringen, um das Vektorfeld um feste Elemente 112 zu leiten.
-
5 zeigt weitere Einzelheiten des Schritts 312 von 3B und 3C des Nachverfolgens von Stromlinien (wie zum Beispiel 501-508 in 5) in dem Vektorfeld. Das Stromliniennachverfolgen wird durch drei Eingabeparameter angeleitet: d_gap ist der gewünschte Raum bzw. Abstand zwischen Stromlinien, wie bei 509-513 gesehen, s_max ist die gewünschte maximale Stromlinienlänge, s_min ist die gewünschte minimale Stromlinienlänge. Die erste Stromlinie 501 beginnt immer auf einem Richtungshinweis 114. Nachfolgende Stromlinien (502-508) beginnen auf der Umrandung des Containers 104, einem Richtungshinweis 114 oder an einem Punkt, der von einer vorhergehenden Stromlinie um d_gap entfernt ist. In einem späteren Schritt werden Elemente 105 ohne Überlappung entlang Stromlinien platziert, daher bestimmt d_gap die ungefähre Breite der platzierten Elemente und s_max die maximale Länge. Um zu verhindern, dass sich Stromlinien zu nahe kommen, wird ein Wert d_stop abgeleitet und verwendet. In einer beispielhaften Implementierung ist d_stop = 0.8 d_gap.
-
In einer Ausführungsform wird der Stromliniennachverfolgungsalgorithmus, der beschrieben ist von B. Jobard und W. Lefer, „Creating evenly-spaced streamlines of arbitrary density,“ in W. Lefer und M. Grave, eds., Visualization in Scientific Computing'97: Proceedings of the Eurographics Workshop in Boulogne-sur-Mer, Frankreich, 28. bis 30. April, 1997, Seiten 43-55, Springer Wien, Wien, 1997. doi: 10.1007/978-3-7091-6876-9_5, angepasst und implementiert wie in dem nachstehenden Pseudocode gezeigt. Es wird eine Menge von Startpunkten P = {p1, p2, ..., pn} erzeugt durch dichtes Resampeln der Begrenzung T des Zielcontainers 104 und der Richtungshinweise 114 in D. Beispielsweise kann ein Abtastabstand von 0.005 eingabe_größe verwendet werden. Eine leere Menge von Stromlinien wird erzeugt, und die potentiellen Startpunkte von P werden zufällig geordnet. Es wird eine neue Stromlinie s erzeugt, indem zufällig ein Startpunkt aus P entfernt wird und dem Vektorfeld gefolgt wird, bis eine der folgenden Bedingungen erfüllt ist:
- 1. die Länge von s würde s_max überschreiten.
- 2. s käme innerhalb d_stop von einer anderen Stromlinie.
- 3. s würde T kreuzen und den Container 104 verlassen.
- 4. s würde die Begrenzung eines festen Elements 112 kreuzen.
-
Die Länge von s wird überprüft, und wenn die Länge von s kleiner als s_min ist, wird sie verworfen. Andernfalls wird s erneut gesampelt unter Verwendung von 0.005 eingabe_größe, und es werden bei jedem Punkt zwei weitere potentielle Startpunkte erzeugt, die auf jeder Seite von s um d_gap entfernt liegen. Wenn ein Startpunkt innerhalb des Containers 104 ist, wird er zu P hinzugefügt. Der Prozess wird wiederholt, bis P leer ist. Es sei bemerkt, dass die Überprüfung auf den Abstand d_stop in Kombination mit dem Test auf die Länge s_min impliziert, dass viele Versuche, Stromlinien zu bilden, sofort beendet werden, insbesondere wenn sich der Container mit Stromlinien füllt. P wird sortiert, um die Punkte in P entsprechend deren Abständen von der Begrenzung T und den Richtungshinweisen in D zu ordnen, wobei nähere Punkte zuerst und Punkte mit gleichem Abstand zufällig geordnet werden. Da die anfänglichen Punkte alle auf T oder auf einem Pfad in D liegen, ist deren Sortierungswert null und diese werden verarbeitet, bevor irgendein abgeleiteter Punkt verarbeitet wird.
-
Die Zielcontainer
104 werden mit Vektorfeldern gefüllt (Schritt
310 von
3A) wie nachstehend gezeigt für das Füllen eines einzelnen Containers
106. Die oben beschriebenen Operationen können in Softwarecode implementiert werden auf eine Weise, die in nachstehendem Pseudocode gezeigt ist.
Copyright
2016 Adobe Systems Inc.
-
6 zeigt die Operationen, die ausgeführt werden, um dabei zu helfen, welches Element 105 gewählt werden soll, um es entlang jeder Stromlinie zu platzieren. Bei 602 werden die Bereiche aller etwaigen festen Elemente 105 von dem Zielcontainer 104 subtrahiert. Bei 604 wird ein geeignetes verallgemeinertes Voronoi-Diagramm des Inneren konstruiert unter Verwendung der Methode, die beschrieben wurde von S. Osher und J. A. Sethian in: „Fronts propagating with curvature-dependentspeed: Algorithms based on hamilton-jacobi formulations“, J. Comput. Phys., 79(1):12-49, Nov. 1988. doi: 10.1016/0021-9991(88)90002-2. Wie von den Fachleuten verstanden wird, ist ein Voronoi-Diagramm eine Partitionierung einer Ebene in Bereiche basierend auf Abständen zu Punkten in einer bestimmten Untermenge der Ebene. Die Stromlinien werden bei 606 an jedem Ende dem Vektorfeld folgend erweitert, bis diese die Begrenzungen ihrer Voronoi Bereiche erreichen. Der Bereich um jede Stromlinie herum wird als ein Unterbereichs-Blob bezeichnet, wie allgemein bei 314 in 3C zu sehen, und fungiert als ein Platzierungsbereich für ein Element 105. Bei 608 wird eine LR Funktion berechnet für jeden Blob wie oben in Verbindung mit 4A beschrieben unter Verwendung der Stromlinie als das Rückgrat 109. Da die Stromlinie normaler Weise nicht geradlinig ist, werden die Abstände links und rechts entlang der Normalen zur Stromlinie berechnet. Die LR Funktion nähert die Form des Blobs an, wenn die Stromlinie geradegebogen würde.
-
Der nächste Schritt ist es, in jeden Blob ein ornamentales Element
105 zu platzieren, wie in
7A-7C gezeigt. Das Element
105, das in den Blob
702 platziert werden soll, wird ausgewählt, indem das Element gefunden wird, welches eine Summe von kleinsten quadratischen Abständen zwischen dem Außenumfang des Elements
105 und dem Innenumfang des Blobs
702 minimiert, definiert als
wobei
α
l die Linksfunktion des Elements ist
α
r die Rechtsfunktion des Elements ist
β
l die Linksfunktion des Blobs ist
β
r die Rechtsfunktion des Blobs ist.
-
Jedes Element 105 wird für das Platzieren in vier Ausrichtungen platzier: wie gezeichnet, wie gespiegelt quer zu dessen Rückgrat, wie gespiegelt entlang zu dessen Rückgrat, und wie gespiegelt quer und entlang zu dessen Rückgrat. Für die Spiegelung quer zum Rückgrat werden die Linksfunktion und die Rechtsfunktion getauscht. Für die Spiegelung entlang zum Rückgrat werden die Linksfunktion und die Rechtsfunktion parametrisiert, von 1 nach 0 zu laufen, anstatt von 0 zu 1. Es sei bemerkt, dass dieses Matchingverfahren Halbelemente automatisch entlang von Stromlinien platziert, die einer Containerbegrenzung folgen, was die Gesamtform visuell verstärkt.
-
Eine Alternative zum Formmatching kann verwendet werden unter Verwendung eines Ansatzes, der beschrieben ist von R. Gal, O. Sorkine, T. Popa, A. Sheffer und D. Cohen-Or in: „3D collage: Expressive non-realistic modeling“, in Proceedings of the 5th International Symposium on Non-photorealistic Animation and Rendering, NPAR'07, Seiten 7-14. ACM, New York, NY, USA, 2007, doi: 10.1145/1274871.1274873. Ein solcher Ansatz trachtet danach, einen Teilbereichsblob so gut wie möglich zu füllen, wobei es stark bestraft wird, wenn ein Teil eines Elements über die Begrenzung des Blobs hinaussteht. Es wurde jedoch festgestellt, dass dies die Berechnungen aufwändiger macht, ohne signifikante Vorteile zu bieten im Vergleich zu den hierin offenbarten LR Funktionen.
-
7A, 7B und 7C zeigen den Verformungsprozess, wie er das Element 105 entlang der Stromlinie biegt und so skaliert, dass es in einen Blob 702 passt. Sobald ein Element 105 gewählt wurde, wird es, wie in 7A, 7B und 7C gezeigt, entlang der Stromlinie 114 platziert unter Verwendung eines einfachen Skelettstrichalgorithmus, wie beschrieben von S. C. Hsu, I. H. H. Lee und N. E. Wiseman, in: „Skeletal strokes“, in Proceedings of the 6th Annual ACM Symposium on User Interface Software and Technology, UIST '93, Seiten 197-206. ACM, New York, NY, USA, 1993. doi: 10.1145/168642.168662. Die Breite des Elements 105 wird gleichmäßig skaliert, um es so breit wie möglich zu machen, während es weiterhin in das Innere des Blobs 702 passt, wie in 7C gezeigt. 7A zeigt das ausgewählte Element 105 und das Rückgrat 109. In Fig. 7Bwurde das Element in den Blob 702 platziert und das Element wurde so verformt, dass das Rückgrat 109 einer Stromlinie folgt, wie etwa der Stromlinie 501. Wie in 7B zu sehen, passt das Element 105 größtenteils in den Blob 702, aber ein Teil, wie etwa bei 704 zu sehen, erstreckt sich über den Umriss des Blobs 702 hinaus. In 7C wurde das Element 105 skaliert, so dass der Teil 704, der sich über den Umriss des Blobs 702 erstreckt, in den Umriss des Blobs 702 hineinpasst.
-
8A und 8B zeigen Aspekte des Stromlinienstreckens, wie oben mit Bezug auf den Schritt 606 beschrieben. Wie in 8A und 8B zu sehen, wird die Stromlinie 501 gestreckt, bis die Enden 801 und 802 sich den Begrenzungen 803 und 804 des Blobs 702 nähern und diese berühren. Dies erlaubt es, dass ein Element 105, das in den Blob 702 hinein platziert wird, länger ist, da die zugeordnete Stromlinie 501 länger ist.
-
9A und 9B zeigen einen weiteren Aspekt, der als Stromlinienschnappen bezeichnet wird. Wenn annähernd die ganze Stromlinie 501 nahe einer Begrenzung des Elements 105 ist, wird die ganze Stromlinie so angepasst (,geschnappt'), dass sie exakt auf der Begrenzung ist. Die ermöglicht eine bessere Übereinstimmung zwischen der Stromlinie 501 und der Begrenzung des Elements 105.
-
Die Container und die dekorativen Elemente können in einem Vektorgraphikeditierprogramm entworfen werden, wie etwa Adobe Illustrator, das erhältlich ist von Adobe Systems Incorporated, und können dann als Eingaben für ein C++ Programm verwendet werden, welches die endgültig platzierten Elemente in einer SVG Datei ausgibt. Die Clipper Bibliothek, die beschrieben ist von A. Johnson, „Clipper-an open source freeware library for clipping and offsetting lines and polygons!“, http://www.angusj.com/delphi/clipper.php, 2014, kann zur Berechnung von LR Funktionen und zum Prüfen von Polygonkreuzungen während der Verformung und dem Wachstum verwendet werden. Als eine nachgelagerte Verarbeitung können optional Konturen geglättet und Polygonzüge durch Bézierkurven ersetzt werden. Schließlich können in einem Editierprogramm Farben und andere Bearbeitungen angewandt werden.
-
Die hierin offenbarten Techniken können mit einer Vielfalt von Containerformern verwendet werden, und mit vielen unterschiedlichen ornamentalen Elementen von unterschiedlicher geometrischer Komplexität. 10 zeigt eine Packung eines Rhinozeros 106 mit einfachen Tränenelementen 105, welche die Vielfalt demonstrieren, die in Form und Krümmung erzielt werden kann. Für den Bären 106 in 11 werden komplexere Blattelemente 105 verwendet. Die Nachverfolgungsparameter sind angepasst, um kürzer platzierte Elemente zu erhalten. Die platzierten Elemente können weiter verarbeitet werden, um einen beunruhigten Ausdruck zu erzeugen.
-
In bestimmten Ausführungsformen können der Pipeline Erweiterungen hinzugefügt werden, um den ästhetischen Wert und die Flexibilität zu verbessern. Wie in 12 gezeigt, werden beispielsweise explizit neue Formen konstruiert, um den negativen Raum zwischen platzierten Elementen zu füllen, mittels Berechnen von versetzten Polygonen aus dem negativen Raum zwischen Elementen. Das Ergebnis ist ein ausgeprägter und ansprechender Stil.
-
Die hierin offenbarten Ausführungsformen erzeugen ornamentale Packungen, in welchen Vektorfelder verwendet werden, um einen Eindruck von visuellem Fluss zu erzeugen. Ein Maß an Gleichförmigkeit wird erzielt, indem wiederholte Kopien einer kleinen Menge von dekorativen Elementen verwendet werden, diese Gleichförmigkeit wird aber ausbalanciert mit einer Vielfältigkeit durch Verformen dieser Elemente. In anderen Ausführungsformen können mehrere kürzere Elemente auf Stromlinien entlang aufgereiht werden, anstatt dass diese Elemente die Stromlinien komplett füllen müssen.
-
13 zeigt ein verallgemeinertes Beispiel eines geeigneten Allzweckrechnersystems 1300, in welchem die beschriebenen Innovationen implementiert werden können, um die Verarbeitungsgeschwindigkeit und -effizienz zu verbessern, mit welch en das Rechnersystem 1300 ornamentale ornamental Designs 106 entwirft. Mit Bezug auf 13 beinhaltet das Rechnersystem 1300 eine oder mehrere Verarbeitungseinheiten 1302, 1304 und Speicher 1306, 1308. Die Verarbeitungseinheiten 1302, 1306 führen von einem Computer ausführbare Anweisungen aus. Eine Verarbeitungseinheit kann eine Allzweck-CPU, ein Prozessor in einer anwendungsspezifischen integrierten Schaltung (ASIC) oder ein anderer Art von Prozessor sein. Der greifbare Speicher 1306, 1308 kann ein flüchtiger Speicher sein (beispielsweise Register, Cache, RAM), ein nichtflüchtiger Speicher (beispielsweise ROM, EEPROM, Flash Speicher und so weiter), oder eine Kombination der beiden, auf den die Verarbeitungseinheit(en) zugreifen kann bzw. können. Die Hardwarekomponenten in 13 können Standardhardwarekomponenten sein, oder alternativ können einige Ausführungsformen spezialisierte Hardwarekomponenten verwenden, um die Operationseffizienz und -geschwindigkeit, mit welcher das System 100 arbeitet, weiter zu erhöhen.
-
Das Rechnersystem 1300 kann über zusätzliche Merkmale verfügen, wie beispielsweise Speicher 1310, eine oder mehrere Eingabevorrichtungen 1314, eine oder mehrere Ausgabevorrichtungen 1312 und eine oder mehrere Kommunikationsverbindungen 1316. Ein Verbindungsmechanismus (nicht dargestellt), wie etwa ein Bus, ein Controller oder Netzwerkverbindungen, welche die Komponenten des Rechnersystems 1300 miteinander verbindet. Typischer Weise stellt eine Betriebssystemsoftware (nicht dargestellt) ein Betriebssystem für andere Software bereit, welche auf dem Rechnersystem 1300 existiert, und koordiniert Aktivitäten der Komponenten des Rechnersystems 1300.
-
Der greifbare Speicher 1310 kann entfernbar oder nicht entfernbar sein, und umfasst Magnetplatten, Magnetbänder oder Cassetten, CD-ROMs, DVDs oder ein anderes Medium, das dazu verwendet werden kann, um Informationen auf dauerhafte Weise zu speichern, und auf welches das Rechnersystem 1300 zugreifen kann. Der Speicher 1310 speichert Anweisungen für die Software, welche eine oder mehrere der hierin beschriebenen Innovationen implementiert.
-
Die Eingabevorrichtung(en) 1314 kann bzw. können einen Berührungseingabevorrichtung wie etwa eine Tastatur, eine Maus, ein Stift oder rein Trackball, eine Spracheingabevorrichtung, eine Scanner Vorrichtung oder eine andere Vorrichtung sein, welche dem Rechnersystem 1300 Eingaben bereitstellt. Für Videocodierung kann bzw. können die Eingabevorrichtung(en) 1314 eine Kamera, eine Videokarte, eine TV Empfängerkarte oder eine ähnliche Vorrichtung sein, welche Videoeingaben in analoger oder digitaler Form akzeptiert, oder eine CD-ROM oder eine CD-RW, welche Videosamples in das Rechnersystem 1300 einliest. Die Ausgabevorrichtung(2n) 1312 kann bzw. können eine Anzeige, ein Drucker, ein Lautsprecher, eine CD-Schreibvorrichtung oder eine andere Vorrichtung sein, welche Ausgaben von dem Rechnersystem 1300 bereitstellt.
-
Die Kommunikationsverbindung(en) 1316 ermöglicht bzw. ermöglichen eine Kommunikation mit einer anderen Rechnerentität über ein Kommunikationsmedium. Das Kommunikationsmedium übermittelt in einem modulierten Datensignal Information wie etwa von einem Computer ausführbare Anweisungen, Audio- oder Videoeingaben oder -ausgaben, oder andere Daten. Ein moduliertes Datensignal ist ein Signal, von dem eine oder mehrere Eigenschaften auf solch eine Weise gesetzt oder geändert sind, um Information in dem Signal zu codieren. Kommunikationsmedien können beispielsweise und ohne hierauf beschränkt zu sein einen elektrischen, optischen Funk- oder anderen Träger verwenden.
-
Die Innovationen können im generellen Kontext von von einem Computer ausführbaren Anweisungen beschrieben werden, wie diejenigen, die in Programmodulen enthalten sind, welche in einem Rechnersystem auf einem reellen oder virtuellen Zielprozessor ausgeführt werden. Allgemein beinhalten Programmodule Routinen, Programme, Bibliotheken, Objekte, Klassen, Komponenten, Datenstrukturen und so weiter, welche bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen implementieren. Die Funktionalität der Programmodule kann in verschiedenen Ausführungsformen wie gewünscht kombiniert oder auf mehrere Programmodule aufgeteilt sein. Von einem Computer ausführbare Anweisungen für Programmodule können in einem lokalen oder einem verteilten Rechnersystem ausgeführt werden.
-
Die Begriffe „System“ und „Rechnervorrichtung“ werden hierin synonym verwendet. Solange sich aus dem Kontext nicht eindeutig anderes ergibt, impliziert keiner dieser Begriffe eine Beschränkung auf eine Art von Rechnersystem oder Rechnervorrichtung. Allgemein kann ein Rechnersystem oder eine Rechnervorrichtung lokal oder verteilt sein, und kann jede Kombination von Hardware für dedizierte Aufgaben und/oder Allzweckhardware umfassen, mit Software, welche die hierin beschriebene Funktionalität implementiert.
-
Auch wenn die Erfindung mit Bezug auf eine bevorzugte Ausführungsform beschrieben wurde, so ist es nicht beabsichtigt, dass der Bereich der Erfindung auf die spezielle dargelegte Form beschränkt werden soll, und stattdessen ist es beabsichtigt, dass alle solchen Alternativen, Modifikationen und Äquivalente umfasst sein sollen, die in den Geist und Bereich der Erfindung fallen, wie durch die beigefügten Ansprüche definiert.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- J. Knapton et al, 1729. Siehe zur Rolle der Variation im Design auch E. H. Gombrich, „The Sense of Order: A Study in the Psychology of Decorative Art“, Phaidon Press Limited, 1984 [0017]
- J. Comput. Phys., 79(1):12-49, Nov. 1988. doi: 10.1016/0021-9991(88)90002-2 [0029]