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

04.11.2011, 13:29

Die Vektor-Klasse

Hallo,

in der Vektor klasse wurde eine Multikplikation von zwei Vektoren eingeführt:

Vektor a * Vektor b
(a.x * b.x, a.y * b.y, a.z * b.z)

Jetzt habe ich mich gefragt wozu man das braucht, weil rein mathematisch habe
ich noch nie gehört das man auf diese Weise zwei Vektoren miteinander multipliziert.
Skalar und Kreuz ist klar. Aber so?

Wofür? :)

Beiträge: 721

Wohnort: /dev/null

Beruf: Software-Entwickler/Nerd

  • Private Nachricht senden

2

04.11.2011, 13:56

Vektoren multipliziert man komponentenweise...

3

04.11.2011, 13:57


(a.x * b.x, a.y * b.y, a.z * b.z)

Hab ich doch geschrieben, aber ich fragte wozu man es braucht.

Beiträge: 721

Wohnort: /dev/null

Beruf: Software-Entwickler/Nerd

  • Private Nachricht senden

4

04.11.2011, 14:00

Ja, um Vektoren zu multiplizieren. ;) Da gibt es so extrem viele Anwendungsgebiete. Beispielsweise in einer Physik-Engine.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

04.11.2011, 14:32

Es ist richtig, dass rein mathematisch gesehen eine Multiplikation von Vektoren nicht definiert ist. Allerdings beschreibt man z.B. Farbwerte oft als Vektoren und dort will man Operationen wie z.B. die Multiplikation dann eben für jeden Farbkanal ausführen. Daher definiert man eben einfach einen operator * der komponentenweise multipliziert...

Bu1

Frischling

Beiträge: 66

Beruf: Schüler

  • Private Nachricht senden

6

04.11.2011, 14:35

z.B wenn du einen Vektor nur auf einer Achse skalieren wilst:

Quellcode

1
Vektor = Vektor * (1.0, 2.0, 1.0)

Zitat

Sämtliche Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt :!:
Sie können nach belieben kopiert und weiterverwändet werden. :P

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

04.11.2011, 14:58

z.B wenn du einen Vektor nur auf einer Achse skalieren wilst:

Quellcode

1
Vektor = Vektor * (1.0, 2.0, 1.0)

Dann würdest du wohl eher sagen:

Quellcode

1
Vektor.y *= 2.0;


Aber vielleicht möchte man ja auf allen Achsen skalieren, aber eben unterschiedlich ;)

8

04.11.2011, 15:49

Ok Danke, mir reicht es zu wissen, dass ich es früher oder später brauchen werde xD

Bu1

Frischling

Beiträge: 66

Beruf: Schüler

  • Private Nachricht senden

9

04.11.2011, 19:46

z.B wenn du einen Vektor nur auf einer Achse skalieren wilst:

Quellcode

1
Vektor = Vektor * (1.0, 2.0, 1.0)

Dann würdest du wohl eher sagen:

Quellcode

1
Vektor.y *= 2.0;


Aber vielleicht möchte man ja auf allen Achsen skalieren, aber eben unterschiedlich ;)

Stimmt mein Beispiel war wohl nicht so gut :(

Also

Quellcode

1
Vektor = Vektor * (1.5, 2.0, 3.9)

:D

Zitat

Sämtliche Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt :!:
Sie können nach belieben kopiert und weiterverwändet werden. :P

Werbeanzeige