Aller au contenu. | Aller à la navigation

Outils personnels

Navigation
Vous êtes ici : Accueil / Schule / Mathematik / Software / Euapp / Euapp 2.0 Handbuch

Euapp 2.0 Handbuch

Einführung

Was ist EUAPP ?

EUAPP ist ein Applet, das es erlaubt, interaktiv geometrische Konstruktionen vorzunehmen und dann mit diesen zu experimentieren. Bisher standen Programme zum Experimentieren mit euklidischer Geometrie (z.B. "EUKLID") nur für "WINTEL"-Rechner zur Verfügung. Das vorliegende Applet soll hier Abhilfe schaffen.
Die Grundidee basiert auf der Beobachtung, daß in der Geometrie häufig nicht näher bestimmte Objekte auftauchen ("gegeben seien drei Punkte in allgemeiner Lage"), so daß sich die
Frage stellt, wie denn das ganze ausgesehen hätte, wären diese anders gewählt worden. Natürlich könnt man nun alles neu konstruieren. Viel angenehmer wäre es aber, wenn man diese
Punkte einfach "nachträglich" verschieben könnte. Dies ist die Stelle an der der Computer ins Spiel kommt: Ausgestattet mit einer Konstruktionsvorschrift und den Positionen der
"Ausgangspunkte" kann er innerhalb von Sekundenbruchteilen die gesamte Konstruktion wiederholen, so daß der Mensch mit seinem "Zeifenster von 1/25 s" diese Veränderung als
Bewegung versteht. Auf dieser Vorstellung basierend erhält das Ganze einen zusätzlichen dnamischen Aspekt, der zu der Frage führt wie sich einzelen Objekte unter Veränderung der
Basispunkte bewegen. Dies führt zur Betrachtung von Spuren ("Ortslinien"), die von diesem Programm ebenfalls unterstützt werden.

Was ist ein Applet ?

Ein Applet ist ein in der Sprache "Java" geschriebenes Programm, das in eine Webseite integriert wurde. Diese Sprache wurde unter dem Aspekt einer maximalen Geräteunabhängigkeit entwickelt und läuft auf nahezu jedem Computer. Dies umfaßt inbesondere MacOS und Linux. Java ist eine halb interpretierte Sprache, d.h. nach einem "gewissen" Übersetzungsvorgang (der sog. Java Bytecode produziert) sind Javaprogramme darauf angewiesen von einem anderen Programm "interpretiert" zu werden. Es gibt zwar inzwischen eine gewisse Aufweischung dieses Konzepts, die sogenannten Just In Time Compiler, die Stücke von Java in Maschinencode übertragen - was zu ein paar Problemen fürt s.u.. (Des weiteren gibt es auch Java Applikationen, die
nicht in eine Webseite eingebunden sind, aber die Möglichkeit, Beispiele einfach mit Text zu versehen, erschien hier doch angenehm.)

Um ein Applet auszuführen benötigt man also ein Hilfsprogramm.

Welche Programme untertützen EUAPP ?

Ausgeführt werden "Java"-Programme z.B. von den folgenden "richtigen" Programmen:

  • Netscape Navigator (Linux,MacOS,Wintel,Unix ...)
  • Apple Applet Runner (stabiler als NN unter MacOS)
  • appletviewer (Linux,Unix)(entahlten in Sun's JDK)
  • Der Microsoft Internet Explorer wird z.Zt. von EUAPP leider nicht unterstuetzt s.u..

Diese Einschränkungen sind darauf zurückzuführen, daß zum Speichern der Dokumente die sog. "Java Sandbox", also die sichere Ausführungsumgebung für Applets verlassen werden muß. Hier
sind die o.g. Programme teilweise inkomatibel und insbesondere Microsoft verfolgt hier eine abweichende Strategie. Da ich mich über das Sicherheitskonzept von Netscape am einfachsten informieren konnte, habe ich dieses auch implementiert. Benutzer die partout mit dem IE arbeiten wollen, koennen z.B. auf das ähnliche Programm GEONET der Uni Bayreuth zurückgreifen.

Was ist neu in Version 2.0 ?

  • die Möglichkeit Objekte über Ortslinien zu definieren
  • ein Auswahlmenu zur Selektierung von Objekten bei "mehrdeutigem Anklicken"
  • eine Markierung selektierter Objekte
  • Konstruktion freier Winkel
  • Feste Zahlen
  • Potenzfunktion
  • Rekusrive Überprüfung der Abhängigkeiten, so daß mehr "Anbindungen" möglich werden.


Befehle
Maus

Allgemein:

Der Cursor verändert sein Aussehen, wenn er sich über Objekten befindet mit denen momentan eine Operation möglich ist.
Enntfernungen oder Winkel werden ausgewählt, indem man auf den Wert klickt.


Linke Maustaste

Im Editiermodus: Selektiert ein Objekt oder bewegt Namen.
Im Zugmodus: Bewegt Basisgeraden und Basispunkte.

Rechte Maustaste (Apple-Taste + Maustaste)

Schaltet im Browserfenster betätigt das Fenster mit den zusätzlcihen Funktionen ein oder aus.

@
Info

Gibt Informationen zum Programm.

Hillfe

Zeigt im Wesentlichen den momentanen Modus an, d.h. ob gerade ein Befehl ausgeführt wird, der z.B. die Auswahl eines Punktes verlangt.

Datei
Neu

Löscht alle Objekte und ermöglich es so, erneut zu beginnen. Achtung: Es wird nicht nochmals nachgefragt. Diese Funktion läßt sich nicht rückgängig machen. Es ist alles weg.

Öffnen

Öffnet eine neue lokale Datei. Zu den Sicherheitsproblemen s. Sicherheit.

URL Öffnen

Öffnet die Datei mit der angegebenen URL.

Speichern/ Speichern unter

Speichert die aktuelle Konstruktion unter dem bisherigen bzw, einem neuen Namen.

Letzte Version

Läd die letzte gespeicherte Version bzw. läd erneut die Datei aus dem Internet.

Bearbeiten
Zugmodus

In diesem Modus können Basispunkte und Basisgeraden interkativ bewegt werden. An Linien gebundene Basispunkte bleiben an diesen "hängen".

Editiermodus

I n diesem Modus können neue Objekte erzeugt werden / Objekte verändert werden. Die meisten Menübefehle schalten automatisch in den Editiermodus um. Um ein Objekt auszuwählen muß dieses angeklickt werden. das Objekt wird dann durch einen Kreis oder einen zusätzlichen Strich markiert. Befinden sich an der angeklickten Position mehrere Objekte, erscheint ein Fenster, das die Namen bzw. die Typen der Objekte anzeigt und so eine Auswahl erlaubt. Da der Bereich in dem ein Punkt als selektiert angesehen wird, etwas größer ist, als der in dem eine Linie ativiert wird, ist es meistens möglich, diese Mehrdeutigkeiten zu vermeiden.

Schritt rückgängig

Macht den letzten Konstruktionsschritt rückgäng. Achtung: bei Kreisschnitten muß man 2x rückgängig machen um beide Schnittpunkte zu entfernen.

Schritt wiederherstellen

Stellt Objekte, die durch die obige Operation entfernt wurden wieder her. Die ist so lange möglich, als kein neuer Konstruktionsschritt vorgenommen wurde.
Danach ist ein Wiederherstellen nicht zulässig und die entsprechenden Objekte sind verloren.

Löschen

Löscht das ausgewählte Element und alle von diesem abhängige Elemente. Etwaige Bindungen werden aufgehoben. Achtung: Dieser Schritt kann nicht rückgängig gemacht werden.

Bindung Entfernen

Beseitigt die Anbindung des ausgewählten Basispunktes an eine Linie.

Unischtbare ein-/ausblenden

Zeigt unsichtbare Objekte an, bzw. blendet diese aus.

vegrößern/verkleinern

Vergrößert (verkleinert) die Darstellung der Konstruktion, läßt aber die numerischen Abstandswerte gleich.

Skalierung

Vergrößert (verkleinert) die Darstellung der Konstruktion, und passt die numerischen Abstandswerte an.

Konstruktion
Basispunkt [F]

Setzt einen neuen Basispunkt an der Stelle auf die nach Aktivieren des Befehls geklickt wird.

Schnittpunkt [L,L]

Erzeugt den Schnittpunkt oder die Schnittpunkte der nachfolgend ausgeweählten Kreise, Strecken oder Geraden. Schneiden sich die entsprechenden Objekte nicht, bewirkt dies eine vorübergehende Deaktivierung der Schnittpunkte und aller von diesen abghängigen Objekte.

An Linie Binden [BP,L]

Bindet einen Basispunkt an eine Linie, so daß dieser sich im Zugmodus nur noch auf dieser bewegen kann.

Basisgerade [F,F]

Erzeugt eine Gerade durch die beiden nachdolgend angeklickten Positionen.

Gerade durch zwei Punkte [P,P]

Erzeugt eine Gerade durch die beiden nachdolgend angeklickten Punkte.

Gedrehte Gerade [P,P,N]

Erzeugt eine Gerade durch den ersten nachfolgend selektierten Punkt, die gegenüber einer gedachten Gerade durch den zweiten selektierten Punkt um den Wert der darauf selektierten Zahl gedreht ist (In Grad DEG).

Strecke [P,P]

Erzeugt eine Strecke durch die beiden nachdolgend angeklickten Punkte.

Kreis mit Radius [P,N]

Erzeugt einen Kreis durch den nachfolgend ausgewählten Punkt mit dem darauf gewählten Radius.

Kreis [P,P]

Erzeugt einen Kreis, der den ersten nachfolgend ausgewählten Punkt zum Mittelpunkt hat und durch den zweiten ausgewählten Punkt führt.

Messen
Entfernung [P,gO]

Mißt die Entfernung zwischen dem nachfolgend ausgewählten Punkt und dem nächsten selektierten geometrischen Objekt.


Winkel [P,P,P]

Bestimmt den Winkel zwischen den Strhlen, die vom ersten Punkt ausgehen und zum zweiten bzw. dritten Punkt führen.

Fester Wert [F]

Ezeugt an der nächsten angeklickten Stelle ein Zahlobjekt mit dem Wert 0 und dem Namen 0. Der Wert kann geändert werden, indem der Name geändert wird.

Summe,Produkt,Differenz,Quotient,x hoch y [N,N]

Bestimmt die entsprechende Funktion der nächsten ausgewählten Zahlobjekte. Die Parametersubstitution erfolgt in kanonischer Reihenfolge (z.B. 1. Dividend 2. Divisor). Division durch Null oder Potenzierung einer negativen Zahl bewirken die vorübergehende Deaktivierung des erzeugten Objekts und
aller abhängigen Objekte.

Darstellung
Namen festlegen

Erlaubt es, den Namen des ausgewählten Objektes festzulegen, bzw. den Wert eines festen numerischen Objektes zu setzen.

Farbe

Setzt die Farbe des ausgewählten Objekts.

Dicke

Setzt bei graphischen Objekten die Liniendicke/Punktgröße.

Sichtbar/Unsichtbar

Ändert den Status des ausgewählten Objekts von "Sichtbar" in "Unsichtbar" und umgekehrt.

Makros
Aufzeichnen

Beginnt das Aufzeichnen eines Makros. Es erzeugt keine Fehlfunktion, dies mehrmals aufzurufen ohne ein Makro zu speichern. das Aufzeichnen wird jedesmal erneut begonnen.

Aufzeichnen Beenden

Speicher alles, was seit "Aufzeichnen" geschehen ist als Makro, das in diesem Menu erscheint. Bezüge auf Objekte, die vor "Aufzeichnen" erstellt wrden können bei Ausführung durch Bezüge auf gleichartige Objekte ersetzt werden.

Löschen

Löscht das nachfolgend ausgewählte Makro.

Importieren

Importiert Makros von einem lokalen Datenträger.

Makro-Url öffnen

Importiert Makros aus dem Internet.

Exportieren

Speichert Makros auf einem lokalen Datenträger.

Ortslinien
Aufzeichnen

Aktiviert die Erstellung von "Ortslinien" für das ausgewählte Objekt.

Löschen

Beseitigt alle Ortslinien und deaktiviert die Erstellung von Ortslinien für alle Objekte.

Gerade durch Ortslinie [P]

Konstruiert interaktiv eine Gerade durch die letzen beiden Positionen des nachfolgend gewählten Punktes.

Kreis durch Ortslinie [P]

Konstruiert interaktiv einen Kreis durch die letzen beiden Positionen des nachfolgend gewählten Punktes.

Schmiegekreis Ortslinie [Gerade / Strecke]

Konstruiert einen Kreis, der die letzten drei "Momentaufnahmen" der (evtl. extrapolierten) Geraden berührt. Dabei werden diese zuerst so sortiert, daß die
Summe der zwischen der ersten und zweiten und zeiten und dritten eingschlossenen Winkel minimal wird.

Tastaturkürzel
r

Hat denselben Effekt, als ob der letzte Menubefehl erneut gegeben worden wäre.

l

Löscht im Browser-Fenster die Ortslinien.


Shift+Mausklick links

Aktiviert im Browser-Fenster die Aufzeichnung von Ortslinien für das ausgewählte Objekt.

HTML Parameter
Datei

Gibt die URL einer Datei an, die bei Programmstart angezeigt werden soll.

Makros

Gibt die URL einer Makrodatei an. Diese Maklros stehen dann bei Programmstart zur Verfügung.

Editierbar

Gibt an, ob der Anwender das Fenster mit den erweiterten Funktionen öffnen darf.

Neu

Gibt an, ob der Benutzer den Befehl "Neu" ausführen darf.

Löschbar

Gibt an, ob der Benutzer Objekte löschen darf.


Sicherheit
Warum gibt es bei Applets Sicherheitsbedenken ?
Da "Java"-Applets über in Webseiten eingebunden werden, und somit jemand ein Applet versehentlich ausführen könnte, unterliegen sie besonderen Sicherheitsvorkehrungen. Insbesondere muss ihnen die Erlaubnis, auf die Festplatte zugreifen zu dürfen, explizit gegeben werden. Ähnliches gilt für die Verbindung zu anderen Rechnern, da ansonsten persönliche Daten des
Benutzers nach außen weitergeleitet werden könnten.
All diese "bösartigen" Funktionen können unter den meisten Betriebssystem von allen Programmen ausgeführt werden. Hier handelt es sich aber um eine bewußte Entscheidung des Benutzers, diese Programme einzusetzen. Er weiss zumeist, aus welcher Quelle das Programm stammt, und inwieweit er dieser Quelle zutraut, bösartige Funktionen in dieses Programm integriert zu haben. Da es hier nur Nichtbenutzen oder uneingeschränktes Vertrauen gibt, sind "herkömmliche" Programme im Prinzip unsicherer als Applets.

Welche Methode wird angewandt, um dem Rechnung zu tragen ?
Da Programme, die keine Daten auf der Festplatte ablegen können, kaum Funktionen ausführen können, die über Spiele oder Demos hinausgehen - nach jedem Ausschalten ist alles verloren,
muß also eine Möglichkeit geschaffen werden, Applets Vertrauen entgegenzubringen. Hier tritt das Problem auf, daß es normalerweise keine Möglichkeit gibt, festzustellen, ob sich ein Applet, dem man vertrautm nicht über Nacht verändert hat und bösartig geworden ist. Im Sicherheitsmodell von Netscape gibt es daher nur zwei Typen von Applets, denen man vertrauen kann: Solche die auf der eigenen Festplatte liegen und sog. zertifizierte Applets. Erstere können nicht von außen verändert werden, solange der eigene Rechner "sicher ist". Könnten sie verändert werden, wäre ohnehin schon alles verloren. Bei letzteren wird eine Prüffunktion (eine Art Quersumme) des Codes gebildet deren Wert dann mittel asymetrischer Krytographie verschlüsselt wird. Die theoretische Sicherheit solcher Verfahren ist noch nicht abschließend bewiesen worden, beim momentanen Stand der Wissenschaft gibt es jedoch noch keine Methode sie effizient zu brechen und die Wahrscheinlichkeit, daß es eine solche geben wird, wird im allgemeinen als gering erachtet. Sollte es dennoch passieren, werden die Probleme mit EUAPP die geringsten sein.

Was ist ein Zertifikat ?

Die erwähnten asymmetrischen Verschlüsselungsverfahren basieren auf zwei kryptographischen Schlüsseln einem "privaten" und einem "öffentlichen". Die Idee bei den digitalen Unterschriften ist die, daß ich mit meinem "privaten" Schlüssel mein Applet unterschreibe und der Benutzer dann mit meinem "öffentlichen" Schlüssel überprüfen kann, daß das Programm von mir stammt und von nemandem verändert wurde. Das Problem ist nun, wie der Benutzer an meinen "öffentlichen" Schlüssel kommt, ohne daß ich bei ihm vorbeifahren muß. Nun - er kann ihn sich kopieren. Aber woher weiß er, daß ihm nicht jemand einen anderen Schlüssel unterschiebt und dann seinen Code für meinen ausgibt. Hier kommt eine vertrauenswürdige "dritte" Partei ins Spiel. Diese guckt sich meinen Schlüssel an und unterschreibt diesen dann, so daß nun mit dem "öffentlichen" Schlüssel der dritten Partei geprüft werden kann, ob dies wirklich mein Schlüssel ist. Hier beißt sich die Katze nun in den Schwanz. Woher bekommt man den öffentlichen Schlüssel dieser Partei (sog. Trust Center oder Certificate Authority) ? Die meisten davon sind bereits im Netscape Navigator eingebaut. Die anderen muß man explizit in einem Akt der Vertrauensgewährung akzeptieren.

Ein solches Trust Center Zertifikat kostet ca. DM 100 und seine Anschaffung kam daher für dieses Programm nicht in Frage. Daher habe ich ein privates Test-Zertifikat erstellt, daß ich selbst gegengezeichnet habe. Dieses muß genauso akzeptiert werden wie das Zertifikat eines richtigen Trust Centers. Gibt es damit Probleme ? Ja. Wenn man aufpaßt Nein.
Die Installation meines Zertifikates in den Webbrowser ermöglicht es mir im Prinzip beliebige Java Programme als von der Person XYZ verifiziert auszugeben. Ich könnte dem Benutzer z.B.
ein Programm schicken, das angeblich von seiner Hausbank kommt, un das er nun bitte zum Online-Banking benutzen soll. Wie kann der Benutzer dies feststellen ? In jedem Zertifikat ist angegeben. wer dieses Zertifikat erstellt hat. Bei von mir erstellten Zertifikaten steht entsprechend mein Name drin - das kann men bei dem mitgleieferten Zertifikat explizit anschauen.
Sollte dann ein Zertifikat einer deutschen Großbank auftauchen, daß mit "Martin Löhnertz" unterschrieben ist, so sollte man es tunlichst wegwerfen. Die setzt aber voraus, daß man sich das Zertifikat explizit anguckt. Im Browser-Fenster wird nur erscheinen "signed by XYZ Bank".

Welche Fuktionsunterschiede gibt es zwischen der Zertifizierten und der
nicht zertifizierten Version ?

Der Browser hat keine Möglichkeit festzustellen, ob eine im Internet vorhandene Version meines Programms mit der auf der Festplatte des Benutzers übereinstimmt. Das heißt, wenn ein anderer ein EUAPP-Applet in seine Webseite einbindet, kann er es normalerweise nicht benutzen, da dieses Applet dann keine Rechte hat, auf das Netz zuzugreifen - theoretisch sollte ein Zugriff auf den Rechner von dem dieses Applet stammt immer möglich sein, bisher scheit dies aber nicht zu funktionieren. Sobald es möglich ist werde ich es integrieren. Solange steht diese
Funktion also nur mit signierten Applets zur Verfügung. Um sich die Beispiele mit der unsignierten Version anzusehen, muß man das Applet von der eigenen Platte starten und dann mit dem
Befehl "URL öffen" das Beispiel explizit herunterladen.

Was bedeuten die Dialogfelder ?

Wenn man zum ersten Mal versucht, eine Datei zu speichern oder zu laden bzw. eine URL zu öffnen, zeigt Netscape ein Fenster an, das den Benutzer darüber informiert, daß das Applet
gerade etwas Gefährliches versucht. Dem Benutzer mag dies nun als doppelte Überprüfung erscheinen - "den Befehl habe cih doch gerade sebst gegeben", aber Netscape kann natürlich nicht entscheiden, ob das Applet diese Aktion nicht eigenständig unternimmt. Wenn der Benutzer den Zugriff zulassen will, so muß er nun auf "grant" klicken, wenn nicht, auf "deny". Will er nie mehr danach gefragt werden, so kann er dies in einer kleinen Checkbox "Remember" auswählen. Diese "erinnerten" Rechte können nachträglich über die allgemeinen Sicherheitseinstellungen
wieder entzogen oder geändert werden.

Gibt es ein Risiko ?

Ein Risiko gibt es klar immer. Es ist aber nicht größer als das, das man mit irgend einem beliebigen Programm eingeht. Jedes Textverarbeitungsprogramm kann Kontakt zum Internet aufnehmen, oder alle für es erreichbaren Daten löschen. Lediglich die Möglichkeit, daß ein Applet über eine
Webseite versehentlich ausgeführt werden kann hat zu den beschriebenen erhöhten Sicherheitsmaßnahmen geführt. Ich kann hier natürlich nur versichern, nach bestem Wissen keine bösartigen
Routinen in den Code integriert zu haben. Was Fehler etc. ansieht s. die Nutzungsbedingungen.

Was ist mit dem Internet Explorer ?
Der Internet Explorer verwendet ein anderes Sicherheitsschema, das mit dem von Netscape nicht kompatibel ist. Die Netscape spezifischen Befehle werden zwar nur unter Netscape Navigator ausgeführt, aber da der IE einen "Just In Time" Compiler einsetzt versucht es dennoch diese zu übersetzen und scheitet daran. Echte Interpreter
sollten das Programm ausführen können. (Aber wir arbeiten daran :-))

Fehlersuche
Das Programm startet nicht.
Sie verwenden vermutlich den Microsoft Internet Explorer. Nehmen Sie den Netscape Navigator.
Testen Sie die Demos auf diesen Seiten. Evtl. hat der Autor der Seite auf die sie ursprünglich zugreifen wollten, einen Fehler gemacht.

Man kann keine Dateien laden/speichern.
Sie müssen das Zertifikat importieren.

Es ist kein Menu da.
Dieses Problem gibt es auf älteren Apple Computern. Verwenden sie den Apple Applet Runner und drücken sie Appletaste+Maustaste um die erweiterten
Funktionen (das Menu) zu sehen. Es wird am Ende der bisherigen Menuleiste angehängt.

How to submit a Bug Report.
Please send bug reports to Martin Loehnertz (Address can be found at www.loehnertz.de) including information about your browser and operation system.

Glossar

Basispunkt: Ein Basispunkt ist ein frei setzbarer Punkt, der im Zugmodus verschoben werden kann. Er wird über die Funktion "Basispunkt" erzeugt.

Punkt: Punkt meint einen Basispunkt oder einen Schnittpunkt.

Linie: Ein Kreis, eine Gerade oder eine Strecke.

[x,y,z]: Gibt an, in welcher Reihenfolge welche Objekttypen gewählt werden müssen. F steht hierbei für das freie Setzen z.B. eines Basispunktes, P für Punkt, N für eine Zahl, L für eine Linie, gO für ein Objekt, das keine Zahl ist und BP für ei.nen Basispunkt Der Cursor ändert sein Aussehen wenn er sich über einem momentan geiegneten Objekt befindet.

© Martin Löhnertz 2000
Alle in diesem Dokument erwähnten Marken gehören ihren jeweiligen Besitzern.