19.01.2015 Aufrufe

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

10.4 Multitouch-Framework 187<br />

der Schwerpunkt der Geste vor <strong>und</strong> nach der Veränderung berechnet. Der<br />

Schwerpunkt wird dabei mittels folgender Formel berechnet:<br />

x =<br />

n<br />

∑<br />

k=0<br />

X k<br />

, für n > 0, sonst 0 (10.5)<br />

n<br />

n ist die Anzahl der Blobs in BlobsProperty <strong>und</strong> x die X-Koordinate aus der<br />

Blob.Position-Property.<br />

Die Differenz zwischen diesen zwei Punkten wird an die GUI-Elemente<br />

weitergegeben. Hierdurch wird gewährleistet, dass Verschieben unabhängig von<br />

der Anzahl der Finger ist <strong>und</strong> dessen Bewegungsrichtung erkannt wird.<br />

Scale Wenn ein Finger auf der Tischoberfläche die Position ändert <strong>und</strong> der Finger dabei<br />

am weitesten Rechts, Links, Oben oder Unten auf dem GUI-Element steht, wird<br />

ein Scale-Event gesendet. Die Differenz zwischen altem <strong>und</strong> neuem Zustand wird<br />

an das GUI-Element weitergegeben.<br />

Rotate Genauso wie Scale wird das Rotate-Event nur dann abgefeuert, wenn ein Finger<br />

auf der Tischoberfläche die Position ändert <strong>und</strong> der Finger dabei am weitesten<br />

Rechts, Links, Oben oder Unten auf dem GUI-Element steht. Im Unterschied<br />

zum Scale-Event wird jedoch die Winkeldifferenz zwischen dem alten Zustand<br />

der gegenüberliegenden Finger <strong>und</strong> dem neuen Zustand der gegenüberliegenden<br />

Finger an das GUI-Element weitergegeben.<br />

BigBlob Das BigBlob-Event wird gefeuert, wenn die Größe eines Blobs einen<br />

spezifizierten Schwellwert überschreitet. Dieser kann über die Einstellungsdatei<br />

des Multitouch-Frameworks eingestellt werden. Der Schwellwert muss in<br />

Abhängigkeit zu den Einstellungen von Community Core Vision ermittelt werden.<br />

Bei einem TouchDown ist die Blob-größe anfangs meist recht klein, da sich diese<br />

erst durch Druck aufbaut. Sobald die Blob-größe den Schwellwert überschreitet,<br />

wird ein BigBlob-Event gesendet.<br />

10.4.4 Touch<br />

Zur Bereitstellung der Funktionalität von Touch-Capture, die der WPF-Funktion<br />

Mouse-Capture nachempf<strong>und</strong>en ist, implementiert die Klasse Touch die Methoden<br />

CaptureTouch <strong>und</strong> ReleaseTouchCapture. Da Mouse-Capture allerdings bekannt<br />

ist, wird auf die Erklärung dieser Methoden nicht weiter eingegangen. Um jedoch<br />

Kollisionen zwischen dem nativen Mouse-Capture <strong>und</strong> dem eigenen Touch-Capture zu<br />

verhindern, musste in der Klasse Multitouch das bool’sche Property isMultittouch<br />

eingeführt werden. Ist dieses auf true gesetzt, werden nur Multitouch-Event-Handler<br />

eingeb<strong>und</strong>en, andernfalls nur Mouse-Event-Handler.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!