Einzelnen Beitrag anzeigen

mare_crisium

Registriert seit: 6. Nov 2005
17 Beiträge
 
Delphi 5 Standard
 
#2

Re: Brechung einer Graden an Ebene(Glasscheibe)

  Alt 10. Dez 2005, 00:02
AmY,

ich habe mir den Link, den Du angegeben hast, näher angesehen und finde die Erklärungen und Diskussionen dort ziemlich schwer verständlich. Die Codezeilen, die Du in Deinen Post einkopiert hast, beziehen sich auf eine Programmiersprache, die eine Vektor-Mathematik-Bibliothek zur Verfügung stellt, die ich nicht kenne.

Es geht aber auch auf Delphinisch! Ich hänge hier eine ".exe"-Datei und die entsprechende unit an. Wenn das Programm bei Dir zum Laufen kommt, kannst Du den Einfallswinkel ändern und siehst dann, welchen Winkel der gebrochene Strahl annimmt. Die Brechungsindizes sind die für Luft und Wasser. Zu beachten ist Folgendes: In der Optik werden die Einfalls- und Ausfallswinkel immer zwischen den betreffenden Lichtstrahlen und dem "Einfallslot" gemessen. Das "Einfallslot" ist eine gedachte Linie, die genau da, wo der einfallende Lichtstahl auftrifft, senkrecht auf der brechenden Oberfläche steht. Wenn also der Lichtstrahl genau senkrecht auf die Oberfläche trifft, dann ist der Einfallswinkel 0°. Das ist ein bisschen ungewohnt. Im täglichen Leben misst man meistens, z.B. die Steigung einer Strasse, ausgehend von der Waagerechten.

In der unit "lbgu200" findest Du ganz am Ende die "function gebrochenerStrahl". Die berechnet die Richtung des gebrochenen Lichtstrahls aus der Richtung des einfallenden. Alle anderen Teile der unit beschäftigen sich mit der Programmsteuerung durch die Bedienungelemente.

Ich hoffe, die Vektorrechnerei schreckt Dich nicht ab. Die für zweidimensionale Vektoren notwendigen Hilfsmittel sind in der Unit "vect2Lib200" zusammengestellt. Im Allgemeinen ist das Berechnen von Geraden, Schnittpunkten, Winkeln und dergleichen mit Vektoren viel einfacher zu bewerkstelligen als mit den üblichen Geradengleichungen vom Typ y = m*x + b. Z.B. ist eine senkrecht verlaufende Gerade mit Vektoren überhaupt keine Schwierigkeit, während man bei der üblichen Geradengleichung im einer unendlich grossen Steigung zu kämpfen hat.

Hilft Dir das Beispiel?

mare_crisium
Angehängte Dateien
Dateityp: pas vect2lib200_602.pas (5,9 KB, 8x aufgerufen)
Dateityp: pas lbgu200_188.pas (10,9 KB, 7x aufgerufen)
Dateityp: exe lbgp200_170.exe (349,5 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat