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

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

1

19.09.2006, 13:55

Vektorlänge (Einheitsvektor)

Hi,

ich habe Vektoren nicht wirklich verstanden,und weiss einfach nicht wie ich mir das verständlich machen soll.

Und zwar geht es mir um die Vektorlänge 1.

Was ich bisher verstanden habe ist eigentlich nur,dass alle Vektoren die Länge 1 haben müssten solange die Tiefendimension fehlt.

Weil man doch immer einen Anfangspunkt hat und von dort n Punkte nach X wandert und danach n Punkte nach Y, somit wäre der Vektor also immer senkrecht und die Bedingung wäre erfüllt.

Ich gehe also davon aus,dass man immer den Kosinus eines Winkels zwischen 2 Vektoren kennt, solange die Tiefendimension fehlt bzw. unverändert bleibt.

Die Kenntnis über die 3. Koordinate sollte also zur Bedingung ausreichen.
Wozu braucht man dann überhaupt noch eine komplizierte Erklärung bezüglich einer Länge == 1 eines Vektors?

Ich kapier das einfach nicht.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

2

19.09.2006, 14:17

Vorsicht, ich glaube du bringst gerade die Länge eines Vektors mit dem Punkt/Skalarprodukt durcheinander. Auf welche/wessen Aufgabe/Aussage beziehst du dich denn überhaupt?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Phili

unregistriert

3

19.09.2006, 14:50

@DigitalDream
ich glaub du hast da irgendwas falsch verstanden...

Zitat

Was ich bisher verstanden habe ist eigentlich nur,dass alle Vektoren die Länge 1 haben müssten solange die Tiefendimension fehlt.

Vektoren, die die länge 1 haben sollten nennt man Normalenvektoren. ob sie jetzt auf der z-Koordinate 0 sind spielt keine Rolle. Normalenvektoren werden gebraucht um ausschlieslich die Richtung, nicht aber dei Länge anzugeben, was man in der 3D -Grafik vor allem für die Lichtsimulation benötigt...
um einen Vektor zu normalisieren, muss man ihn einfach durch seine Länge teilen(Satz des Pythagoras). Ansonsten würd ic das Buch 3D-Spieleprogrammierung empfehlen-da werden Vektoren gut erklärt.

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

4

19.09.2006, 15:41

Hi ihr 2,

erstmal danke euch beiden für die Versuche mir zu erklären was es damit auf sich hat.

Vergesst das mit dem Länge == 1,mein Problem liegt in der Begrifflichkeit nämlich weil von Geschwindigkeit die Rede ist.
Ich versuche mal zu erklären wie ich es im Buch von David verstanden habe. Abschnitt 2.2.3.4 bis 2.2.3.7,also Punktprodukt,Länge eines Vektors bis zu normalisierten Vektoren.

Um die Länge eines Vektors zu ermitteln,bildet man aus den Vektorkomponenten ein rechtwinkliges Dreieck und berechnet die Wurzel aus (x hoch 2 + y hoch 2).

Wenn man nun die ermittelte Geschwindigkeit also die Länge des Vektors durch den Satz des Pytagaros ermittelt hat kann man das Ergebnis durch den Bewegungsvektor teilen und man erhält eine Länge von 1.

Nun zu meinem Problem
Warum spricht man bitte von Geschwindigkeit ,woher soll die denn kommen?

Für mich ist eine Vektorlänge nur die Entfernung von einem Punkt zu einem anderen Punkt.
Aber Entfernung hat rein garnichts mit Geschwindigkeit zutun.

Wieso spricht man also bei normalisierten Vektoren davon,dass man ihnen Geschwindigkeit abzieht und somit die pure Richtung übrig bleibt?
Denn alles was wir kennen ist lediglich eine x,y koordinate ...
Wie kann man dann von Geschwindigkeit sprechen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

19.09.2006, 15:52

ein vektor ist nichts anderes als ein pfeil (in unserem fall im 3d raum).
was der vektor darstellt ist interpretationssache.
so kann z.b. ein pfeil vom ursprung weg in richtung eines punktes zeigen (sog. ortsvektor) und der hat dann die koordinaten des punktes.
ein vektor kann aber auch eine richtung angeben (z.b. von einem punkt zu einem anderen).
all diese verschiedenen interpretationen ändern nichts daran, dass ein vektor nicht anderes als ein pfeil ist.

die geschwindigkeit ist eine vektorielle größe (sie hat einen betrag und eine richtung im raum). der geschwidigkeitsvektor gibt im prinzip an in welche richtung (pfeil) und wie schnell (betrag des pfeiles) sich ein objekt bewegt.
stell dir vor du hast einen punkt im raum und dieser punkt würde sich mit einer konstanten geschwindigkeit irgendwo hin bewegen.
der geschwindigkeitsvektor würde z.b. so aussehen: (1, 2, -5).
das könnte z.b. bedeuten, dass sich dieser punkt pro sekunde 1 einheit in x, 2 einheiten in y und -5 einheiten in z richtung bewegt.
die "gesamtgeschwidigkeit" in bewegungsrichtung ist dann die länge des vektors.
um den punkt zu bewegen musst du nun einfach nur

n * geschwindigkeitsvektor

zu diesem punkt dazuzählen und du hast die neue position des punktes n sekunden später (als wäre er n sekunden lang mit der geschwindigkeit (1, 2, -5) durch den raum geflogen)

der vektor (1, 2, -5) ist mathematisch trozdem noch immer nur ein pfeil der in eine richtung zeigt und eine gewisse länge hat. die bedeutung einer geschwindigkeit haben wir ihm verliehen.

DigitalDream

Frischling

  • »DigitalDream« ist der Autor dieses Themas

Beiträge: 66

Beruf: Entwickler

  • Private Nachricht senden

6

19.09.2006, 15:59

Zitat von »"dot"«



die geschwindigkeit ist eine vektorielle größe (sie hat einen betrag und eine richtung im raum). der geschwidigkeitsvektor gibt im prinzip an in welche richtung (pfeil) und wie schnell (betrag des pfeiles) sich ein objekt bewegt.
stell dir vor du hast einen punkt im raum und dieser punkt würde sich mit einer konstanten geschwindigkeit irgendwo hin bewegen.
der geschwindigkeitsvektor würde z.b. so aussehen: (1, 2, -5).
das könnte z.b. bedeuten, dass sich dieser punkt pro sekunde 1 einheit in x, 2 einheiten in y und -5 einheiten in z richtung bewegt.
die "gesamtgeschwidigkeit" in bewegungsrichtung ist dann die länge des vektors.


Ich glaube ich weiss nun wo ich meine Probleme mit habe ...
Sowas wie (1,2,-5) ist für mich immer nur eine x,y,z koordinate.
Aber wenn x die Bedeutung von v also Geschwindigkeit bekommt,fällt es mir ziemlich schwer das alles noch grafisch nachvollziehen zu können.

Danke für die Hilfe.
Denke mal das es bald klick macht. ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

19.09.2006, 16:01

(1, 2, -5) sind auch x, y und z koordinaten.
die bedeutung ergibt sich aus dem zusammenhang...

geschwindigkeit bedeutet in unserem zusammenhang doch nichts anderes, als dass sich etwas z.b. in jeder sekunde um 2 meter weiter bewegt (v = 2 m/s).

da wir aber im 3d raum sind, kann sich "etwas" nicht nur in eine richtung bewegen, sondern in 3 richtungen.
die x, y, und z koordinaten eines geschwindigkeitsvektors beschreiben keine punkte, sondern eine differenz.
sie geben dir an wie weit sich "etwas" in jeder sekunde entlang der 3 achsen x, y und z bewegt.

Phili

unregistriert

8

19.09.2006, 16:32

@DigitalDream
Das mit der Geschwindigkeit komt halt daher, dass man Physikalische kräfte auch als Vektoren darstellen kann. In dem Fall ist halt die Länge des Vektors entscheident dafür, wie stark die Kraft ist.
(1|3|2) ist dann halb so stark/schnell wie(2|6|4). Die richtung beider vektoren hingegen ist gleich-deswegen bekommt man beim BNormalisieren auch das selbe ergebnis.

Werbeanzeige