Brechung des Lichtes an mehreren sphärischen Flächen

Mit dem Brechungsgesetz ist es nun also möglich durch jede beliebige gekrümmte Fläche den Strahlenverlauf des Lichtes zu berechnen (siehe Kugelfläche-Applet). Wie Sie vielleicht schon bemerkt haben ist in dem Kugelfläche-Applet jeder Punkt mit „i_" am Anfang beschriftet.
Das hat folgenden Grund: Wenn die Brechung an einer Fläche klappt (und das tut sie ja zum Glück, siehe Kugelfläche-Applet), warum soll es dann nicht auch mit 2, 3 oder 20 Flächen klappen ? Wenn ich einfach den Quelltext für eine Fläche dupliziere und „i_" durch „ii_" ersetze, habe ich schon eine Linse. Wiederhole ich das, kann ich auch 2 oder 3 oder noch mehr Linsen zeigen und das ziemlich exakt !

So habe ich mir das anfangs vorgestellt. Aber der Computer ist ja bekanntlich immer für Überraschungen gut und deshalb habe ich den Quelltext nur auf insgesamt 2 Flächen kopieren können.
Bevor ich das Problem mit mehr als 2 Flächen zeige (siehe unten), möchte ich das Applet mit den 2 Flächen, das auch nicht ohne ist, noch beschreiben:


In den Grundzügen entspricht dieses Applet dem Kugelfläche-Applet, nur dass es wegen der Programmierung einige Besonderheiten gibt:

Das erste Problem ist es, ii_T und ii_Tli festzulegen. Während diese Punkte in (i) noch mit der Maus bewegbar sind, müssen sie in (ii) als Schnittpunkte festgelegt sein, was dadurch, dass beide Flächen nach links oder nach rechts gebogen sein können (Schieberegler positiv/negativ) eine relativ unangenehmes Unterfangen ist. Mit ein paar if-Schleifen habe ich dieses Problem aber lösen können.

Dazu kommen noch etliche andere programmiertechnische Probleme, die aber meistens auch lösbar waren. Manchmal musste ich aber auch auf Kompromisse eingehen, denn dadurch dass man in diesem Applet ungeheuer viel verändern kann (6 Schieberegler und 5 ziehbare Punkte !) ist es schwierig alle Möglichkeiten offen zu lassen, und so kann es dann dazu kommen, dass man zwar z.B. den Abstand der Flächen verändern darf, dabei aber der Lichtstrahl nahe der optischen Achse verlaufen muss (nur während des änderns der Entfernung; ist der Abstand eingestellt kann der Strahl wieder überall hin). So gibt es noch einige weitere Kompromisse, die ich treffen musste:


Hinweise zum Arbeiten mit dem Applet, (i) sei die 1. Fläche und (ii) die 2.: In der br2_galilei.html ist genau beschrieben wie man z.B. ein Galileisches Fernrohr mit dem Applet „bauen" kann. Dazu wird die einzelne Fläche wie eine dünne Linse betrachtet.

Jetzt können Sie Ihr System noch genauer studieren, in dem Sie die Messwerte betrachten:
Bei den Messwerten ist gegenüber dem Kugelfläche-Applet hier nur folgendes neu:
Unter „SYSTEM" können Sie den Abstand der Scheitelpunkte (= Schnittpunkt zw. Kugelfläche und opt. Achse) ablesen. Der 2. Wert gibt den Abstand der Mittelpunkt voneinander an. Unter „BILD" werden die Abstände der Schnittweiten zu den jew. Scheitelpunkten angezeigt. Diese Werte sind durch die Eingaben (Position der Mittelpunkte, Radien) gegeben.

Analog dazu lassen sich auch andere Systeme darstellen. Will man z.B. eine dicke Linse, müssen die Flächen vergleichsweise nahe aneinander sein. Will man eher 2 dünne Linsen (z.B. Fernrohre, Lupe - Auge, Mikroskop,..) zeigen, so verhält sich das Licht durch eine Kugelfläche mit bestimmter Brennweite f genauso wie durch eine dünne Linse mit der selben Brennweite.


Sollte ii_T trotz aller ‘Vorsicht’ einmal verschwinden und der Rechner ziemlich lang rechnen und knören, müssen Sie wohl oder übel wieder die Ausgangsposition neu laden, in dem Sie auf „Aktualisieren" im Browser klicken (wenn Sie Glück haben reicht es auch die Schieberegler/Punkte so zu verschieben, dass ii_T wieder existiert - mein Prozessor ist mit 233MHz dazu aber leider zu langsam).


Dieses Applet ist wohl das von der theoretischen Physik her gesehen das beste das ich (bis jetzt) geschrieben habe. Weil es aber unter enormem Zeitdruck entstanden ist, fehlen noch ein paar Details. So sind z.B. die Brennweiten nur berechnet, aber nicht eingezeichnet, weil das wegen dem Vorzeichenschlamassel nicht ganz so einfach hinzubekommen ist.
Wenn ich dazu mal ein wenig Zeit habe, werde ich in dieses Applet neben den Brennweiten wahrscheinlich auch noch die Hauptebenen mit einbringen..



Jetzt aber wieder zurück zu dem Problem mit mehr als 2 Flächen: In dem oben beschriebenen Applet ist eine Fallunterscheidung mit einprogrammiert, die überprüft ob ii_T existiert und das gegebenenfalls ausgleicht. Der letzte Schritt dieser Fallunterscheidung ist der, dass der Punkt ii_T als von anderen Werten abhängiger Punkt konstruiert wird. Dazu benötigt man
point; functionDepend; „x-coordinate", „y-coordinate"
(siehe www.geometria.de)

Und genau da kommt eine wirre Fehlermeldung von der Java-VirtualMachine, mit der ich nichts anfangen kann. Deshalb habe ich mit Herrn Dr. Ehmke (dem Autor dieser Sprache) telefonisch Kontakt aufgenommen und ihn gefragt, wo der Fehler liegen könnte. Inzwischen ist das schon einige Wochen her und ich habe noch ein paar mal mit Herrn Ehmke telefoniert, aber weder er noch ich weiß wo der Fehler liegen könnte - auch Herr Ehmke ist ausnahmsweise absolut ratlos! So muss ich mich eben mit dem Kompromiss zufrieden geben, dass ii_T nie verschwinden darf.

Weil sich dieser Fehler schon bei 2 Kugelflächen nicht beheben lässt, ist an ein System aus 3 Flächen kaum zu denken. Vielleicht kommen Herr Ehmke und ich aber auch noch auf den Fehler (*hoff*)...