Hab grad ne schicke Zeichnung im Netzt gefunden:
Abstand Punkt Gerade.
So kriegt man gleich alles raus, was man braucht: Abstand und Fußpunkt F.
Alle Punkte P, Deren Abstand d größer r fallen gleich weg.
Alle Punkte für die gilt FM1^=-m*M2M1^ {m | m e R+} fallen auch weg.
Alle Punkte, für die gilt |FM1^| > |M2M1^|+r fallen auch weg.
alle anderen fallen nur weg, wenn d^2+x^2<r^2, wobei x=|FM1^|-|M2M1^|.
Um nun rauszukriegen, mit welchem die Kugel zuerst kollidiert geht man wie folgt vor:
die Ergebnismenge wird nach |FM1^|-x aufsteigend sortiert, wobei x=sqrt(r^2-d^2).
Wenn man |FM1^|auch quadriert spart man sich hier das Wurzelziehn, wobei sich die Sache deutlich beschleunigt.
der erste in der Liste ist der Punkt mit dem die Kugel kollidiert.
Jetzt kann man den 'Kreismittelpunk zum Zeitpunkt der Kollision' M3 rauskriegen, indem man den Vektor M2M1^ durch seinen Betrag teilt, mit dem entsprechenden |FM1^|-x aus der Liste multipliziert und zu M1 addiert.
N^ (Normalenvektor des Punktes zur Kugel) errechnet sich dann durch P-M3.
neuer Richtungsvektor des Kreises bestimmt sich mit Ausfall=Einfall an diesem N^.
Betrag des neuen Richtungsvektor |M2M1^| - |FM1^|-x und das Spiel beginnt von neuem, solange bis im Weg der Kugel kein Hindernis mehr ist.
Zielpunkt des Kreises ist dann letzter Kollisionspunkt M3n+Letzter Richtungsvektor.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>