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.1 Punktdiagramm 175<br />

10.1.4 Axis <strong>und</strong> AxisNode<br />

Die Klasse Axis enthält ein Property DropAreaTyp vom Typ DropAreaTyp, welches<br />

angibt, um welchen Typ von Achse es sich handelt. DropAreaTyp ist dabei eine<br />

Aufzählung, welche die Werte XAxis, YAxis, Color, Size <strong>und</strong> Animation enthält,<br />

wobei der DropAreaTyp der Klasse Axis nur XAxis oder YAxis sein kann. Weiter hat<br />

die Achse eine Translatetransform, dessen X- <strong>und</strong> Y-Properties an die Properties<br />

TranslateX <strong>und</strong> TranslateY des Diagramms geb<strong>und</strong>en sind. Handelt es sich bei der<br />

Achse um eine X-Achse, wird das Binding des Property X der TranslateTransform<br />

entfernt. Stellt die Achse eine Y-Achse dar, wird analog dazu verfahren, jedoch<br />

mit dem Y-Property. Die Achse hört auf PropertyChanged-Events, welche vom<br />

DiagramDataModel abgefeuert werden, reagiert dabei allerdings nur auf Änderungen<br />

der Eigenschaft CellSet. Diese Änderung sorgt dafür, dass sich die Measure-Achse<br />

aufbaut. Die Dimensions-Achse ist in der Lage, sich noch vor der Measure-Achse<br />

aufzubauen, da die Nodes der Level sich nicht verändern können. Der Aufbau der<br />

Dimensions-Achse wird gestartet, sobald ein neues Level in die zur Dimensions-Achse<br />

gehörende Liste im Dictionary hinzugefügt wird. Wird das Level aus dieser Liste entfernt,<br />

wird die Achse wieder gelöscht. Wenn ScaleX <strong>und</strong> ScaleY sich verändern, werden die<br />

Abstände zwischen den AxisNodes angepasst oder gegebenenfalls ausgeblendet. Dieser<br />

Vorgang wird nun für die X-Achse erläutert, der Vorgang für die Y-Achse läuft analog<br />

dazu.<br />

Zuerst müssen einige Variablen definiert werden:<br />

• s = Skalierungsfaktor<br />

• W = Diagrammbreite<br />

• w = Beschriftungsbreite (AxisNode)<br />

• c = Anzahl von Beschriftungen auf der Achse<br />

Der Abstand d zwischen den einzelnen Beschriftungen wird mit folgender Formel<br />

berechnet:<br />

d = s ·W − w · c<br />

(10.1)<br />

c − 1<br />

Dabei wird nur jedes i-te Element angezeigt, wobei i wie folgt berechnet wird:<br />

⌊ c · w<br />

⌋<br />

i =<br />

(10.2)<br />

W<br />

Die DrillDown- <strong>und</strong> die RollUp-Funktionen sind so umgesetzt worden, dass jeweils nur<br />

eines der Level, die einer Achse zugeordnet sind, ausgetauscht wird. Diese Änderung<br />

bewirkt, dass eine neue Datenbankabfrage gestellt <strong>und</strong> dass anschließend ein neues<br />

CellSet für die Darstellung verwendet wird. Es werden also sowohl die Achsen als auch

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!