DE69330979T2 - Verfahren und Vorrichtung zum graphischen Zeichnen und Editieren - Google Patents

Verfahren und Vorrichtung zum graphischen Zeichnen und Editieren

Info

Publication number
DE69330979T2
DE69330979T2 DE69330979T DE69330979T DE69330979T2 DE 69330979 T2 DE69330979 T2 DE 69330979T2 DE 69330979 T DE69330979 T DE 69330979T DE 69330979 T DE69330979 T DE 69330979T DE 69330979 T2 DE69330979 T2 DE 69330979T2
Authority
DE
Germany
Prior art keywords
objects
user
list
swipe
time
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 - Lifetime
Application number
DE69330979T
Other languages
English (en)
Other versions
DE69330979D1 (de
Inventor
Frank G Halasz
Michael K Mccall
Thomas P Moran
Elin R Pedersen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xerox Corp
Original Assignee
Xerox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xerox Corp filed Critical Xerox Corp
Application granted granted Critical
Publication of DE69330979D1 publication Critical patent/DE69330979D1/de
Publication of DE69330979T2 publication Critical patent/DE69330979T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Diese Erfindung betrifft computergesteuerte graphische Zeichen- und Editiersysteme und -Verfahren.
  • Graphische Zeichen- und Editiersysteme bestehen im allgemeinen aus zwei Arten: Malprogramme und strukturierte Zeichenprogramme. Malprogramme erlauben es dem Benutzer, Linien zu malen (oder Muster zu "sprühen") und auf einer bildbasierten Darstellung auszuradieren, die üblicherweise ein zweidimensionales Pixelfeld ist. Strukturierte Zeichenprogramme erlauben es dem Benutzer, geometrisch definierte Objekte zu erzeugen, zu modifizieren und zu löschen. Eine objektbasierte Darstellung weist im Unterschied zu einer Bilddarstellung viele Vorteile zur Berechnung auf, jedoch verwendet die Benutzerschnittstelle zu einer solchen Darstellung typischerweise mehr diskrete Aktionen. Während viele Zeichnensysteme das Zeichnen und zum Beispiel das Ausradieren von Bildern mit zeichenstiftbasierten Bewegungen erlauben, wird es auf einer pixelweisen Grundlage der Pixelfeld-Bilddarstellung ausgeführt. Wo objektbasierte Darstellungen verwendet werden, wird das Ausradieren ausgeführt, indem das Objekt eingeschlossen wird, und dann eine Löschoperation hervorgerufen wird.
  • Bei graphischen Benutzerschnittstellen zu Programmen, die auf objektbasierten und anderen Darstellungen arbeiten, gibt es ein allgemeines Benutzerschnittstellen-Problem, wie der Benutzer Objekte auswählen kann, um daran zu arbeiten. Die meisten graphischen Benutzerschnittstellen stellen räumliche Techniken zum Auswählen von Objekten bereit. Der Benutzer überstreicht Anzeige, um ein Rechteck zu definieren oder zieht eine Freihandschleife. Das Rechteck oder die Schleife definiert einen räumlichen Bereich der Anzeige, das Programm berechnet, welche Objekte in dem Bereich enthalten sind, und diese werden die ausgewählten Objekte.
  • Die Inhaltsberechnung muß wissen, wieviel der Fläche oder des Ausmaßes eines Objekts geeignet in dem Bereich enthalten sein muß, um ausgewählt zu werden. In der Praxis sind Programme in der Lage, nützliche und durchführbare Schwellen für den Inhaltsbetrag einzustellen, und daher ist dies ein leicht zu handhabendes Problem. Da diese Techniken jedes Objekt im Bereich auswählen und keine Objekte außerhalb des Bereichs auswählen, nennen wir diese reine räumliche Einschließungstechniken.
  • Eine Einschließung kann durch Gruppierungen (oder andere Strukturen einer höheren Ebene über den Objekten) modifiziert werden. Wenn Teilmengen von angezeigten Objekten in Gruppen enthalten sind (wobei die Gruppierungen nicht notwendigerweise sichtbar dargestellt werden), dann kann man wünschen, zum zwecke der Auswahl die Gruppen als ganze zu behandeln. Das heißt, es werden entweder alle Objekte in einer Gruppe ausgewählt oder keine. Wenn zum Beispiel eine Gruppe fünf Objekte enthält und drei werden durch reine räumliche Einschließung ausgewählt, dann werden alle fünf ausgewählt. Dies kann als eine Modifikation einer reinen räumlichen Einschließung betrachtet werden. Wenn andererseits die Gruppe als ein Objekt betrachtet wird, dann kann es noch als eine reine räumliche Einschließung betrachtet werden, wo das Inhaltskriterium für Gruppen sich etwas vom Kriterium für Objekte unterscheidet.
  • In diesem Fall müssen die Gruppen vorspezifiziert und explizit sein. Manchmal sind die Gruppierungen implizit, und ferner können die Gruppierungen zu unterschiedlichen Zeiten und zu uncerschiedlichen Zwecken unterschiedlich sein.
  • IBM Technical Disclosure Bulletin, B. 30, Nr. 9, Februar 1938, S. 348-350, "Object-Picking Method by Hierarchical Hand- Marking" beschreibt ein Objektauswahl-Verfahren zur Bereitstellung einer Schnittstelle, um direkt und indirekt eines oder mehrere Objekte zu spezifizieren, die auf einem Anzeigebildschirm bearbeitet oder editiert werden sollen.
  • Es ist die Aufgabe der Erfindung ein verbessertes Verfahren und System zur dynamischen Auswahl einer Gruppe von Objekten bereitzustellen, die auf einem Bildschirm für anschließende Aktionen angezeigt werden.
  • Diese Aufgabe wird durch die Erfindung gelöst, wie sie in den unabhängigen Ansprüchen beansprucht wird.
  • Bevorzugte Ausführungsformen werden in den abhängigen Ansprüchen definiert.
  • Die Erfindung ist darin vorteilhaft, daß sie eine Schnittstellentechnik zwischen einem Benutzer und einem Anzeigesystem bereitstellt, die es dem Benutzer gestattet, eine Gruppe von Objekten auf einer Anzeige auszuwählen, um in einer ähnlichen Weise zu bearbeiten.
  • Die Erfindung beruht auf der Entdeckung eines allgemeinen Satzes von Techniken, um dem Benutzer einer graphischen Benutzerschnittstelle zu helfen, einfacher eine Gruppe von Objekten auszuwählen, die in ihrer Bedeutung miteinander in Beziehung stehen. Während Objekte üblicherweise zeitlich aufeinanderfolgend durch einen Benutzer erzeugt werden, werden sie typischerweise bei graphischen Benutzerschnittstellen durch räumliche Gruppierung ausgewählt. Gemäß einem Aspekt der Erfindung kann eine solche räumliche Gruppierung verfeinert werden, indem die zeitliche Gruppierung der Objekte berücksichtigt wird. Es werden Algorithmen beschrieben, die sowohl eine räumliche als auch zeitliche Gruppierung kombinieren, um die am besten geeignete Gruppierung der Objekte, d. h. Gruppierungen zu erzeugen, die am wahrscheinlichsten mit den Absichten des Benutzers übereinstimmen.
  • Die erfindungsgemäßen Objektauswahl-Techniken können mit herkömmlichen Malprogrammen und strukturierten Zeichenprogrammen eingesetzt werden, die pixelbasierte Bilder oder objektbasierte Darstellungen der angezeigten Objekte einsetzen, wobei herkömmliche räumliche Einschließungstechniken verwendet werden, um Objekte auszuwählen, wie z. B. durch Definieren eines Rechtecks oder Zeichnen einer Freihandschleife, um die ausgewählten Objekte einzuschließen, was hierin als Beispiele eines "Objektselektors" definiert wird. Was die Erfindung leistet, ist ein zeitliches Kriterium zum Auswahlprozeß hinzuzufügen, so daß die Absichten eines Benutzers leichter erreicht werden.
  • Die erfindungsgemäßen Auswahltechniken sind auch auf das verallgemeinerte Wischverfahren anwendbar, das in der als Verweis angegebenen, in Beziehung stehenden mitanhängigen Anmeldung beschrieben und beansprucht wird, in der der Benutzer mit einem Applikator, einem weiteren Beispiel eines Objektselektors, die Anzeige überstreicht, um Objekte entsprechend bestimmten räumlichen Kriterien auszuwählen, und die verallgemeinerte Wischtechnik wird unten detailliert als eine Grundlage zum Verständnis der Zeit-Raum-Einschließungsgruppierung beschrieben, die in der vorliegenden Anmeldung beansprucht wird.
  • Die vorliegende Erfindung wird anhand von Beispielen unter Bezugnahme auf die beigefügten Zeichnungen weiter beschrieben.
  • Es zeigen:
  • Fig. 1 ein Blockdiagramm, das eine Form einer computergesteuerten Bildschirmtafel darstellt, in der die Erfindung eingesetzt werden kann;
  • Fig. 2 eine Aufrißansicht einer Bildschirmanzeige mit softwaregesteuerten Auswahlknöpfen oder Piktogrammen, die längs zwei Bildschirmkanten angezeigt werden, und mit verschiedenen Objekten auf der Anzeige;
  • Fig. 3 stellt eine Form eines Wischer-Applikatorobjekas in einem Bereich von A nach B dar;
  • Fig. 4A und 48 stellt jeweils zwei Wischzüge dar, einen mit und einen ohne Umkehrungen oder Verzweigungen; und
  • Fig. 5A-5G sind Skizzen, die die Herleitung einer Form eines Zieldetektionsalgorithmus zur Implementierung der Erfindung darstellen.
  • Fig. 1 stellt schematisch eine Bildschirmtafel 10 des Typs dar, der in einem Artikel über eine interaktive Großanzeige beschrieben wird, die als das Liveboard bekannt ist, die in einem Artikel beschrieben wird, der in Proceedings of CHI, 92, the ACM Conference on Human Factors in Computing Systems, 3.-7. Mai 1992, Monterey, CA veröffentlicht werden soll, mit der die Erfindung besonders nützlich ist. Details der Bildschirmtafel werden nicht angegeben, da sie für die Erfindung nicht wesentlich sind. Es ist ausreichend zu sagen, daß das dargestellte System einen Anzeigebildschirm 11 mit einer Einrichtung 12 aufweist, um auf dem Bildschirm Objekte zu projizieren oder anzuzeigen, die durch und unter Kontrolle eines Computers 14 bestimmt werden. Im Liveboard simuliert die Projektinns einrichtung ein Fernsehprojektionssystem, das eine Flüssigkristallvorrichtung 15 verwendet, die die Objekte erzeugt, die dann auf den Bildschirm 11 projiziert und angezeigt werden. Mit dem System ist eine zeichenstiftförmige oder ähnliche Zeichenvorrichtung 20 verbunden, die vorzugsweise schnurlos ist, und mit einer Einrichtung zur Steuerung des Beginns und Endes irgendwelcher Zeichenstiftbewegungen verbunden ist. Wie zum Beispiel bei Digitalisierern oder Mäusen kann der Zeichenstift Knöpfe 21 aufweisen, die, wenn sie geklickt oder losgelassen werden, eine vorzunehmende Aktion signalisieren. Zusätzlich kann der Zeichenstift einen druckempfindlichen Spitzenschalter 22 aufweisen, der, wenn er gegen den Bildschirm gedrückt wird, durch die Bildschirmtafel als Beginn oder Ende einer Zeichenstiftaktion erkannt wird. Die Einrichtung zur Beförderung dieser Zeichenstiftsignale oder Befehle zur Bildschirmtafel können dieselben sein, wie jene, die in Digitalisertabletts eingesetzt werden. Wie später erläutert wird, wird das Wischen durch eine kontinuierliche bewegungsempfindliche Eingabevorrichtung gesteuert, so daß es für den Benutzer eine natürliche Wischbewegung ist. Mit einer "kontinuierlichen bewegungsempfindlichen Eingabevorrichtung" meinen wir irgendeine Vorrichtung, die über die Anzeigefläche bewegt werden kann (wie ein Stift) oder über eine Oberfläche bewegt werden kann, die elektronisch auf eine Schreibmarke auf der Anzeige abgebildet wird (wie ein Zeichenstift und Tablett oder eine Maus). Wie nennen hier einfach irgendeine solche Vorrichtung einen Zeichenstift.
  • Die Bildschirmtafel 10 muß in der Lage sein, die Position des Zeichenstiftes 20 auf dem Bildschirm 11 zu erkennen, insbesondere seine X-Y-Koordinaten. Dies kann erreicht werden, indem (nicht gezeigte) Digitalisierergitter hinter dem Bildschirm angebracht werden und der Zeichenstift mit einer elektromagnetischen, elektrostatischen oder anderen Einrichtung zur Zusammenwirkung mit den Digitalisierergittern ausgestattet wird, um die Zeichenstiftposition zu lokalisieren.
  • Wie in einem Berührungsbildschirm, kann alternativ der Zeichenstift mit einer Einrichtung zur Erzeugung eines Strahls 24 optischer Strahlung ausgestattet sein, die auf einem Detektormodul 25 abgebildet wird, das hinter dem Bildschirm angeordnet ist. Bei dieser Ausführungsform, die bevorzugt wird, muß der Zeichenstift 20 nicht in Kontakt mir dem Anzeigebildschirm stehen, sondern der Benutzer kann eine Eingabe in einiger Entfernung vom Bildschirm zum entfernten Zeigen und zur Gestikeingabe bereitstellen. Für weitere Details des Aufbaus und der Arbeitsweise eines solchen Systems sollte der Liveboard-Artikel konsultiert werden, auf den Bezug genommen wurde.
  • Wie erwähnt, umfaßt das System einen Computer 14 mit einem geeigneten Speicher 13 zur Berechnung oder anderweitigen Bestimmung des Ortes des Zeichenstifts, wenn dies durch den Benutzer signalisiert wird, und ist auch in der Lage, unter der Kontrolle des Benutzers Darstellungen zur erzeugen und zu speichern, die auf dem Bildschirm angezeigt werden können, in einer Weise, die ähnlich zu jener ist, die durch bekannte graphische Zeichen- und Editiersysteme verwendet wird, wie Paintbrush oder Macpaint. Jedoch sind in dem System, das das Wischverfahren verwendet, alle Darstellungen objektbasierte Darstellungen, im Unterschied zu einer bildbasierten Darstellung, d. h. einem 2D- Pixelfeld. Die Arten, dies durchzuführen, werden länglich in der veröffentlichten Literatur über objektorientiertes Gestalten beschrieben. Als ein Beispiel, das beim Verständnis helfen wird, wie die Wischbewegungen mit einem angezeigten Objekt wechselwirken können, kann ein Objektfall als eine Datenstruktur angesehen werden, zum Beispiel struct in C oder record in Pascal, mit Objekteigenschaften oder Attributen, die in Feldern der Datenstruktur aufgezeichnet sind, die Koordinaten ihrer Bildschirmposition, ihrer Farbe, die Dicke von Linien" die das Objekt definieren, dem Objektfüllmuster, der Zeit seiner Erzeugung und so weiter umfassen.
  • Als Beispiel wird unten eine typische Datenstruktur für ein Zugobjekt gezeigt. In diesem Beispiel wird eine C++-Klasse dargestellt. Das Objekt wird durch eine Datenstruktur und einen Satz von Operation an diesen Daten beschrieben:
  • Ein Zugobjekt kann durch die folgenden Daten beschrieben werden:
  • pageN die Seite des Dokuments, auf dem der Zug lokalisiert ist
  • pageX die X- und Y-Koordinate des Ausgangspunktes des Zuges
  • pageY auf der Dokumentseite
  • pageL die Ebene der Seite, auf der der Zug angeordnet ist
  • Nsegments Anzahl der im Pfad des Zuges ("Segmente" wird unten erläutert)
  • Pfad: dx&sub1;, dy&sub1; eine Liste von dx, dy Paaren, die die Länge und Richtung jedes Segments des Pfades
  • dx&sub2;, dy&sub2; beschreiben, der die Form des Zuges definiert
  • dx&sub3;, dy&sub3;
  • dx&sub4;, dy&sub4;
  • usw.
  • color eine 3-Komponenten-Farbcode
  • transparency Transparenz der Farbe
  • thickness Dicke der Zugline
  • line style Stil der Linie (z. B. gestrichelt)
  • bounding box die Koordinaten der Oberseite, Unterseite, linken und rechten Seite des minimalen Rechtecks, das den Zug einschließt (dies wird aus dem Ursprungspunkt, dem Pfad und der Dicke berechnet)
  • creation time Uhrzeit bei Erzeugung
  • last mod time Uhrzeit der letzten Modifikation
  • groups Liste der Gruppen, in denen dieser Zug enthalten ist
  • tags Liste von beliebigen Etiketten, die an diesem Zug angebracht sind
  • property list Liste von beliebigen Attributwertepaaren
  • Andere Arten von Objekte würden einige derselben Felder wie ein Zugobjekt wie auch andere Felder aufweisen, die für das Objekt einmalig sind. Wie wohlbekannt ist, kapseln objektorientierte Sprachen die Daten, die das Objekt repräsentieren, mit dem Verfahren ein, das erforderlich ist, sie anzuzeigen. Eine Anzeige wird durch das Betriebssystem erreicht, das eine Nachricht an das Objekt schickt, sich selbst auf dem Bildschirm anzuzeigen. Es sind Routinen in C++-Bibliotheken verfügbar, um diese Funktionen des Druckens oder Anzeigens eines Objekts auf dem Bildschirm, wie auch andere übliche Funktionen auszuführen.
  • Eine Auswahl von Objekten kann durch die Verwendung irgendwelcher seiner Attribute vorgenommen werden. Der Einfachheit halber werden wir als Hintergrund eine bevorzugte Anordnung beschreiben, in der die X-Y-Koordinaten des Objekts als die räumlichen Auswahlkriterien eingesetzt werden. Eine einfache Art, das vorhergehende zu erreichen, ist es, mit der Datenstruktur, die jedes angezeigte Objekt repräsentiert, eine Begrenzungsbox zu verbinden oder aus seinen Ortskoordinaten in einer bekannten Weise zu berechnen, deren X-Y-Koordinaten in der Datenstruktur des Objekts im Speicher gespeichert werden.
  • Wir werden in der folgenden Beschreibung annehmen, daß der Benutzer eines oder mehrere Objekte erzeugt hat, die auf dem Bildschirm angezeigt werden. Wie bei den Graphikzeichenprogrammen auf die Bezug genommen wurde, wird es für den Anzeigebildschirm bevorzugt, längs seiner Kanten eine Reihe von Knöpfen oder Piktogrammen anzuzeigen, die durch den Benutzer eingesetzt werden können, um Ereignisse zur Aktivierung der Software zu erzeugen, um Benutzerwünsche zu implementieren. Fig. 2 stellt ein Beispiel einer einfachen Bildschirmanzeige mit einem Satz von Knöpfen oder Piktogrammen zur Implementierung der Erfindung dar. Die Knöpfe/Piktogramme längs der linken Bildschirmkante 35 stellen Zeichenstiftfunktionen her, und jene 36 längs der unteren Bildschirmkante legen den Wischoperator fest. Im dargestellten Beispiel sind die Zeichenstiftfunktionen ZEICHNEN, WISCHEN, jeweils mit den Knöpfe 37 und 38 verbunden. Die gezeigten Knöpfe Wischoperatoren sind nur als Beispiel LÖSCHEN 40, DICKER 41, DÜNN 42, FÜLLEN 43, FARBE 44 und RÜCKGÄNGING 45. Wie wohlbekannt ist, kann der Computer, wenn der Benutzer den Zeichenstift über oder nahe einem bestimmten Knopf oder Piktogramm plaziert und einen Zeichenstiftschalter oder -Knopf aktiviert, aus dem Ort des Zeichenstifts die Funktion oder den Operator bestimmen, der durch den Benutzer ausgewählt ist.
  • Fig. 2 zeigt auf dem Bildschirm auch verschiedene Objekte 47, 48, 49, die durch Zeichnen durch den Benutzer erzeugt werden, nachdem er den Zeichnenknopf und einen (nicht gezeigten) Breiteneinstellknopf aktiviert hat. Die angezeigten Objekte können jeweils aus einem einzelnen Zeichnungszug durch den Benutzer bestehen, während ein Zeichenstiftschalter aktiviert ist.
  • Wenn alternativ Polygone, Kreise oder andere Formen erzeugt werden, kann die gesamte Form als ein einzelnes Objekt behandelt werden.
  • Die Art, in der Wischen als eine Benutzerschnittstelle arbeitet, wird durch das folgende Szenario illustriert: Der Benutzer berührt mit dem Zeichenstift einen Knopf 38 und gibt "Wischmodus" ein. Das System stellt einen Applikator als den Objektselektor bereit. Der Benutzer kann dann den Löschoperator 40 auswählen, um ihn mit dem Applikator zu verbinden, oder der Applikator startet als Vorgabe mit einem Löschoperator und ist folglich ein Radierer. Der Benutzer radiert einige Objekte durch Wischen aus, berührt dann den Farbknopf 44. Ein (nicht gezeigtes) Farbspektrum klappt auf, und der Benutzer wählt den Rotmach-Knopf mit dem Wischer. Das Wischen macht nun Objekte rot. Nachdem so an einigen Objekten verfahren worden ist, bemerkt der Benutzer, daß zu viele Objekte rot geworden sind. Der Benutzer "taucht" den Wischer in den Rückgängigknopf 45, wobei der Operator rückgängig gemacht wird. Dann werden die Objekte, die nicht rot werden sollen, durch Wischen in ihrer ursprünglichen Farben zurückgebracht. Schließlich verläßt der Benutzer den Wischmodus.
  • Formaler sind die Komponenten des Wischens wie folgt:
  • 1. Applikator. Der Applikator als ein Datenobjekt weist eine Form und Größe auf, die den Pfadbereich bestimmt. Der Pfad des Applikators, der durch den Computer gespeichert wird, besteht aus einer Kette gerader Liniensegmente, deren Enden die abgefühlten Orte des Zeichenstifts sind. Folglich besteht der Pfadbereich aus einer Kette von Pfadbereichsegmenten. Zum Beispiel erzeugt eine rechteckige Schreibmarke Pfadbereichsegmente, die hexagonal sind (was unten erläutert wird). Die Form und Größe des Applikators kann vorzugsweise durch den Benutzer definiert werden, das heißt für verschiedene Aufgaben variiert werden.
  • 2. Auswahlkriterien. Die abstrakte Funktion des Wischens ist es, Objekte auszuwählen oder zu gruppieren, an denen gearbeitet werden soll. Im Grunde werden die Objekte, deren Fläche sich mit dem Wischpfadbereich schneidet, ausgewählt, einfach als Software implementiert, indem die Koordinaten der Begrenzungsbox jedes angezeigten Objekts auf einen Schnittpunkt (Vereinigung) mit jenen des Pfadbereich des Applikators geprüft werden. Jedoch gibt es andere Auswahlkriterien, die verwendet werden können, um zu entscheiden, ob ein geschnittenes Objekt tatsächlich ausgewählt wird. Das einfachste Kriterium ist die Schnittschwelle, die den Prozentsatz der Fläche des Objekts mißt, das durch den Wischpfadbereich geschnitten wird. Das großzügigste Kriterium ist eine von Null verschiedene Schnittschwelle, d. h. selbst die leichteste Berührung eines Objekts durch den Applikator bewirkt, daß es ausgewählt wird. Eine strenge 100%-Schwelle ist üblicherweise nicht nützlich, jedoch halben hohe, niedrige und Mehrheits- (50%-) Schwellen ihren Nutzen. Man beachte, daß die Schnittschwelle unter diesen Umständen dynamisch berechnet werden sollte. Eine genauere Beschreibung, wie ausgewählte Objekte durch Berührung bestimmt werden, erscheint unten. Wenn eine Wischbewegung weitergeht, wächst der Wischpfad und kann mehr und mehr eines Objekts schneiden, bis er die Schwelle erreicht. Zum Beispiel stellt Fig. 2 mit gestrichselten Linien einen Wischpfadbereich 50 dar, der durch einen Benutzer gebildet wird. Nimmt man an, daß die Schwelle sagen wir auf 30 Prozent eingestellt war, würde das Objekt 47, das aus einem Großbuchstaben und einer getrennten Gruppe von drei Kleinbuchstaben besteht, ausgewählt werden. Der anfängliche Großbuchstaben des nächsten Objekts 47 würde ebenfalls ausgewählt. Wenn der Operator LÖSCHEN wäre, würden alle drei Elemente ausradiert. Da die Ausradierung des Buchstabens B möglicherweise nicht beabsichtigt war, ist es dies, wo das letztgenannte aufgehoben werden kann, indem der RÜCKGÄNGIG-Operator nur auf den Buchstaben B angewendet wird.
  • Es gibt andere nützliche Auswahlkriterien, die üblicherweise aufgabenspezifisch sind. Applikatoren sind üblicherweise dazu bestimmt, eine Größe und Form aufzuweisen, die proportional zu den Arten von Objekten ist, zu deren Auswahl sie bestimmt sind, und können benutzerdefiniert sein. Zum Beispiel ist ein Applikator, der dazu bestimmt ist, die Züge von handgeschriebenen Worten auszuwählen, so bemessen, daß er etwas kleiner als die Höhe der Worte ist, so daß eine Wischbewegung über die Worte einfach vorgenommen werden kann. Wenn diese Absichtgegeben ist, ist es ein nützliches Auswahlkriterium, jeden Zug abzuweisen, der zu groß ist, als daß er ein Teil eines Wortes ist. Wenn folglich ein Zug gewischt wird, der eine Box darstellt, der die Warte umgibt, wird er nicht ausgewählt. Man beachte, daß dieses Kriterium sehr viel einfacher zu berechnen ist, als dynamische Schnittschwellen.
  • Ein weiteres Beispiel ist der Fall, wo die angezeigten Objekte in einem Satz von zweidimensionalen Ebenen organisiert sind. Hier könnte es ein spezialisiertes Kriterium sein, zu filtern, welche Objekte ausgewählt werden, durch die Ebenen, auf denen sie liegen.
  • 3. Gültigkeitsbereich von Wischaktionen. Es gibt vier geschachtelte Zeitintervalle, die eingesetzt werden können, um den Gültigkeitsbereich des Wischens zu definieren: der Gültigkeitsbereich der Wischsitzung, der Gültigkeitsbereich des Operators, der Gültigkeitsbereich des Wischzuges und der Gültigkeitsbereich der Zugverzweigung. (A) Der größte Gültigkeitsbereich ist die Wischsitzung. Eine Wischsitzung besteht aus einer Reihe von Wischzügen und möglichen Änderungen des Operators. Eine Wischsitzung wird üblicherweise begrenzt, indem eine gewisse Art eins Wischmodus eingegeben und gelassen wird. (B) Die Wischsitzung ist in eine oder mehrere Operatorgültigkeitsbereiche unterteilt. Ein Operatorgültigkeitsbereich ist die Dauer, während der der Operator unverändert bleibt. Der Operatorgültigkeitsbereich besteht aus einer Reihe von Wischzügen.
  • (C) Jeder Wischzug wird durch die Zeichenstiftvorrichtung definiert, die die Anzeigefläche berührt (oder den Zeichenstiftknopf, der gedrückt wird), Gleiten längs Anzeigefläche und Wegziehen von der Oberfläche (oder Loslassen des Knopfes). (D) Verzweigungsgültigkeitsbereich: Ein Zug, der plötzliche Richtungsumkehrungen aufweist, wird durch die Umkehrungen in "Verzweigungen" unterteilt. Z. B. weist ein Zug mit zwei Umkehrungen drei Verzweigungen auf. Der Verzweigungsgültigkeitsbereich ist folglich das Auftreten einer Verzweigung. Z. B im obigen Beispiel verlaufen sie vom Beginn des Zuges zur ersten Umkehrung, von der ersten zur zweiten Umkehrung und von der zweiten Umkehrung zum Ende des Zuges.
  • 4. Gruppierung ausgewählter Objekte. Diese Intervalle können verwendet werden, um eine natürliche Gruppierung an den ausgewählten Objekten zu definieren. Der Satz der Objekte, die durch eine Verzweigung ausgewählt werden, wird als eine Verzweigungsgruppe bezeichnet; der Satz von Objekten, die durch einen Wischzug ausgewählt werden, bildet eine Wischzuggruppe; der Satz der Objekte, die durch einen Operatorgültigkeitsbereich ausgewählt werden, definiert eine Operatorgruppe; und der Satz der Objekte, die in einer Wischsitzung ausgewählt werden, bildet eine Wischsitzungsgruppe.
  • 5. Anwendungsdynamik. Die Berechnung von ausgewählten Objekten findet vorzugsweise dynamisch statt. Während der Benutzer mit der Zeichenstift-Eingabevorrichtung wischt, werden Wischzugsegmente erzeugt, und es werden Objekte ausgewählt, indem zum Beispiel Zeiger auf die Objekte in einer geeigneten Liste gespeichert werden, wenn sie die Auswahlkriterien erfüllen. Üblicherweise wird der Operator auf die Objekte angewendet, wenn sie ausgewählt werden. Wenn zum Beispiel der Operator Löschung ist, dann werden Objekte gelöscht, wenn der Benutzer wischt, wobei die Wirkung eines physikalischen Radierers simuliert wird. Jedoch kann die Anwendung des Operators verzögert werden. Ein Verzögerungsmuster ist es, die Anwendung anzuhalten, bis ein Wischzug vollendet ist, und dann den Operator auf die Wischzuggruppe anzuwenden; ein anderes Muster ist es, zu verzögern, bis die Wischsitzung beendet ist, und den Operator auf die ganze Wischsitzungsgruppe anzuwenden.
  • 6. Feedback auf das Wischen. Es kann ein hör- und/oder sichbares Feedback für den Benutzer während des Verlaufs des Wischens geben. Ein hörbares Feedback kann verwendet werden, um zu signalisieren, wenn ein Wischzug erzeugt wird, wenn Objekte ausgewählt werden oder der Operator angewendet wird. Ein sichtbares Feedback kann die Wischzüge sichtbar machen (z. B. als ein lichttransparenter Hintergrund, wie ihn ein Hervorhebungsmarkierungs-Zeichenstift erzeugt), oder die ausgewählten Objekte können auf verschiedene Arten hervorgehoben werden (z. B. durch eine unterscheidende Farbe oder einen Schatten). Die Dauer eines visuellen Feedbacks liegt üblicherweise am Ende der Wischsitzung.
  • 7. Angewendete Operatoren. Viele unterschiedliche Arten von Operatoren können auf die ausgewählten Objekte angewendet werden. Hier sind Beispiele einiger von ihnen, um eine Vorstellung der Vielseitigkeit dieser Schnittstellentechnik und dem Bereich der Möglichkeiten zu geben:
  • Löschen, Ausschneiden, Kopieren. Wie schon bemerkt, simuliert das Löschen ausgewählter Objekte das physikalische Ausradieren. Ausschneiden kann nicht nur verwendet werden, um Objekte zu löschen, sondern auch, um sie in einem "Zwischenablage-" Puffer zur späteren Verwendung zu sichern (wie zum Einsetzen irgendwo anders). Kopieren sichert ausgewählte Objekte, ohne sie zu löschen.
  • Auswählen, Gruppieren, Markieren. Wischen kann nur zur Auswahl verwendet werden. Nach einer Wischsitzung, wird die Wischsitzungsgruppe zur späteren Verwendung durch das System gesichert. Wischen kann auch dazu verwendet werden, Objekte zu höherwertigen Strukturen zu gruppieren, indem die Wischzuggruppen verwendet werden. Wenn zum Beispiel die Objekte die Züge von handgeschriebenen Zeichen sind, können Wischzüge verwendet werden, um die Handschrift zu Elementen einer Liste zu strukturieren. Der Markierungsoperator kann verwendet werden, um eine unterscheidende Markierung auf die Objekte anzuwenden, und Wischen kann zum Markieren verwendet werden. Wenn zum Beispiel die Objekte die Züge von handgeschriebenen Zeichen sind, kann Wischen verwendet werden, um Teilmengen dieser Züge zu markieren, wenn sie sagen wir wichtige Ideen oder Aktionselemente darstellen.
  • Änderung von Objekteigenschaften. Viele Operatoren ändern den Wert von Objekteigenschaften, z. B. Farbe, Position, Orientierung, Maßstab, Dicke. Dies sind problemlose Wischoperatoren. Zum Beispiel könnte in einem Fenstersystem Wischen verwendet werden, um einen Schrumpfungsoperator anzuwenden, der bewirkt, daß Fenster von voller Größe auf Piktogrammgröße gehen.
  • Relative Änderungsoperatoren. Einige Operatoren bewirken relative Änderungen an Objekten, z. B. um die Farbe ein bißchen dunkler zu machen, sie ein bißchen zu bewegen, sie ein bißchen zu drehen, sie ein bißchen dicker zu machen. Was relative Operatoren unterscheidet, ist, daß sie iterativ angewendet werden können, um ein größere und größere Änderung hervorzurufen. Eine Anwendung dieser Operatoren durch Wischen stellt das Problem, wie häufig sie anzuwenden sind. Da es eine natürliche Wischbewegung ist, vor und zurück zu wischen, kann eine Objekt mehr als einmal im selben Wischzug ausgewählt werden. Für einen absoluten Operator ist dies kein Problem, da eine iterative Anwendung redundant ist. Eine Lösung ist es, nur eine einzige Anwendung des Operators im Gültigkeitsbereich eines Wischzuges oder einem Verzweigungsgültigkeitsbereich oder einer Wischsitzung zuzulassen.
  • Rückgängig machen. Der allgemeine Rückgängigoperator kann auch auf das Wischen angewendet werden. Nimmt man zum Beispiel an, daß ein Rot-Mach-Operator an den Applikator angebracht war und der Benutzer mit ihm über mehrere Objekte wischte, jedoch der Benutzer bemerkte, daß einige Objekte rot gemacht wurden, die es nicht sollten. Um dies in Ordnung zu bringen, kann der Rückgängigoperator an den Applikator angebracht werden und die fälschlicherweise rot gemachten Objekte werden gewischt, wobei sie in ihre ursprüngliche Farbe zurückgebracht werden. Ein weiteres Beispiel: Angenommen, der Operator ist Löschen, und einige Objekte werden irrtümlich gelöscht. Es ist schwierig, mit Rückgängig zu wischen, da die Objekte verschwunden sind. Wenn jedoch der Wischpfad sichtbar gemacht worden ist, dann gibt das einen Hinweis, wo die gelöschten Objekte angeordnet waren, und das Wischen dieser Stellen mit Rückgängig bringt sie zurück.
  • Die allgemeine Benutzerschnittstellentechnik des Wischens ist folglich durch die Kombination unterschiedlicher Werte für diese Komponenten definiert. Für eine gegebenes Anwendungsprogramm kann der Anwendungsprogrammierer einen Bereich von Werten für die Komponenten definieren, um eine Wischbenutzerschnittstelle für die Anwendung zu erzeugen. Diese Wahl muß auf einer Architektur oder Steuerungsstruktur aufbauen, die die Dynamik implementiert und sie in den Rest der Benutzerschnittstelle des Anwendungsprogramms integriert.
  • Sobald ein Bereich von Komponentenwerten bereitgestellt ist, müssen sie dem Benutzer verfügbar gemacht werden, um den Applikator zu definieren. Eine einfache Standardtechnik dafür würde es sein, ein "Wischerpiktogramm" mit einer Eigenschaftsseite als Teil einer Einstellungsoperation für die Sitzung zu versehen. Der Benutzer kann die Eigenschaftsseite des Wischers öffnen und Werte für sagen wir die folgenden Komponenten einstellen:
  • Applikator
  • Auswahlkriterien
  • Operator
  • Anwendungsdynamik
  • Gruppierung
  • Feedback
  • wobei jede Komponente ein Menü der zulässigen Werte bereitstellt. Zum Beispiel könnte der Benutzer den Wischer so einstellen, daß er einen großen Applikator aufweist, der nur Kommentarobjekte auswählt und sie in eine "Kommentarliste" bewegt, wo die Objekte durch Wischzüge gruppiert werden, und die Dynamik ist, die Bewegung nur nach jedem Wischzug vorzunehmen, und es das Feedback ist, die Kommentarobjekte rot zu machen, wenn sie ausgewählt werden.
  • Diese Eigenschaftsseitentechnik ist allgemeiner als in den meisten Anwendungen benötigt. Der Benutzer sollte mindestens in der Lage sein, den Operator auszuwählen (sonst ist es kein verallgemeinertes Wischen), und sobald er ausgewählt ist, können alle anderen Komponenten durch das Programm auf geeignete Werte eingestellt werden. Folglich ist alles, was der Benutzer tun muß, den Operator auszuwählen, und es kann dafür gesorgt werden, daß dies leicht auszuführen ist. Die offensichtlichste, in Fig. 2 gezeigte Art, ist es, die Knöpfe, Piktogramme oder Menüelemente zu nutzen, die Operatoren als Teil der Benutzerschnittstelle des Anwendungsprogramms repräsentieren. Der Benutzer bewegt das Wischerpiktogramm zu, sagen wir, einen Knopf, um den durch den Knopf repräsentierten Operator an den Wischer anzubringen.
  • Um besser zu verstehen, wie die Wischaktionen des Benutzers die angezeigten Objekte beeinflussen können, wäre es hilfreich, die verschiedenen Arten von Ereignissen zu beschreiben, die die Wischalgorithmen, die in der Erfindung verwendet werden, dazu bringen, die verschiedenen Merkmale zu implementieren, die oben beschrieben werden. Diese Ereignisse werden durch physikalische Aktionen des Benutzers eingeleitet und werden, wie oben beschrieben, durch Hardware und Software detektiert. Die Ereignisse werden beschrieben, wie sie durch einen Benutzer mit einem Zeichenstift in der bevorzugten Ausführungsform bewirkt werden, oder mit einer Maus, die in der üblichen Weise mit dem System verbunden ist. Das Letztgenannte würde es dem Benutzer gestatten, die Objekte auf der Bildschirmtafel zu manipulieren, während er an einem Schreibtisch oder Tisch sitzt. Die linke Spalte gibt das Wischerereignis in Fettdruck an, und die rechte Spalte erläutert, was der Benutzer als ein Beispiel tun kann, um den Befehl zu implementieren.
  • Trete in Wischmodus ein Benutzer signalisiert, daß er in den Wischmodus eintreten möchte. Dies kann auf verschiedene Arten geschehen, wie durch Drücken eines "Wischmodus"-Knopfes.
  • Verlasse Wischmodus Benutzer signalisiert, daß er den Wischmodus verlassen und in einen anderen Modus gehen möchte, sagen wir, durch Drükken eines "Zeichnen-"Knopfes.
  • Setze Wischeroperator Benutzer berührt einen Knopf oder ein Piktogramm, das einen Operator bezeichnet, der durch den Wischer angewendet werden kann.
  • Setze Wischereigenschaft Benutzer berührt einen Knopf oder wählt aus einem Menü eine Einstellung für eine der Eigenschaften des Wischers.
  • Wischer herunter Benutzer manipuliert die Eingabevorrichtung, um zu signalisieren, daß der Wischer sich "in Kontakt" mit der Anzeige befindet. Mit einer Zeichenstiftvorrichtung kann dies durch Berührung der Anzeigefläche mit dem Zeichenstift geschehen. Mit einer Maus kann es durch Niederhalten eines Mausknopfes geschehen.
  • Wischer hoch Benutzer manipuliert die Eingabevorrichtung, um zu signalisieren, daß sich der Wischer "außerhalb des Kontakts" mit der Anzeige befindet. Mit einer Zeichenstiftvorrichtung geschieht dies durch Anheben des Zeichenstiftes von der Anzeigefläche. Mit einer Maus könnte es durch Loslassen des Mausknopfes signalisiert werden.
  • Wischerbewegung Benutzer manipuliert die Eingabevorrichtung, um zu signalisieren, daß sich der Wischer zu einem neuen Ort auf der Anzeige bewegt hat. (Das System tastet den Ort der Eingabevorrichtung in häufigen Intervallen ab und folgert jedesmal eine Bewegung, wenn sich der Ort ändert.) Mit einer Zeichenstiftvorrichtung geschieht dies durch Schieben des Zeichenstiftes auf der Anzeigefläche, während der Kontakt mit der Fläche gehalten wird. Mit einer Maus geschieht dies durch Schieben der Maus auf dem Schreibtisch, wobei der Knopf niedergehalten wird.
  • Wischpfadumkehrung Benutzer bewegt die Eingabevorrichtung in eine Richtung, die die vorhergehende Richtung umkehrt. Ein Softwarealgorithmus kann verwendet werden, um dies zu detektieren.
  • Diese Ereignisse können verwendet werden, um die Zeit in mehrere unterschiedliche Gültigkeitsbereiche zu partitionieren:
  • Wischsitzung-Gültigkeitsbereich Vom Eintritt bis zum Verlassen.
  • Wischoperation-Gültigkeitsbereich Vom Eintritt zum ersten Setz-Operator oder von einem Setz-Operator zum nächsten Setz-Operator oder von einem Setz- Operator bis zum Verlassen.
  • Wischzug-Gültigkeitsbereich Von Herunter bis zum nächsten Hoch.
  • Wischsegment-Gültigkeitsbereich Von Herunter zur ersten Bewegung oder von einer Bewegung zur nächsten Bewegung oder von einer Bewegung bis Hoch.
  • Wischverzweigungs-Gültigkeitsbereich Von Herunter zur ersten Umkehrung oder von einer Umkehrung zur nächsten Umkehrung oder von einer Umkehrung zum Hoch.
  • Diese Gültigkeitsbereiche nehmen nicht nur Intervalle ein, sondern sich erzeugen auch Wischobjekte.
  • Das primitivste Objekt ist ein Wischzugsegment. Es ist eine kurze Linie, die durch ihre beiden Endpunkte definiert wird, die durch zwei Orte des Wischers bestimmt werden. Der Wischer ist vorzugsweise kein dimensionsloser Punkt, sondern eine volle 2D-Form. Daher ist ein Segment nicht nur eine idealisierte Linie ohne Dicke, sondern vielmehr eine 2D-Form, die definiert wird, indem der Wischer längs der idealisierten Linie verschoben wird.
  • Fig. 3 gibt ein Beispiel. Wenn der Wischer in der Form eines Rechtecks vorliegt, liegt ein Wischsegment in der Form eines Hexagons vor, wie in Fig. 5B zu sehen ist. Der Wischer startet an einem idealisierten Ort A und wird dann an einem idealisierten Ort B detektiert. Dieses Bewegungsereignis definiert ein idealisiertes Segment [A,B]. Wenn er sich bei A befindet, bedeckt der Wischer jedoch tatsächlich die rechteckige Fläche [a1,a2,a3,a4]. Entsprechend bedeckt er bei B [b1,b2,b3,b4].
  • Folglich bedeckt das Wischsegment den hexagonalen Bereich [a1, a2,a3,b3,b1]. Man beachte ferner, daß die Definition des Hexagons von der Richtung der Bewegung abhängt. Wenn B unter und links von A wäre, dann würde das Segmenthexagon [a2,a3,a4,b4, b1, b2] sein. Man beachte, daß dies nur das einfachste Beispiel davon ist, was ein Segment ist. Ein Segment kann einen Wischer jeder Form und Größe aufweisen. Der Wischer kann seine Orientierung ändern, wenn er bewegt wird (um z. B. seine Orientierung in einer Linie mit dem Pfadvektor zu halten). Der Wischer könnte seine Eigenschaften ändern, wenn er bewegt wird (z. B. könnte der Wischer seine Größe ändern, oder die Operation des Wischers könnte ihre Definition als Antwort auf eine druckempfindliche Eingabevorrichtung ändern). Schließlich muß der Wischsegmentpfad nicht notwendigerweise gerade sein; er könnte eine Kurve sein (z. B. eine Bezier-Kurve, die die Bewegung einer Reihe von Bewegungen glättet).
  • Ein Wischzug ist eine Sequenz von Segmenten.
  • Eine Form eines Zuges ist einfach die Summierung (Vereinigung) der Formen aller seiner Segmente.
  • Eine Wischer-Operation ist ein Satz von Wischzügen.
  • Eine Wischsitzung ist ein Satz von Wischoperationen. Man beachte, daß ein Vorgabeoperator beim Eintreten in den Wischmodus eingestellt werden kann. Wenn folglich der Benutzer den Operator nie zurücksetzt, dann besteht die gesamte Sitzung aus nur einer Operation.
  • Eine Wischzug-Verzweigung ist komplexer, da sie spezielle Funktionen ausführen kann. Man beachte zunächst, daß ein Wischzug nicht notwendigerweise irgendwelche Verzweigungen enthalten muß. Die Vorstellung von Umkehrungen und Verzweigungen versucht die Bewegungen des Benutzers einzufangen, über (grob) denselben Bereich hin und her zu wischen. Ein Wischzug ohne Umkehrungen würde nur eine Verzweigung aufweisen. Fig. 4 stellt zwei mögliche Wischzüge dar. Der linke, in Fig. 4A gezeigte Wischzug 52 weist eine Verzweigung auf, wenn der Zug in eine Richtung von links nach rechts vorankommt. Der Rechte 53, der in. Fig. 4B gezeigt wird, in der der Benutzer deutlich vor und zurück, von links nach rechts 54 bis 57, dann von rechts nach links 55 bis 58, und schließlich wieder von links nach rechts 56 wischt, weist 3 Verzweigungen 54-57, 55-58 und 56 und 2 Umkehrungen 57, 58 auf. Wenn es Umkehrungen im Wischzug gibt, dann werden zusätzliche Verzweigungen definiert. Jede Verzweigung ist eine Teilabfolge von Segmenten. Eine Umkehrung wird leicht durch einen Umkehrungsdetektionsalgorithmus detektiert (der unter detaillierter beschrieben wird), der einfach die Koordinaten des Wischzuges verfolgt und eine Koordinatenumkehrung als eine Verzweigung interpretiert.
  • Der Zweck der Wischtechnik ist es, Zielobjekte auf der Anzeige auszuwählen (wir nennen sie Zielobjekte, um sie von Wischobjekten, wie den Wischzügen zu unterscheiden). Die Grund- "Maschine" der Wischtechnik ist es, festzustellen, welche Zielobjekte durch ein Wischsegment ausgewählt werden. Die Liste der ausgewählten Zielobjekte wird als die Segmentliste bezeichnet.
  • Die Segmentliste wird durch einen problemlosen Segmentauswahlalgorithmus berechnet. Der Algorithmus prüft jedes Zielobjekt auf der Anzeige darauf, ob sich sein Anzeigebereich mit dem Bereich des Segments überlappt (dies geschieht durch eine geometrische Berechnung der Form und Position des Zielobjekts und jener des Segments). Ob das Zielobjekt ausgewählt wird, wird durch das Auswahlkriterium bestimmt. Das einfachste Kriterium ist, daß das Zielobjekt eine von null verschiedene Überlappung mit dem Segment aufweist. Es können komplexere Auswahlkriterien eingesetzt werden, wie oben erläutert.
  • Eine Verzweigungsliste ist die Ansammlung von einen Bestandteil bildenden Segmentlisten. Eine Zugliste ist die Ansammlung von Bestandteil bildenden Verzweigungslisten. Eine Operationsliste ist die Ansammlung von Zuglisten. Und eine Sitzungsliste ist die Ansammlung von Operationslisten.
  • Diese werden dynamisch angesammelt und durch den Computer gespeichert, wenn der Benutzer physikalische Wischaktionen durchführt. Die kleinste Einheit einer Ansammlung ist die Segmentliste. Jedoch sind nur die neuen Zielobjekte in der Segmentliste von Nutzen. Jedoch kann "neu" relativ zu verschiedenen Dingen sein. Es könnte neu relativ zur Zugliste sein. Objekte in der Segmentliste die schon in der Zugliste sind, sind "alt". Wir möchten die Segmentliste reduzieren, indem die Objekte herausgenommen werden, die sich in der Zugliste befinden. Wir nennen das Ergebnis die reduzierte Segmentliste (relativ zur Zugliste). Üblicherweise wollen wir an den Objekten der reduzierten Segmentliste arbeiten. Dann wollen wir die Objekte in der reduzierten Segmentliste zur Zugliste hinzufügen.
  • Ein Beispiel eines geeigneten Wischalgorithmus zur Verwendung in der Erfindung folgt unten. Kommentare, um einige der Aktionen zu erläutern, erscheinen anschließend an die Aktion zwischen Anführungszeichen.
  • Der Algorithmus verwendet die folgenden Variablen:
  • SegList Liste der Zielobjekte
  • BranchList Liste der Zielobjekte
  • StrokeList Liste der Zielobjekte
  • OperationList Liste der Zielobjekte
  • SessionStrokeList Liste der StrokeLists
  • Operator Name des Operators, der angewendet werden soll
  • ApplyAt Name des Gültigkeitsbereichs (Segment, Stroke, Operation oder SessionByStroke) auf dem Operator angewendet werden soll
  • Feedback Name von Operator, um anzuzeigen, welche Zielobjekte ausgewählt wurden(z. B. Schatten, Farbe usw.)
  • Der Algorithmus ist ereignisgesteuert:
  • Es folgt unten ein Beispiel, wie die Umkehrung der Richtung bei einem Wischzug zu detektieren ist. Es prüft nur auf horizontale Umkehrungen, was die leichteste Art ist, die Richtung mit Armbewegungen auf einer großen, vertikalen (bildschirmtafelgroßen) Fläche umzukehren. Folglich berücksichtigt es nur die horizontalen Komponenten (die X-Komponenten) von Wischzugsegmenten. Die vier Variablen unten kennzeichnen den Zustand des Wischzuges, wie er erzeugt wird:
  • fwdx Distanz, die in X-Richtung vorwärts bewegt wird
  • revX Distanz, die in X-Richtung umgekehrt zur Vorwärtsrichtung bewegt wird
  • newX Länge und X-Richtung des neuesten Segments
  • T Schwellendistanz zur Herstellung einer Richtung (vorwärts oder rückwärts)
  • Diese Variablen verfolgen einen Sinn der Vorwärts- (fwdx) und Rückwärts - (revX) Richtung im Wischzug. Um Bewegungs-"Rauschen" auszufiltern, wird eine Schwelle (T) verwendet, um sicherzustellen, daß die Umkehrung weit genug gegangen ist, um sich als eine echte Umkehrung der Richtung zu qualifizieren. Wenn ein Wischzug (mit einem Down-Ereignis) begonnen wird, wird fwdx auf 0 initialisiert. Bei jedem Move-Ereignis wird newx auf die X-Distanz des gegenwärtigen Bewegunszugsegments gesetzt. Dann werden die folgenden Prüfungen durchgeführt, um zu detektieren, wenn eine Umkehrung stattgefunden hat (WAHR bedeutet, daß es eine Umkehrung gibt, und FALSCH bedeutet, daß es keine Umkehrung gibt):
  • Fachleute werden erkennen, daß die Erfindung nicht auf die Verwendung des spezifischen Algorithmus beschränkt ist, der oben beschrieben wird, und ohne weiteres andere Algorithmen ersonnen werden können, um die Wischaktion zu implementieren, die hierin beschrieben wird. Die Grundlagen sind einfach. Bestimme, welche Zielobjekte ausgewählt sind, durch Prüfung am Wischobjekt und den gegenwärtig aktiven Auswahlkriterien. Implementiere die Wischaktion durch Modifizieren der relevanten Datenstrukturen, die das ausgewählte Zielobjekt repräsentieren. Wenn zum Beispiel der Operator Löschen ist, entferne die Datenstruktur des Objekts aus der Objektliste; wenn der Operator Rotmachen ist, ändere das Farbattribut auf rot; wenn der Operator Schrumpfen ist, berechne die Koordinaten der Elemente der Objekte neu; und so weiter.
  • Es folgt nun eine genauere Beschreibung zum Finden einer effizienten Art, festzustellen, welche Objekte der Stift zu irgendeiner Zeit berührt. Wir denken, daß der Benutzer einen Pfad angibt, der einige Objekte berührt und andere vermeidet. Welche Objekte befinden sich auf dem Pfad? Auf der niedrigsten Stufe erscheint die Wischaktion eines Benutzers als eine Reihe von Ereignissen. Die meisten davon teilen uns einen neuen Ort mit, zu dem sich der Stift bewegt hat. Da wir nicht mehr Informationen haben, stellen wir einen Wisch-"Pfad" als die Projektion der "Applikator"-Schreibmarke längs einer Reihe von geraden Segmenten dar. Diese Segmente können ziemlich kurz sein. Da sowohl die Applikator-Schreibmarke als auch die Objekte, die sie überquert, wesentliche Breiten aufweisen können, wird es häufig passieren, daß mehrere aufeinaderfolgende Segmente in einem Pfad dasselbe Objekt berühren. Wir wollen im allgemeinen während einem gegebenen Zug eine gegebene Operation auf ein Objekt nicht mehr als einmal anwenden.
  • Auf Fig. 5 bezugnehmend, ergibt sich, einen Satz von Objekten 0, eine Schreibmarkenform 5H (Fig. 5A) und ein Paar von Punkten A und B (die ein Segment identifizieren) vorausgesetzt, welches der Objekte durch das Wischsegment berührt wird, aus einer Projektion von 5H längs AS. Um zu vereinfachen, nehmen wird nur rechteckige Schreibmarken auf, deren Kanten parallel zu den x und y-Achsen sind. Von nun an werden wir, wenn wird den Ausdruck "Rechteck" verwenden, ein solches Rechteck meinen. Und wird betrachten nur zwei Typen von Objekten, nämlich Buchstaben und Züge.
  • Das Pfadsegment, das sich aus der Projektion [des Rechtecks] SH längs AS ergibt, ist eine besondere Art von Hexagon, bei dem vier seiner Seiten parallel zu den x- und y-Achsen sind. Von nun an werden wir, wenn wird den Ausdruck "Hexagon" verwenden, ein solches Objekt meinen. Man beachte, daß ein solches Hexagon in zwei Klassen fällt. Eines kann so gesehen werden, daß es von oben/rechts nach unten/links verläuft und das andere von oben/links nach unten/rechts. Im ersten Fall nennen wir es ein NESW-Hexagon und im zweiten ein NWSE-Hexagon. (Eine perfekt horizontale oder vertikale Trajektorie erzeugt den degenerierten Fall eines anderen [in eine Dimension größeren] Rechtecks.)
  • Betrachten wird zuerst Buchstaben. Wir werden sagen, daß ein Wischsegment einen Buchstaben schneidet, wenn es die "Begrenzungsbox" des Buchstabens, das kleinste Rechteck, das den Buchstaben umfaßt, schneidet. Daher wird die Frage die, ob ein bestimmtes Hexagon ein bestimmtes Rechteck schneidet. Siehe Fig. 5C. Betrachten wir nun den Fall eines NESW-Hexagons. Ein Hexagon weist selbst eine Begrenzungsbox auf, die durch seine beiden am entferntesten liegenden Punkte definiert wird. Da das Hexagon in seiner Begrenzungsbox liegt, kann es den Buchstaben nicht schneiden, es sei denn, die beiden Begrenzungsboxen schneiden sich. Daher überprüfen wir das zuerst. Ein Schnitt von Rechtecken ist trivial. Jedoch ist ein Schnitt der jeweiligen Begrenzungsboxen nicht ausreichend, um sicherzustellen, daß das Hexagon die Begrenzungsbox des Buchstabens schneidet. Im Fall des NESW-Hexagons könnten wir auf eine von zwei Arten danebentreffen. Wie detektieren wir, wenn wir uns in einer dieser Situationen befinden? Wir befinden uns genau in dem Fall dort, wo die untere rechte Ecke der Begrenzungsbox "über" der oberen "Diagonale" des Hexagons liegt (Fig. 5D), oder die obere linke Ecke der Begrenzungsbox "unter" der unteren "Diagonale" des Hexagons liegt (Fig. 5E). Dies sind Berechnungen, die einfach genug sind. Es ist trivial, die y-Koordinate von irgendeinem Punkt auf einer Linie zu berechnen, wenn seine x-Koordinate gegeben ist. Daher fragen wir, um auf das FALSCH-Positiv zu prüfen (den "oberen" Fall), nach dem Punkt auf der Diagonale, der denselben x-Wert wie die rechte Kante der Begrenzungsbox aufweist. Wenn der untere Teil der Box kleiner als dieser y- Wert ist, dann haben wird ein FALSCH-Positiv. Wir nehmen eine entsprechende Prüfung auf ein "unten" FALSCH-Positiv vor. Daher sieht unser Buchstaben-Segment-Schnittentscheidungsprozedur aus wie:
  • Nun wollen wir betrachten, wie ausgesagt werden kann, ob ein Wischsegmenthexagon einen beliebigen "Zug" schneidet. Ein Zug besteht aus einer gewissen Anzahl von durchgehenden Liniensegmenten, die alle dieselbe Breite aufweisen. Klarerweise wird ein Zug ein Hexagon genau in dem Fall schneiden, in dem es eines seiner Segmente tut. Daher wird es ausreichend sein, nur die Segmente zu durchlaufen, wobei danach gefragt wird, ob es das Hexagon schneidet. Es gibt ein leicht zu übersehendes Detail. Wir müssen vorsichtig sein, nicht nur die Breite des Hexagons zu berücksichtigen, sondern auch die (möglicherweise große) Breite des Zuges. Da wir am Anfang gesagt haben, daß wir möchten, daß der Zug ausradiert wird, sobald ihn der Benutzer mit dem Radierer "berührt", wird es nicht ausreichend sein, zu warten, bis die Schreibmarke die "Mitte" des Zuges trifft. Jedoch stellt dies eine ziemlich schwierige Berechnung dar. Wir wählen, ihrer Lösung mit einem sehr stark reduzierten Berechnungspreis sehr nahe zu kommen. Anstatt zu entscheiden, ob eine fette Linie ein fettes Hexagon schneidet, wählen wir, zu entscheiden, ob eine sehr dünne Linie ein besonders fettes Hexagon schneidet. Das heißt, wir dehnen das Hexagon um die Breite der Linie aus. In allen, außer sehr pathologischen Fällen wird dies dasselbe Ergebnis liefern. Daher sieht unsere hochwertige Entscheidungsprozedur für das Zug-Hexagon-Schnittproblem aus wie:
  • Es bleibt nur einen Algorithmus für intersectSegAndHex( ) anzugeben, d. h. zu erläutern, wie entschieden werden soll, ob ein. Segment ein Hexagon schneidet. Es gibt zweifellos viele Herangehensweisen an dieses Problem. Wir präsentieren hier ein Beispiel, das wir implementierten. Das beliebige Hexagon kann so betrachtet werden, daß es die Ebene in neun Bereiche teilt (wie ein großes Tic-Tac-Toe-Spiel, dessen Mittenguadrat die Begrenzungsbox des Hexagons ist). Siehe Fig. 5F. Nennen wir diese neun Bereiche "Nonanten" (in Analogie zu "Quadranten"). Nun können wir für jedes Zugsegment entscheiden, in welchem dieser Nonanten seine Endpunkte liegen. (Nehmen wir willkürlich an, daß Linienzieher immer innerhalb liegen, d. h. daß eine Vieldeutigkeit immer zugunsten des Nonanten entschieden wird, der der Mitte am nächsten ist.) Zur Vereinfachung der Bezugnahme, markieren wir die Nonanten und die Scheitelpunkte des Hexagons, wie in Fig. 5G gezeigt. Die beiden Nonanten vorausgesetzt, zwischen denen ein Segment verläuft, kann die Schnittfrage schon entschieden werden. Zum Beispiel muß ein Segment, das von b1 nach b3 verläuft, das Hexagon schneiden, und eines, das von a1 nach c1 verläuft, kann es nicht.
  • Jedoch gibt es viele (23, um genau zu sein) kompliziertere Fälle. Zum Beispiel wird sich die Frage des Schnitts mit einem Segment zwischen b1 und c2 derselben Art von "oben/unten"-Frage zuwenden, auf die wir im Buchstabenfall gestoßen sind, nämlich ob der Punkt A unter dem Segment liegt. Numerieren wir die interessierenden Nonantenpaare. Gruppiert nach Gleichheit der Entscheidungsprozedur und mehr oder weniger in der Reihenfolge zunehmender Komplexität geordnet, sind sie
  • Gruppe 1: (a1,b3), (a2,b3), (a2,c3)
  • Gruppe 2: (a1,c2), (c3,b1), (c2,b1)
  • Gruppe 3: (a1,c3)
  • Gruppe 4: (a2,c1), (a2,b1), (a3,b1)
  • Gruppe 5: (a3,c2), (b3,c2), (b3,c1)
  • Gruppe 6: (a3,c1)
  • UngruppeX: (b2, alles)
  • Nehmen wir sie in eine Reihenfolge. Unsere Prozedur für Gruppe 1 wird WAHR genau in dem Fall zurückgeben, daß Punkt D über dem Segment liegt. Jene für Gruppe 2 wird WAHR zurückgeben, dann und nur dann, wenn Punkt A unter dem Segment liegt. Unsere Prozedur für Gruppe 3 wird WAHR genau im Fall zurückgeben, daß scwohl Punkt D über dem Segment liegt als auch Punkt A unter ihm liegt. Jene für Gruppe 4 wird WAHR zurückgeben, wenn entweder Punkt B oder Punkt C über dem Segment liegt. Jene für Gruppe 5 wird WAHR zurückgeben, wenn entweder Punkt E oder Punkt F unter dem Segment liegt. Ein Segment in Gruppe 6 wird das Hexagon schneiden, wenn mindestens einer der Punkte B und C über ihm liegt und mindestens einer der Punkte E und F unter ihm liegt.
  • Und dies bringt uns zu den verbleibenden neun Fällen, die wir UngruppeX genannt haben. Nehmen wir zunächst an, daß nur einer der Endpunkte in b2 liegt. Wenn jener Punkt innerhalb des Hexagons liegt, dann schneidet das Segment klarerweise das Hexagon. Andernfalls werden die Entscheidungskriterien davon abhängen, ob der b2-residente Endpunkt "über" oder "unter" dem Hexagon liegt. Wir werden nur den "Oben-"Fall beschreiben, da der "Unten-"Fall völlig symmetrisch ist. Es gibt acht mögliche Orte des anderen Endpunktes (einen für jeden der Nonanten neben b2) Brechen wir sie wieder in Gruppen auf.
  • Gruppe Xa1: a1
  • Gruppe Xa2: b3, c3, c2
  • Gruppe Xa3: a2, a3
  • Gruppe Xa4: b1, c1
  • Gruppe Xa1 muß einfach FALSCH zurückgegeben. Gruppe Xa2 kann einfach WAHR zurückgegeben. Gruppe Xa3 sollte dann und nur dann WAHR zurückgegeben, wenn Punkt C über dem Segment liegt. Und Gruppe Xa4 solle WAHR genau in dem Fall zurückgegeben, wenn Punkt B über dem Segment liegt.
  • Schließlich schneidet ein Segment, dessen beide Endpunkte in b2 liegen, das Hexagon dann und nur dann, wenn entweder mindestens ein Endpunkt innerhalb des Hexagons liegt oder sowohl ein Endpunkt über ihm liegt und der andere unter ihm liegt.
  • Hier ist dann eine nur leicht abstrahierte Widergabe der Segment-Hexagon-Schnittentscheidungsprozedur:
  • Wir haben die Algorithmen und Entscheidungsprozeduren dargestellt und umrissen, die nur mit NESW-Hexagonen umgehen können. Jene zum Umgang mit NWSE-Hexagonen sind vollständig symmetrisch. Jene um Umgang mit den Rechtecken, die sich aus vertikalen oder horizontalen Wischtrajektorien ergeben, sind im allgemeinen ähnlich, mit bestimmten Vereinfachungen und Spezialisierungen, um mit vertikalen Liniensegmenten umzugehen (wo die Division durch Null eine Gefahr ist.)
  • Erfindungsgemäß kann das Konzept von Auswahlkriterien von Zielobjekten so ausgedehnt werden, daß es einen Zeitaspekt aufweist.
  • Die Auswahlkriterien dieses Aspektes der Erfindung richtet sich an die übliche Situation, wo die Objekte durch den Benutzer in einem zeitlichen Ablauf erzeugt werden. In einem Zeichenprogramm erzeugt der Benutzer Objekte und muß dann anschließend die Objekte auswählen, um sie zu editieren. Ein spezifischeres Beispiel ist ein Zeichenprogramm, das es dem Benützer gestattet, Züge auf die Anzeige mit einer zeichenstiftähnlichen Eingabevorrichtung zu zeichnen. Züge sind die Objekte, und sie werden in einem Ablauf erzeugt. Ferner ist es eine empirische Tatsache, daß es eine räumliche Ordnung in der Weise gibt, in der Leute zeichnen (d. h. sie erzeugen typischerweise keine Züge an beliebigen Orten auf der Anzeige). Dies legt nahe, daß die zeitliche Abfolge ein Anhaltspunkt für eine implizite Gruppierung der Objekte ist, die eine kohärente Auswahl schaffen könnte, die die Absichten des Benutzers einfangen wird.
  • Betrachten wir ein Beispiel. Der Benutzer erzeugt fünf Objekte in der Reihenfolge: A, B, C, D, E. Diese befinden sich in einer räumlichen Ansammlung, mit dem Objekt C an der Kante der räumlichen Ansammlung. Später beabsichtigt der Benutzer, fünf Objekte auszuwählen, schneidet jedoch beim Ausführen einer Überstreichungsaktion über die fünf das Objekt C nicht. Durch eine reine räumliche Einschließung werden nur vier Objekte ausgewählt. Jedoch kann das Programm die zeitliche Herstellungsabfolge als Heuristik verwenden, um zu entscheiden, auch das Objekt C einzuschließen und folglich alle fünf Objekte auszuwählen.
  • Einen Satz von Objekten in einer zeitlichen Abfolge (oder mit Echtzeit-Stempeln) vorausgesetzt, kann ein zeitliches Intervall berechnet werden, das all diese Objekte einschließt. Wenn alle innerhalb des Zeitintervalls erzeugten Objekte gefunden werden können und dann in den Satz eingeschlossen werden, dann wird dies eine reine Zeiteinschließung genannt.
  • Jedoch ist eine reine Zeiteinschließung an sich kein zuverlässiger Anhaltspunkt für Gruppierungen, die für den Benutzer sinnvoll sind. Leute weichen häufig auf ein "Nebengleis" aus. Zum Beispiel könnte ein Benutzer A und B erzeugen, dann etwas in einem anderen Teil der Zeichnung bemerken, das korrigiert werden soll, und C erzeugen, dann dahin zurückkehren, wo A und B sind, und damit fortfahren, D und E zu erzeugen. In diesem Fall soll C natürlich nicht mit A, B, D und E gruppiert werden. Der Anhaltspunkt dafür ist, daß C räumlich von den anderen Objekten getrennt ist. Folglich muß gemäß diesem Aspekt der Erfindung eine kombinierte Zeit-Raum-Einschließung berechnet werden, um zuverlässige Gruppierungen zu erzeugen, die mit der Absicht des Benutzers übereinstimmen.
  • Folglich ist das Kombinieren von Raum- und Zeitkriterien in einer Vielfalt von Umständen nützlich. Unten werden fünf Fälle aufgelistet, die Beispiele von erfindungsgemäßen Algorithmen für unterschiedliche Situationen zeigen. Diese Algorithmen verwenden räumliche und zeitliche "Nähe"-Prüfungen, für die nach den fünf Fällen Algorithmen gegeben werden.
  • Es werden die folgende Bezeichnung und Definitionen verwendet. Das computerbasierte System besteht aus einer Sammlung von graphischen Objekten. Jedes Objekt weist einen Ort auf der Anzeige auf. S gibt einen räumlichen Bereich auf einer Anzeige an. Der Bereich kann durch einen Benutzer auf viele unterschiedliche Arten definiert werden (z. B. Zeichnen einer Schleife oder Lassos, Ausstreichen eines Rechtecks, ein Wischzug oder sogar nur das Berühren eines Punktes). C(S) gibt die räumliche Einschließung von S an, d. h. den Satz von Objekten auf der Anzeige, die durch S gemäß einem gewissen Auswahlkriterium ausgewählt werden (z. B. daß die Objekte alle innerhalb von S angeordnet sind).
  • Jedes graphische Objekt weist eine Zeit auf, die mit ihm verbunden ist. Die Zeit kann die Erzeugungszeit, die Zeit der letzten Modifikation, die Zeit der letzten Bezugnahme, usw. sein. Solche Zeiten werden üblicherweise auf einer Ereignisliste gehalten. Jedoch für unsere Zwecke hier werden wir einfach sagen, daß die passende Zeit mit jedem Objekt als eine Eigenschaft des Objekts verbunden ist. Analog zu S, gibt T einen zeitlichen Bereich (d. h. ein Zeitintervall) an. C(T) gibt die zeitliche Einschließung von T an, d. h. den Satz Objekte, deren zugehörige Elemente in T liegen.
  • Fall 1: Zeitinterpolation einer räumlichen Auswahl
  • Dieser Algorithmus ist in einer Situation nützlich, wo z. B. eine Wischauswahl vorgenommen wird, wobei jedoch einige beabsichtigte Objekte durch den Wischzug verfehlt werden.
  • 1. S ist durch eine gewisse Benutzeraktion gegeben.
  • 2. Berechne C(S). Setze Auswahl auf C(S).
  • 3. Berechne das kleinste Zeitintervall T, das die Auswahl enthält.
  • 4. Berechne C(T).
  • 5. Für jedes Objekt in C(T), das nicht in der Auswahl ist, jedoch (gemäß dem räumlichen Nähetest) räumlich nahe der Auswahl liegt, füge es der Auswahl hinzu.
  • 6. Gebe Auswahl zurück.
  • Fall 2: Zeitextrapolation einer räumlichen Auswahl
  • Dieser Algorithmus ist in derselben Situation wie Fall 1 nützlich. Er kann verwendet werden, genau nachdem der Fall 1 verwendet ist.
  • 1. 5 ist durch eine gewisse Benutzeraktion gegeben.
  • 2. Berechne C(S). Setze Auswahl auf C(S).
  • 3. Finde die früheste Zeit Tmin der Zeiten, die mit den Objekten in der Auswahl verbunden sind.
  • 4. Finde das Objekt 0, dessen zugehörige Zeit genau von Tmin liegt.
  • 5. Wenn 0 (gemäß dem zeitlichen Nähetest) zeitlich nahe der Auswahl ist und (gemäß dem räumlichen Nähetest) räumlich nahe der Auswahl liegt, dann füge 0 zur Auswahl hinzu und gehe zu Schritt 3 zurück.
  • 6. Finde die späteste Zeit Tmax der Zeiten, die mit den Objekten in der Auswahl verbunden sind.
  • 7. Finde das Objekt O, dessen zugehörige Zeit genau nach Tmax liegt.
  • 8. Wenn O (gemäß dem zeitlichen Nähetest) zeitlich nahe der Auswahl liegt und (gemäß dem räumlichen Nähetest) räumlich nahe der Auswahl liegt, dann füge O zur Auswahl hinzu und gehe zu Schritt 6 zurück.
  • 9. Gebe Auswahl zurück.
  • Fall 3: Zeit-Anhaltspunkte für einen teilweisen räumlichen Einschluß
  • Dieser Algorithmus ist in der Situation nützlich, wo eine Schleifenauswahl vorgenommen wird und einige Objekte nur teilweise in der Schleife ausgewählt werden (d. h. sie teilweise in und teilweise außerhalb der Schleife liegen). Der Algorithmus entscheidet, ob die teilweise eingeschlossenen Objekte eingeschlossen sind oder nicht.
  • 1. S ist durch eine gewisse Benutzeraktion gegeben.
  • 2. Berechne C(S). Setze Auswahl auf C(S).
  • 3. Berechne P(S), den Satz von Objekten, die teilweise durch S ausgewählt sind (z. B. jene Objekte, die nur teilweise in S eingeschlossen sind).
  • 4. Für jedes Objekt in P(S), das (gemäß dem zeitlichen Nähetest) zeitlich nahe der Auswahl liegt, füge es der Auswahl hinzu.
  • 5. Gebe Auswahl zurück.
  • Fall 4: Räumliche Prüfung einer Erweiterung der Zeitauswahl
  • Dieser Algorithmus ist nützlich bei der Ausführung von Sicherungsoperationen, d. h. Operationen, die vorherige Operationen in einer umgekehrten Zeitreihenfolge rückgängig machen (z. B. radiert "Rückwärtszug" Züge in der umgekehrten Reihenfolge ihrer Erzeugung aus). Dieser Algorithmus stellt ein Anhaltekriterium bereit, um zu detektieren, wenn es wahrscheinlich unpassend ist, die Sicherung fortzusetzen.
  • 1. Es ist ein Objekt gegeben (üblicherweise das jüngste erzeugte oder bearbeitete Objekt). Betrachte es als einen einzelnen Satz C(T), im Zeitintervall T. Setze Auswahl auf C(T).
  • 2. Finde die früheste Zeit Tmin der Zeiten, die mit den Objekten in der Auswahl verbunden sind.
  • 3. Finde das Objekt 0, dessen zugehörige Zeit genau vor Tmin liegt.
  • 4. Wenn O (gemäß dem zeitlichen Nähetest) räumlich nahe der Auswahl liegt, dann füge 0 zur Auswahl hinzu und gehe zu Schritt 2 zurück.
  • 5. Sonst halte die Erweiterung der Auswahl an.
  • In den vorhergehenden Fällen war es der Prozeß aus einer räumlichen Auswahl eine Sammlung von Objekte zu bilden, um die Sammlung unter Verwendung der Raum-Zeit-Kriterien zu modifizieren. Fall 4 ist ein Beispiel eines alternativen Prozesses, der beinhaltet, mit einer zeitlich bestimmten Sammlung zu beginnen und sie dann gemäß den Raum-Zeit-Kriterien zu modifizieren. Ein Beispiel der Alternative ist es, daß der Benutzer die zeitlich bestimmte Sammlung durch eine Nachfrage nach den jüngst erzeugten Objekten spezifiziert.
  • Fall 5: Entwirrung der räumlichen Auswahl unter Verwendung der Zeit
  • Die Algorithmus ist in der Situation nützlich, wo zwei Gruppen von Objekten räumlich verwickelt sind, wo jedoch die beiden Gruppen in der Zeit angesammelt sind (z. B. wird ein Ausdruck geschrieben, wobei eine Gruppe zeitlich eng angesammelter Züge erzeugt wird, dann wird später ein Kommentar über diesen Ausdruck sehr nahe dem ursprünglichen Ausdruck geschrieben).
  • Wenn der Benutzer versucht, den Kommentar räumlich auszuwählen, wird es schwierig sein, keinen Teil des ursprünglichen Ausdrucks einzuschließen, da sie räumlich verwickelt sind.
  • 1. S ist durch eine gewisse Benutzeraktion gegeben.
  • 2. Berechne C(S). Setze Auswahl auf C(S).
  • 3. Sortiere die Objekte in der Auswahl nach ihren zugehörigen Zeiten.
  • 4. Berechne die Zeitdifferenzen zwischen benachbarten Objekten in der sortierten Auswahl.
  • 5. Finde die größte Zeitdifferenz Dmax zwischen benachbarten Objekten in der Auswahl.
  • 6. Teile die Auswahl in zwei Teilmengen sel&sub1; und sel&sub2; an der Stelle, wo Dmax in der sortierten Auswahl auftrat. 7. Fragen den Benutzer, ob der Benutzer die Auswahl sel&sub1; oder sel&sub2; auswählen möchte.
  • 8. Wenn die Antwort sel&sub1; oder sel&sub2; ist, dann setze die Auswahl auf die Antwort (sel&sub1; oder sel&sub2;) und gehe zu Schritt S zurück.
  • 9. Sonst halte die Entwirrung der Auswahl an.
  • Räumlicher Nähetest:
  • Dieser Test stellt fest, ob es WAHR ist, daß ein gegebenes Objekt O räumlich "nahe" einem gegebenen Satz von Objekten, einer Auswahl liegt. Es gibt eine Standardschwellendistanz Dthresh, innerhalb derer 0 immer als "nahe" zur Auswahl angesehen wird. Andernfalls wird die Nähe relativ zur räumlichen Dichte der Objekte in der Auswahl berechnet:
  • Zeitlicher Nähetest:
  • Dieser Test stellt fest, ob es WAHR ist, daß ein gegebenes Objekt O zeitlich "nahe" einem gegebenen Satz von Objekte, einer Auswahl liegt. Es gibt eine Standardschwellenzeitdifferenz Dthresh, innerhalb derer O immer als zeitlich "nahe" zur Auswahl angesehen wird. Andernfalls wird die Nähe relativ zur zeitlichen Dichte der Objekte in der Auswahl berechnet:
  • Es wird offensichtlich sein, daß die vorhergehenden Algorithmen, die sowohl räumliche als auch zeitliche Gruppierungen kombinieren, wahrscheinlich in vielen Fällen die passendste Gruppierung von Objekten erzeugen, d. h. Gruppierungen von Objekten, die erfolgreich miteinander in Beziehung gesetzt werden und daher am wahrscheinlichsten mit den Absichten des Benutzers übereinstimmen. Sobald die Zielobjekte so ausgewählt worden sind, was leicht hergestellt werden kann, indem ein Wert in einem ausgewählten Feld ihrer Datenstruktur gespeichert wird, oder ein Zeiger auf die Zielobjekte in einer Liste gespeichert wird, kann dann an den so ausgewählten Zielobjekten auf dieselben Weise gearbeitet werden, wie oben beschrieben.
  • Fig. 2 veranschaulicht einige der Vorteile der Verwendung einer Zeit-Raum-Einschließung, um die ausgewählten Zielobjekte zu bestimmen. Wenn zum Beispiel "ipe" innerhalb einer kurzen Zeit der Erzeugung von "w" erzeugt worden wäre, würden angenommen werden, daß sie beide Teil desselben Objekts 47 wären, obwohl sie physikalisch getrennt sind; im Gegensatz dazu würde, unter der Voraussetzung, "B" wäre zeitlich später erzeugt worden, es nicht ausgewählt werden, obwohl es der Wischzug 50 schneidet. Dieselbe Herangehensweise würde bewirken, daß "OK" als ein einzelnes Objekt behandelt würde, obwohl es aus drei getrennten Zugsegmenten besteht.
  • Die Raum-Zeit-Kriterien werden üblicherweise in das Benutzerschnittstellen-Programm eingebaut, so daß sie automatisch angewendet werden. Jedoch kann dem Benutzer die Kontrolle der Raum-Zeit-Mechanismen gegeben werden, zum Beispiel durch zwei Knöpfe zur Einstellung von Parametern der Raum-Zeit-Mechanismen (die in Fig. 2 nicht gezeigt werden). Wenn folglich durch den Benutzer auf den Wischknopf 38 geklickt wird, gefolgt durch Klicken auf einen Gruppenraumknopf 64, würde ein Menü aufklappen, das es dem Benutzer gestatten würde, die Parameter auszuwählen, die für eine reine räumliche Einschließung erwünscht sind, wie Wischernähe, Ausmaß der Abdeckung, usw. Wenn der Benutzer auf einen Gruppezeitknopf 44 klickt 44a, dann würde ein Menü aufklappen, das es dem Benutzer gestattet auszuwählen, welche Zeitkriterien mit den ausgewählten Raumkriterien kombiniert werden sollten. In seiner einfachsten Anwendung könnte der Benutzer einen der oben aufgelisteten fünf Algorithmen auswählen, um zeitliche Nähetests zur Objektauswahl herzustellen. Andere Arten des Kombinierens eines zeitlichen Auswahlaspekts mit jenem eines räumlichen Auswahlaspekts werden ebenfalls als Teil unserer Erfindung betrachtet.
  • Es ist folglich eine neuartige graphische Benutzerschnittstelle zwischen einem Benutzer und einer computergesteuerten Anzeige beschrieben worden, als eine Art einer natürlichen Gruppierung angezeigter Objekte zur Auswahl, um sie dann oder zu einer späteren Zeit vereint zu behandeln. Die hierin beschriebene Schnittstellentechnik ist bei Bildschirmtafeln des Typs besonders nützlich, der für Präsentationen oder wegen seiner Fähigkeit verwendet wird, Handskizzierungen von Diagrammen und dergleichen zuzulassen, um Ideen mit Anderen zu teilen.
  • Während die Erfindung in Verbindung mit bevorzugten Ausführungsformen beschrieben und veranschaulicht worden ist, können viele Variationen und Modifikationen, wie sie Fachleuten offensichtlich sein werden, hierin vorgenommen werden, ohne die Erfindung zu verlassen. Die Erfindung, wie sie in den beigefügten Ansprüchen bekanntgemacht wird, ist folglich nicht auf die präzisen Details der oben bekanntgemachten Konstruktion beschränkt, da beabsichtigt wird, daß solche Variationen und Modifikationen im Gültigkeitsbereich der beigefügten Ansprüche eingeschlossen sind.

Claims (15)

1. Verfahren zum dynamischen Auswählen von Objekten (47, 48, 49), die auf einer Anzeigevorrichtung (11) angezeigt werden, durch Manipulieren einer Eingabevorrichtung (20), deren Koordinaten relativ zu jenen der angezeigten Objekte bestimmt werden können, Herstellen eines Objektselektors, der mit der Position der Eingabevorrichtung verbunden ist, wenn er durch einen Benutzer aktiviert wird, und Ausführen einer gemeinsamen Aktion an jedem ausgewählten Objekt, wobei das Verfahren durch die Schritte gekennzeichnet ist:
Bestimmen und Speichern einer Objektliste der ausgewählten angezeigten Objekte, die durch den Objektselektor geschnitten werden, und
Modifizieren der Objektliste, indem der Liste angezeigte Objekte hinzugefügt werden, die nicht geschnitten werden, aber zeitlich oder räumlich mindestens einem Objekt nahe sind, das in der Objektliste enthalten ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Objektselektor einen Überstreichungspfad umfaßt, der hergestellt wird, indem ein Applikator über die Anzeigevorrichtung (11) geführt wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Objektselektor eine Schleife umfaßt, die durch den Benutzer auf der Anzeigevorrichtung (11) mit der Hand gezogen wird.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Objektselektor ein Rechteck (50) umfaßt, das durch den Benutzer auf der Anzeige geformt wird.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Objektselektor einen Punkt umfaßt.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die zeitliche Nähe auf der Grundlage der Erzeugungszeit der Objekte bestimmt wird.
7. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die zeitliche Nähe auf der Grundlage der Zeit der letzten Modifikation der Objekte bestimmt wird.
8. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die zeitliche Nähe auf der Grundlage der Zeit bestimmt wird, wann auf die angezeigten Objekte zuletzt Bezug genommen wurde.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß nur jene angezeigten Objekte zu der Liste hinzugefügt werden, die sowohl zeitlich nahe als auch räumlich nahe liegen, wobei der zeitliche Nähetest vor dem räumlichen Nähetest durchgeführt wird.
10. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß nur jene angezeigten Objekte zu der Liste hinzugefügt werden, die sowohl zeitlich nahe als auch räumlich nahe liegen, wobei der räumliche Nähetest vor dem zeitlichen Nähetest durchgeführt wird.
11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der zeitliche Nähetest für jene Objekte bestimmt wird, die nur teilweise durch den Objektselektor ausgewählt werden.
12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß zwei Gruppen von angezeigten Objekten räumlich verwickelt jedoch zeitlich angesammelt sind, wobei das Verfahren ferner die Schritte umfaßt:
Bestimmen für jedes ausgewählte Objekt seiner zugehörigen Zeit und Teilgruppieren jener Objekte, die in ihren zugehörigen Zeiten eng in Beziehung stehen,
Auffordern des Benutzers, zu Bestimmen, ob der Benutzer entweder eine Teilgruppe oder beide Teilgruppen auswählen möchte, und
Hinzufügen der Teilgruppe oder Teilgruppen zu der Gruppierung, die durch den Benutzer bestimmt werden.
13. Verfahren nach einem der Ansprüche 1 bis 12, gekennzeichnet durch den weiteren Schritt der Gruppierung der ausgewählten Objekte.
14. Graphisches Zeichen- und Editiersystem, das umfaßt:
eine Anzeigevorrichtung (11) zum Anzeigen von Graphik und Text;
eine Eingabevorrichtung (20); und
eine computergesteuerte Einrichtung, die mit der Anzeigevorrichtung (11) und der Eingabevorrichtung (20) gekoppelt ist, zum dynamischen Auswählen von Objekten (47, 48, 49) und zum Ausführen einer gemeinsamen Aktion an jedem ausgewählten Objekt, wobei die Einrichtung umfaßt:
eine Einrichtung zum Herstellen eines Objektselektors, der mit der Position der Eingabevorrichtung verbunden ist, wenn er durch den Benutzer aktiviert wird;
wobei das System und die computergesteuerte Einrichtung ferner gekennzeichnet ist durch:
eine Einrichtung zum Bestimmen und Speichern einer Objektliste der ausgewählten angezeigten Objekte, die durch den Objektselektor geschnitten werden; und
eine Einrichtung zum Modifizieren der Objektliste, indem der Liste angezeigte Objekte hinzugefügt werden, die nicht geschnitten werden, aber zeitlich oder räumlich mindestens einem Objekt nahe sind, das in der Objektliste enthalten ist.
15. System nach Anspruch 14, das zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 13 eingerichtet ist.
DE69330979T 1992-04-15 1993-04-05 Verfahren und Vorrichtung zum graphischen Zeichnen und Editieren Expired - Lifetime DE69330979T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/869,559 US5404439A (en) 1992-04-15 1992-04-15 Time-space object containment for graphical user interface

Publications (2)

Publication Number Publication Date
DE69330979D1 DE69330979D1 (de) 2001-11-29
DE69330979T2 true DE69330979T2 (de) 2002-04-04

Family

ID=25353794

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69330979T Expired - Lifetime DE69330979T2 (de) 1992-04-15 1993-04-05 Verfahren und Vorrichtung zum graphischen Zeichnen und Editieren

Country Status (4)

Country Link
US (1) US5404439A (de)
EP (1) EP0566294B1 (de)
JP (1) JP3501821B2 (de)
DE (1) DE69330979T2 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108288A (ja) * 1991-10-17 1993-04-30 Fuji Xerox Co Ltd 情報分類支援装置
DE69333096T2 (de) * 1992-04-15 2004-02-12 Xerox Corp. Vorrichtungen und Verfahren zum graphischen Zeichnen und Ausgabe
US5568604A (en) * 1992-12-31 1996-10-22 U S West Technologies, Inc. Method and system for generating a working window in a computer system
US5754808A (en) * 1993-09-29 1998-05-19 Hitachi Software Engineering Co., Ltd Method for implementing a program for an object-oriented programming system using graphics
US5659639A (en) * 1993-11-24 1997-08-19 Xerox Corporation Analyzing an image showing editing marks to obtain category of editing operation
US5563991A (en) * 1993-11-24 1996-10-08 Xerox Corporation Using an image showing a perimeter relationship representation to obtain data indicating a relationship among distinctions
US5513271A (en) * 1993-11-24 1996-04-30 Xerox Corporation Analyzing an image showing a proportioned parts graph
WO1996003687A1 (en) * 1994-07-28 1996-02-08 Hewlett-Packard Company Information management device
JP3357760B2 (ja) * 1995-03-16 2002-12-16 株式会社東芝 文字図形入力編集装置
DE19543959C2 (de) * 1995-11-25 2000-04-20 P & I Gmbh Computergestützte Projektionsvorrichtung
DE19546749C1 (de) * 1995-12-14 1997-07-24 Friedemann Weber Zeichentisch zur Darstellung und Bearbeitung von Computeranwendungen
US5930813A (en) * 1995-12-21 1999-07-27 Adobe Systems Incorporated Method and system for designating objects
US5801699A (en) * 1996-01-26 1998-09-01 International Business Machines Corporation Icon aggregation on a graphical user interface
JP3378900B2 (ja) * 1996-06-25 2003-02-17 富士通株式会社 オブジェクト編集方法,オブジェクト編集システム及び記録媒体
US5946696A (en) * 1996-05-31 1999-08-31 Microsoft Corporation Object property lists
US5956468A (en) * 1996-07-12 1999-09-21 Seiko Epson Corporation Document segmentation system
US6195096B1 (en) 1996-08-14 2001-02-27 International Business Machines Corporation Graphical interface method, apparatus and application for creating and modifying a multiple-value text list
US6104395A (en) * 1996-08-14 2000-08-15 International Business Machines Corporation Graphical interface method, apparatus and application for opening window of all designated container objects
US5781193A (en) * 1996-08-14 1998-07-14 International Business Machines Corporation Graphical interface method, apparatus and application for creating multiple value list from superset list
US5818444A (en) * 1996-08-14 1998-10-06 International Business Machines Corporation Method, apparatus and application for object selective but global attribute modification
US5784057A (en) * 1996-08-14 1998-07-21 International Business Machines Corporation Dynamically modifying a graphical user interface window title
US5867157A (en) * 1996-08-14 1999-02-02 International Business Machines Corporation Graphical interface method, apparatus and application for creating and modifying a list of values with multiple components
US5774120A (en) * 1996-08-14 1998-06-30 International Business Machines Corporation Refresh and select-all actions in graphical user interface
US5774119A (en) * 1996-08-14 1998-06-30 International Business Machines Corporation Graphical interface method, apparatus and application for selection of target object
US5872568A (en) * 1996-08-14 1999-02-16 International Business Machines Corporation Application and method for creating a list from pre-defined and user values
US6026417A (en) * 1997-05-02 2000-02-15 Microsoft Corporation Desktop publishing software for automatically changing the layout of content-filled documents
US5977973A (en) * 1997-05-14 1999-11-02 Microsoft Corporation Window linking
US5889523A (en) * 1997-11-25 1999-03-30 Fuji Xerox Co., Ltd. Method and apparatus for dynamically grouping a plurality of graphic objects
US6396005B2 (en) 1998-06-15 2002-05-28 Rodgers Technology Center, Inc. Method and apparatus for diminishing grid complexity in a tablet
US6459442B1 (en) * 1999-09-10 2002-10-01 Xerox Corporation System for applying application behaviors to freeform data
EP1111543A3 (de) * 1999-12-22 2002-11-27 Adobe Systems, Inc. Verfahren und Gerät zum Malen von Objektgruppen
US6633300B1 (en) 1999-12-22 2003-10-14 Adobe Systems Incorporated Method and apparatus for painting groups of objects
US6897853B2 (en) * 2000-11-10 2005-05-24 Microsoft Corp. Highlevel active pen matrix
AU2002336660B2 (en) 2001-10-24 2009-06-25 Google Llc User definable image reference points
US7602991B2 (en) * 2001-10-24 2009-10-13 Nik Software, Inc. User definable image reference regions
FI115422B (fi) * 2001-11-15 2005-04-29 Nokia Corp Menetelmä tietojen käsittelemiseksi päätelaitteessa ja päätelaite
US7050632B2 (en) * 2002-05-14 2006-05-23 Microsoft Corporation Handwriting layout analysis of freeform digital ink input
US7299424B2 (en) 2002-05-14 2007-11-20 Microsoft Corporation Lasso select
DE602004020969D1 (de) * 2004-03-12 2009-06-18 Dassault Systemes Verfahren zur Selektierung und Handhabung von Objekten in einem CAD-System
US8134575B2 (en) * 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US7779362B1 (en) * 2005-09-02 2010-08-17 Adobe Systems Inc. Methods and apparatus for selecting objects by state
US8181122B2 (en) * 2007-07-30 2012-05-15 Perceptive Pixel Inc. Graphical user interface for large-scale, multi-user, multi-touch systems
JP2009116824A (ja) * 2007-11-09 2009-05-28 Canon Inc 描画編集システム及びそのグループ化処理方法、プログラム
EP2564298A4 (de) * 2010-04-26 2015-05-27 Smart Technologies Ulc Verfahren zur handhabung von objekten zur darstellung von anmerkungen in einem interaktiven eingabesystem sowie interaktives eingabesystem zur ausführung dieses verfahrens
US20130125066A1 (en) * 2011-11-14 2013-05-16 Microsoft Corporation Adaptive Area Cursor
JP5681838B2 (ja) * 2012-05-31 2015-03-11 マルチタッチ オーユーMultitouch Oy 電子デバイスを用いて描画するためのユーザインターフェース
US9411461B2 (en) * 2012-10-17 2016-08-09 Adobe Systems Incorporated Moveable interactive shortcut toolbar and unintentional hit rejecter for touch input devices
KR101337872B1 (ko) * 2013-04-04 2013-12-06 주식회사 디오텍 잉크 텍스트 데이터 편집장치 및 잉크 텍스트 데이터 편집방법
EP3072038B1 (de) * 2013-11-19 2019-09-18 Wacom Co., Ltd. Verfahren und system zur erzeugung von tintendaten, darstellung von tintendaten, tintendatenmanipulation und tintendatenkommunikation
US20170090713A1 (en) 2015-09-29 2017-03-30 International Business Machines Corporation Adjusting eraser size in drawing applications
US10387747B2 (en) * 2017-06-26 2019-08-20 Huddly As Intelligent whiteboard collaboratio systems and methods
US20200050342A1 (en) * 2018-08-07 2020-02-13 Wen-Chieh Geoffrey Lee Pervasive 3D Graphical User Interface
US10796086B2 (en) * 2018-08-25 2020-10-06 Microsoft Technology Licensing, Llc Selectively controlling modification states for user-defined subsets of objects within a digital document

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633436A (en) * 1983-12-16 1986-12-30 International Business Machines Corp. Real-time rub-out erase for an electronic handwriting facility
US4686522A (en) * 1985-02-19 1987-08-11 International Business Machines Corporation Method of editing graphic objects in an interactive draw graphic system using implicit editing actions
US4823285A (en) * 1985-11-12 1989-04-18 Blancato Vito L Method for displaying hairstyles
US5072412A (en) * 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4952932A (en) * 1987-04-30 1990-08-28 Canon Kabushiki Kaisha Information input apparatus
US4984152A (en) * 1987-10-06 1991-01-08 Bell Communications Research, Inc. System for controlling computer processing utilizing a multifunctional cursor with decoupling of pointer and image functionalities in space and time
US5117351A (en) * 1988-10-21 1992-05-26 Digital Equipment Corporation Object identifier generator for distributed computer system
CA2003687C (en) * 1989-03-13 1999-11-16 Richard Edward Shelton Forms manager

Also Published As

Publication number Publication date
EP0566294A3 (en) 1995-09-06
US5404439A (en) 1995-04-04
JPH0644021A (ja) 1994-02-18
EP0566294A2 (de) 1993-10-20
EP0566294B1 (de) 2001-10-24
JP3501821B2 (ja) 2004-03-02
DE69330979D1 (de) 2001-11-29

Similar Documents

Publication Publication Date Title
DE69330979T2 (de) Verfahren und Vorrichtung zum graphischen Zeichnen und Editieren
DE69333096T2 (de) Vorrichtungen und Verfahren zum graphischen Zeichnen und Ausgabe
DE69426919T2 (de) Gerät und Verfahren zur Ausführung von vielen verkettenden Befehlsgesten in einen System mit Gestenbenutzerschnittstelle
DE69615470T2 (de) Darstellung von Beziehungen zwischen graphischen Objekten in einer Rechneranzeigevorrichtung
DE69719413T2 (de) Verfahren und Gerät zum Gruppieren von graphischen Objekten in einem Rechnersystem mit einer graphischen Benutzerschnittstelle
DE69731434T2 (de) Verfahren und Gerät zur Modifizierung eines Node-Linkdiagramms
DE69428675T2 (de) Apparat und Verfahren zur Unterstützung einer impliziten Strukturation von Freiform-Listen, Übersichten, Texten, Tabellen und Diagrammen in einem auf Handzeichen basierenden Eingabesystem und Editiersystem
DE69426281T2 (de) Verfahren zur dynamischen Beibehaltung mehrfacher struktureller Interpretationen in einem Grafiksystem
DE69321626T2 (de) Interaktives Anzeigesystem und Verfahren zur Auswahl von Menüs
DE69525696T2 (de) Wiedergeben von Knotenverbindungsstruktur mit einer Zone von grösseren Abständen und peripheren Zweigen
DE69130773T2 (de) Elektronische anzeige und datenverarbeitungsvorrichtung
DE69426044T2 (de) Methode und Gerät zur Lieferung eines zweidimensionalen positionsempfindlichen Verschiebungicons in einer Benutzerschnittstelle eines Datenverarbeitungssystem
DE69707070T2 (de) Verfahren und Vorrichtung zur Organisation eines Arbeitsraums für ein rechnergesteuertes Anzeigesystem mit Anwendung von Rändern und Regionen
DE69732547T2 (de) Verfahren und Gerät zum Zusammenklappen und zur Ausdehnung auserwählter Bereiche von Arbeitsräumen auf einem von einem Rechner kontrollierten Anzeigesystem
DE69233211T2 (de) Gerät zur Manipulation eines auf einem Bildschirm angezeigten Objektes
DE69429237T2 (de) Benutzerschnittstelnlevorrichtung für Rechnersystem
DE69026647T2 (de) Zoommodusbetriebsarten in einem Anzeigegerät
DE69129712T2 (de) Arbeitsraumanzeigen
DE69426476T2 (de) Benutzerschnittstelle mit gleichzeitig zu bewegenden Hilfsmitteln und Cursor
DE69426548T2 (de) Benutzerschnittstelle mit durchclickenden Hilfsmitteln, die mit anderen Hilfsmitteln zusammengesetzt werden können
DE69225550T2 (de) Verfahren und Vorrichtung zum Reduzieren des Betriebsaufwandes für einen berührungsempfindlichen Schirm
DE69920577T2 (de) Korrelation zwischen Cursorform mit der Positionserkennung eines Zeigers auf einem Menüband
DE69426141T2 (de) Benutzerschnittstelle mit bewegbarer Folie mit durchclickenden Hilfsmitteln
DE60205750T2 (de) Lenkung der aufmerksamkeit des benutzers auf bestimmte icons, denen sich ein zeiger nähert, in interaktiven benutzerschnittstellen
DE3689858T2 (de) Verfahren zur Manipulation von Unterobjekten in einem interaktiven Zeichnengraphiksystem.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition