Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.09.2016, 14:18

Scheinbare Position ermitteln

Hi,

ich habe hier ein Problem, das mir auf den ersten Blick relativ einfach zu lösen sein müsste, da nur Dreiecke im Spiel sind. Allerdings komme ich gerade auf keinen grünen Zweig (liegt wohl daran, dass ich die ganzen Dreiecks-Formeln nicht mehr kann), weswegen ich ein paar Denkanstöße benötigen würde.

Folgendes Problem:


(Link)


Aus einer Quelle "Q" fällt ein gebündelter Lichtstrahl. Die Quelle befindet sich in der Höhe "h" senkrecht über einer Ebene, die sie beleuchtet. Der Winkel, in dem der Lichtstrahl aus "Q" fällt, ist so gewählt, dass der Strahl in X-Richtung in einem Abstand "x" auf diese Ebene fällt. "Q" ist dabei clever und weiß automatisch, welchen Winkel sie vorgeben muss, wenn "x" vorgegeben wurde.

"h" und "x" sind also bekannt, die Länge "l" des Lichtstrahls ergibt sich (Pythagoras).

Jetzt verändert jemand den Abstand der Ebene von der Quelle, so dass sich die Ebene jetzt in einem Abstand "h+h2" von der Quelle befindet. In Folge dessen trifft der Lichtstrahl jetzt auch weiter draußen auf die Ebene, nämlich an Position "x+x2".

"h2" ist bekannt.

Damit der Strahl die Ebene trotzdem wieder an der richtigen Stelle (nämlich in einem Abstand von "x") beleuchtet, muss sein Winkel verändert werden. Da Q keinen Winkel erwartet, sondern eine X-Position, muss also eine art "virtueller" Punkt "x3" errechnet werden, der sich auf die Ebene in "h" bezieht, aber dafür sorgt, dass der Punkt auf der Ebene in "h+h2" an der richtigen Position erscheint.

Deswegen meine Frage: wie kann ich den Abstand "x3" ermitteln, wenn "x", "h" und "h2" bekannt sind? h2 kann sowohl positiv als auch negativ sein.

Danke schon mal!

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

28.09.2016, 14:52

Ich würde erstmal eine Gegenfrage stellen: Wenn du eigentlich den Abstand x willst, wieso repräsentierst du das ganze dann über einen Winkel, anstatt eben einfach direkt über den Abstand x!?

Wenn du wirklich den Winkel ausrechnen willst: atan2(). Meiner Erfahrung nach will man aber praktisch nie wirklich mit Winkeln arbeiten... ;)

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

3

28.09.2016, 15:03

Deine Rechnung hat doch auch nichts mit Winkeln zu tun sondern nur aehnlichen Dreiecken?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

28.09.2016, 15:12

Das dachte ich erst auch, wenn ich das richtig versteh will er aber offenbar gerade nicht den grünen Strahl verlängern (das ginge über ähnliche Dreiecke), sondern den purpurnen ausrechnen... ;)

Edit: Achso, sorry, er will also ausrechnen wo der purpurne Strahl die ursprüngliche Ebene trifft...das geht natürlich wirklich einfach über ähnliche Dreiecke...

5

28.09.2016, 15:18

Ich würde erstmal eine Gegenfrage stellen: Wenn du eigentlich den Abstand x willst, wieso repräsentierst du das ganze dann über einen Winkel, anstatt eben einfach direkt über den Abstand x!?


Nein, der Winkel interessiert mich tatsächlich zu keinem Zeitpunkt, "Q" will immer nur einen x-Wert haben.

6

28.09.2016, 15:21

Edit: Achso, sorry, er will also ausrechnen wo der purpurne Strahl die ursprüngliche Ebene trifft


Nein, gerade anders herum: Ich will wissen, wo der der purpurne Strahl die ursprüngliche Ebene treffen müssteum wieder die gleiche x-Position auf der neuen, verschobene Ebene zu bekommen.

Scheint aber trotzdem mit den ähnlichen Dreiecken zu gehen - Danke!

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

7

28.09.2016, 18:19

Edit: Achso, sorry, er will also ausrechnen wo der purpurne Strahl die ursprüngliche Ebene trifft


Nein, gerade anders herum: Ich will wissen, wo der der purpurne Strahl die ursprüngliche Ebene treffen müsste
Nein ich glaube du willst ausrechenen, wo der purpurne Strahl die ursprüngliche Ebene treffen sollte.

8

29.09.2016, 08:46

x/(h2+h)*h
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

Werbeanzeige