Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Strahlengang im Rotierenden Spiegel

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
10.11.2004, 15:01 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat:
Hallo Hans, Du konntest mir schon helfen,

das freut mich.

Zitat:
auch die XOR-Verknüpfung hast Du gut erklärt

Wenn Du jetzt die Wikipediaseite meinst, der Text dort ist nicht von mir, den hat jemand anders geschrieben. Und viel besser könnte ich es auch nicht erklären.

Zitat:
aber ich glaube das ist mir dann vorerst doch etwas zu kompliziert mit dem Einlesen von Zeichen.

Okay, kann ich mir vorstellen.

Zitat:
Jetzt müßte ich eine Kollisionsabfrage einbauen,

Oh, davon hab ich jetzt auf anhieb auch keine Ahnung. Vielleicht hilft es, wenn Du deswegen mal in Büchern zur Spieleprogrammierung nachguckst. Bei Spielen braucht man ja ständig Kollisionsabfragen, deshalb ist das die erste Quelle, die mir dazu einfällt. Ansonsten ein Buch über Grafikprogrammierung, das aber nichts mit DirectX oder OpenGL zu tun hat.

Was das Problem mit dem Spiegel sonst noch angeht, so musst Du da ein bisschen Physik berücksichtigen. Du musst beachten, das der Einfallswinkel, mit dem der Strahl auf den Spiegel trifft, der gleiche ist, wie der Ausfallswinkel, in dem der Strahl den Spiegel wieder verlässt. Aber der Winkel ist am Lot gespiegelt, und das steht immer senkrecht zur Spiegelfläche.
Beispiel: Der Strahl kommt horizontal und trifft auf den Spiegel, der um 45° nach oben geneigt ist. Da der Lichtstrahl in einem 45° Winkel auf den Spiegel trift, verlässt er ihn auch wieder im 45° Winkel. Da der Spiegel nach oben geneigt ist, geht der Strahl senkrecht nach oben.

Probeweise kannst Du es ja erst mal so machen, das der Lichtstrahl immer an der selben Stelle auf den Spiegel trifft. Dann brauchst Du nur den Einfallswinkel, also den, unter dem der Lichtstrahl auf den Spiegel trifft, und den Winkel des Spiegels gegenüber einem Bezugspunkt (oder einer Bezugsebene). Daraus kannst Du den Ausfallswinkel berechnen, also jenen, mit dem der Strahl den Spiegel wieder verlässt. Da der Punkt, an dem der Strahl auf den Spiegel trifft, und jener, wo er ihn verlässt identisch sind, kannst Du den ausgehenden Strahl von dort aus neu zeichnen. Die Richtung hast Du ja, evtl. musst Du vorher noch Endkoordinaten für die line-funktion berechnen.
Soweit das, was mir jetzt dazu eingefallen ist. Wünsche viel Spass beim tüfteln,

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
22.02.2005, 13:24 Uhr
~PuH
Gast


Hallo!

Zur Kollisionsabfrage folgender Vorschlag:

Der Spiegel (d.h. die Linie) ist ein Geradenstück mit einem Anfang und einem Ende. Das ist die Menge aller Punkte (Pixel) im Intervall [Anf., Ende].
Es folgt im Koordinatensystem der Gleichung y = kx+d, wobei k die Steigung der Geraden ist (= der Tangens des Winkels zur x-Achse), d ist der y-Wert im Punkt x = 0.

Genau das gleiche gilt aber auch für die Gerade, die den Lichtstrahl repräsentiert.

Das Problem reduziert sich also auf die Prüfung, ob die beiden Geraden einen gemeinsamen Punkt (Pixel) haben.

mvg
P&H
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: