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

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

31

07.09.2010, 00:13

In den meisten Fällen reicht es, wenn man hier einen beliebigen Wert nimmt (zumindest wenn du keinen Weltraum-Shooter programmierst, sonst musst du das ganze über eine Kugel berechnen).

32

07.09.2010, 00:17

Zitat

So dreht sich das ganze um die Z Achse aber wie gehts mit den anderen? Also wenn ich das Beispiel oben hab aber um die Y Achse drehen will?
Nein, so wie oben dreht es sich um die y-Achse. Wenn man sich das Koordinatensystem mal aufzeichnet kommt man auf folgendes:
Drehung um x-Achse:
- y = sin
- z = cos
Drehung um y-Achse:
- z = sin
- x = cos
Drehung um z-Achse:
- y = sin
- x = cos

Wenn man um mehrere Achsen gleichzeitig drehen möchte, kann ich dir wie gesagt empfehlen, den Vektor mit einer Matrix zu transformieren. Wenn du diese einfachen Drehungen verstanden hast, kannst das aufwändigere ruhig von D3DX erledigen lassen.

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

33

07.09.2010, 12:42

Meine Erklärung war jetzt nur für 2 Dimensionen, deshalb hast du da wohl was falsches raus bekommen bei deinen Werten.
Ansonsten sollte das schon so stimmen. ;)

34

07.09.2010, 16:30

Nur mal so als Frage wenn ich den Kreis mit dem Pythagoras berechne kommt dann bei den Werten unten 24,5153 raus?
M(-1.0f, -40.0f, -5.0f);
P(-1.0f,-16.0f,0.0f);
Metal ist keine Musik sondern eine Religion.

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

35

07.09.2010, 16:40

Ja, das müsste stimmen.

36

07.09.2010, 16:41

Wenn ichs richtig verstanden hab ist jetzt das der Abstand zwischen meiner Kamera und dem At Vector?
Metal ist keine Musik sondern eine Religion.

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

37

07.09.2010, 16:58

Wenn ichs richtig verstanden hab ist jetzt das der Abstand zwischen meiner Kamera und dem At Vector?

Genau. Die Entfernung zwischen Kamera und LookAt Vektor ist in diesem Fall 24,5153.

38

07.09.2010, 17:18

Es dreht sich so aber irgendwie komisch. Das sind meine Ausgangswerte:
D3DXVECTOR3 pAt = D3DXVECTOR3(-1.0f,-16.0f,0.0f);
Dann siehts so aus:
s.unten
Wenn ich dann allerdings das eingeb(also um 360 grad auf der y achse) müsste es ja so aussehen wie vorher weil ich ja eigentlich nur einmal im Kreis gedreht hab:
D3DXVECTOR3 pAt = D3DXVECTOR3(24.5153*sinf(360),-16.0f,24.5153*cosf(360));
Aber dann siehts so aus:
s.unten
»Fabian Kock« hat folgende Bilder angehängt:
  • Vorher.png
  • Nachher.png
Metal ist keine Musik sondern eine Religion.

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

39

07.09.2010, 17:35

Welche Position hat die Kamera? Du hast ja nur zwei Werte für pAt!

Edit: Du schaust mit deiner Kamera ja von oben drauf. Das heißt, Kamera und pAt liegen nicht in der gleichen Ebene.
Jetzt ist eben die Frage, willst du die Kamera um ihre eigene y-Achse drehen, oder um die y-Achse deines Koordinatensystems?

40

07.09.2010, 17:39

Wieso X,Y,Z oder?
Die Kamera Position ist g_vCameraPos = D3DXVECTOR3(-1.0f, -40.0f, -5.0f)
Metal ist keine Musik sondern eine Religion.

Werbeanzeige