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

CookieWarrior

Frischling

  • »CookieWarrior« ist der Autor dieses Themas

Beiträge: 37

Beruf: Schüler

  • Private Nachricht senden

1

18.06.2011, 18:28

Kameraposition um lookAt mit Winkel ermitteln.

Hallo Community,

also ich würde von euch gerne wissen wie ich die Kameraposition mit nur lookAt(0, 0, 0) und dem Winkel(45) und der Entfernung zum Mittelpunkt(60) berechnen kann. Die Y - Position ist konstant bei 50 ich benötige allerdings nur noch die X und Z - Koordinaten. Da wir das Thema Winkelfunktionen in Mathe noch nicht hatten bin ich momentan etwas ratlos und hoffe ihr könnt mir helfen.

MfG CookieWarrior.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

18.06.2011, 19:06

Auf welchse Achse beziehen sich die 45° denn?
@D13_Dreinig

Mastermind

unregistriert

3

18.06.2011, 19:12

Vermutlich hat er Polarkoordinaten in der XZ-Ebene und Y wird dann einfach um einen Offset verschoben. Aber da er selbst keine Ahnung zu haben scheint was er tut macht es wenig Sinn da weiter drüber zu philosophieren.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

18.06.2011, 20:10

Ohne Winkelfunktionen geht das leider nicht. Schau dir eben mal an wie die funktionieren, so schwer ist das nicht. Das Stichwort Polarkoordinaten ist ja schon gefallen.

CookieWarrior

Frischling

  • »CookieWarrior« ist der Autor dieses Themas

Beiträge: 37

Beruf: Schüler

  • Private Nachricht senden

5

19.06.2011, 11:08

Danke erst mal für die Hilfe allerdings wie Mastermind schon erkannt hat ich habe keinen Plan was ich machen soll, da wie ich oben schon erwähnt habe noch keine Winkelfunktionen in Mathe hatte. Hier ist etwas Code vielleicht sagt euch das mehr worauf ich genau hinaus will:
[CPP]
// Kamera ausrichten
camera.setLookAt(player.getPosition());
camera.setPosition(sf::Vector3f(/*cosf(player.getRotation().y) * 60 */, player.getPosition().y + 50 ,/* cosf(player.getRotation().y) * 60 */));
[CPP]
Also ich habe den Winkel der Rotation des Spielers um Y gegeben und möchte die Kamera im Abstand von 60 hinter dem Spieler aufstellen.

Hier ist nochmal ein Bild wo ich die X und Z Position der Kamera brauche:

(Link)

Ich muss also die 60 Grad vom Radius auf X und Z der Kamera verteilen aber wie?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »CookieWarrior« (19.06.2011, 11:15)


Mastermind

unregistriert

6

19.06.2011, 11:26

Dot hat dir leider den Link zu Kugelkoordinaten gegeben weil er fälschlicherweise davon ausging dass du was in 3D machen willst, während du tatsächlich, wie ich oben schon vermutet hab was in der XZ Ebene machen willst und Y dann einfach setzt. Um dann alle total zu verwirren hat er seinen Link dann auch noch mit "Polarkoordinaten" und nicht mit Kugelkoordinaten überschrieben.

Der Artikel über Polarkoordinaten http://de.wikipedia.org/wiki/Polarkoordinaten ist weil er vom 2D Fall ausgeht leichter zu goutieren, er enthält viele bunte Bilder und insbesondere das was du willst, nämlich die Umrechnung von Polarkoordinaten in kartesische Koordinaten.

Gleich als Warnung: Das alles (einschließlich deines lookAt) wird nur solange funktionieren wie sich der Spieler im Ursprung (Ich denke das meintest du mit Mittelpunkt) befindet. In dem Moment wo sich der Spieler bewegt, wirst du etwas mehr Gehirn investieren müssen. Nicht viel mehr, aber etwas.

CookieWarrior

Frischling

  • »CookieWarrior« ist der Autor dieses Themas

Beiträge: 37

Beruf: Schüler

  • Private Nachricht senden

7

19.06.2011, 11:33

Danke erst mal für die Hilfe ich versuch jetzt erst mal das alles so umzusetzen. Wenn sich der Spieler bewegt muss ich auch noch dessen Position in der Kamera Position berücksichtigen, ist das, dass was du meinst?

Mastermind

unregistriert

8

19.06.2011, 11:34

Im Prinzip ja.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

19.06.2011, 11:35

Dot hat dir leider den Link zu Kugelkoordinaten gegeben weil er fälschlicherweise davon ausging dass du was in 3D machen willst[...]

Korrekt, davon ging ich und geh ich aus. Ich ging davon aus dass er eigentlich eine orbitale Kamera machen will wozu er Kugelkoordinaten brauchen wird und das nur nicht so ganz auszudrücken wusste.

Um dann alle total zu verwirren hat er seinen Link dann auch noch mit "Polarkoordinaten" und nicht mit Kugelkoordinaten überschrieben.

Kugelkoordianten sind eine Form räumlicher Polarkoordinaten und ich ging eben davon aus dass das ist was er haben will. Und um ihn eben genau nicht zu verwirren hab ich den Link mit "Polarkoordinaten" betitelt damit er nicht denkt dein Vorschlag und mein Vorschlag gingen in verschiedene Richtungen...

Mastermind

unregistriert

10

19.06.2011, 11:39

Zitat

Korrekt, davon ging ich und geh ich aus.

Davon gehst du immer noch aus, obwohl er mittlerweile mehr als deutlich gemacht hat dass er was anderes will? Wenn man ganz Korrekt sein will sind das was er will meinentwegen Zylinderkoordinaten, aber jedenfalls keine Kugelkoordinaten.

EDIT:

Zitat

Ich ging davon aus dass er eigentlich eine orbitale Kamera machen will wozu er Kugelkoordinaten brauchen wird


In der Majorität aller Spiele die ich kenne ist die Achse des Kameraorbits wenn es eins gibt fix und eben die Hochachse. Das liegt daran dass es meistens einen Boden gibt und "unter den Boden zu rotieren" keinen Sinn macht. Um das umzusetzen wird er keine Kugelkoordinaten brauchen und da der Rest seiner Engine offensichtlich kartesische Koordinaten verwendet machen sie es nur unnötig kompliziert.

Es ist traurig dass er als vollkommener Anfänger ohne irgendwelche Vorbildung das sofort erkannt hat während du hier als sogenannter Profi in Sphären (no pun intended) abdriftest, die keinen weiterbringen.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mastermind« (19.06.2011, 11:45)


Werbeanzeige