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

02.03.2009, 20:09

Richtungen berechnen

Hallo zusammen,

kann mir jemand sagen wie ich verschiedene Richtungen berechnen kann z.b. für einen Strahl (RayDirection).
Alos die Blickrichtung ist ja Dir = Look - Pos
aber wie ist es von der Blickrichtung einen Strahl nach links oder Rechts?

Gruß Andy

2

02.03.2009, 20:13

für einen strahl nach links oder rechts zu schicken, brauchst du die blickrichtugn (dir) und den nach oben vektor (up), dann kannst du einfach das kreuzprodukt(x) aus beiden nehmen:
right=dir x up
left =up x dir
für alles andere musst du einen vektor nehmen, den du schon hast und ihn um einen anderen drehen

3

02.03.2009, 20:19

Danke für die schnelle Antwort werts gleich ausprobieren.

4

02.03.2009, 21:13

Und wie macht man es wenn man z.b. einen Strahl 45 Grad nach links bzw nach rechts schießen will von der Blickrichtung aus.

5

02.03.2009, 21:23

http://upload.wikimedia.org/wikipedia/commons/e/e3/Einheitskreis_Ani.gif

Die X und Y Achse hast du ja quasi als Vektoren gegeben.
Möglich, dass es eine Methode ohne sin/cos gibt, aber so isses einfach und es funktioniert.
Lieber dumm fragen, als dumm bleiben!

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

6

03.03.2009, 10:02

einfach gehts mithilfe einer Matrix

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

7

03.03.2009, 10:42

Für den einfachen Fall reicht es auch die Achsen (deiner Basis) der XZ-Ebene zu addieren.

8

03.03.2009, 20:17

Zitat von »"David_pb"«

Für den einfachen Fall reicht es auch die Achsen (deiner Basis) der XZ-Ebene zu addieren.

und anschließend zu normalisieren
@Firefly: für die berechnung von so ner matrix wird aber auch wieder sinus und cosinus verwendet, nicht? Ok, die meisten bibliotheken bieten dafür schon funktionen, die das für einen erledigen, von daher kanns schon einfacher sein, wenn man nicht so gute kenntnisse von 3D/2D-Mathematik hat

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

03.03.2009, 21:15

Zitat von »"PCShadow"«

Zitat von »"David_pb"«

Für den einfachen Fall reicht es auch die Achsen (deiner Basis) der XZ-Ebene zu addieren.

und anschließend zu normalisieren


Kann man, muss man aber nicht. ;)

10

04.03.2009, 16:36

Zitat von »"David_pb"«

Kann man, muss man aber nicht. ;)

da man für einen erhablichen teil der berechnungen, die man dann mit dem Vektor machen kann/will, n normalisierten vektor, oder zumidnest einen, wo man die länge weiß, bruacht, ist das schon ganz sinnvoll ;)

Werbeanzeige