Plug-In für Kurvendiskussionen |
Für jtap soll ein Plug-In erstellt werden, mit dem sich eine Funktion in ein
Koordinatensystem zeichnen läßt.
Eine Funktion soll mindestens durch folgende Basis-Eigenschaften festgelegt
werden:
- Funktionsname z.B. f,g,h
- Name der Laufvariablen, z.B. x,r,k
- Funktionsdefinition, z.B. x^3+23*x-sin(x)
- Funktionskommentar, z.B. "Kosten", "Höhe", "1. Ableitung"
- Bezeichnung für Abzisse und Ordinate
- Wertebereich und Einheiten auf der Abzisse und Ordinate
- Dargestellter Bereich der Funktion (z.B. kann der Wertebereich entlang der
x-Achse von -50 bis +20 gehen, die Funktion soll aber nur im Bereich -10 bis
+10 gezeichnet werden)
- Farbe für Funktion, Kommentar, Abzisse, Ordinate
- Sichtbarkeit für Funktion, Kommentar, Abzisse, Ordinate soll
ein-/ausschaltbar sein
Weiterhin sollen bestimmte Merkmale einer Funktion visualisiert werden, z.B.
Nullstellen, Wendepunkte, Steigungsart, Über-/Unterschreiten von
Schwellwerten. Hierfür sind geeignete Plug-In-Eigenschaften zu finden, mit
denen sich die Visualisierung festlegen lässt (z.B. Angabe einer Geometrie
oder Grafikdatei, mit der bestimmte Punkte gekennzeichnet werden). Fährt der
Benutzer mit der Maus über spezielle Merkmale, so soll ein (über eine
weitere Eigenschaft festlegbarer) Kommentar eingeblendet werden
(Roll-Over-Effekt).
Außerdem ist ein weiteres Plug-In zu entwickeln mit dem sich mehrere
Funktions-Elemente gruppieren lassen. Dieses Meta-Element soll folgende
Aufgaben übernehmen:
- sicherstellen, dass sich die Kommentare und Bezeichnungen der verwalteten
Elemente nicht überlappen
- Synchronisation des Koordinatenkreuzes, d.h. alle Koordinatenkreuze
überdecken sich
- ein Pop-up-Menü ermöglicht das Ein- und Ausblenden der verwalteten
Funktionen (also das Setzen der jeweiligen Sichtbarkeits-Eigenschaft)
- Visualisierung gemeinsamer Merkmale unter den Funktionen, z.B. die
Schnittstellen zweier Funktionen
Die Plug-Ins sollen mindestens auf folgende tell-Nachrichten reagieren:
- scroll up|down|left|right steps
- verschiebt den Wertebereich in eine der
angegebenen Richtungen um "steps" Einheiten.
- zoom factor [horizontal|vertical]
- vergrößert / verkleinert den
sichtbaren Wertebereich proportional, oder optional nur horizontal/vertikal
um "factor" Prozent
- animate steps
- zeichnet die Funktion einmal, wobei die Funktion
schrittweise in "steps" Schritten aufgebaut wird, Beispiel: Der dargestellte
Bereich der Funktion liege zwischen 10 und 60 und umfasse somit 50
Einheiten. Wenn "steps" auf 10 gesetzt wird, so wird die Funktion entlang
dieser 50 Einheiten in 10 Schritten á 5 Einheiten nacheinander gezeichnet.
Die Funktion wird also zunächst im Bereich 10 bis 15 gezeichnet. Nach einer
Pause (nächster Aufruf von TAPElement.update()) wird der nächste Abschnitt
von 15 bis 20 gezeichnet und so weiter. Nach 10 Schritten ist die Funktion
vollständig innerhalb des dargestellten Bereichs gezeichnet.
|