Normalisieren von Vectoren
-
Wozu? Ja das würde mich mal interessieren. Wenn ich weiss wofür das gut ist könnte ich damit was anfangen.
Und noch ein Frage hinterher. Wenn ich einen Vektor x12.4, y33.2, z881.3 normaliziere.. Es könne doch nicht alle 1 sein. das währe ja ganz schön blöd.
Bedeutet die ein etwa das die Werte im Vektor zwischen 0 und 1 liegen?
-
Die Werte liegen zwischen 0 und 1, und ergeben zusammengezählt 1
Wozu mhhh - z.B. zum angeben der Vorderseite eines Meshes durch Normalen. Zur Lichtberechnung...
-
Vielleicht hilft das was zu veranschaulichung:
void Normalize( void ) { float length = this->Length(), len = 0; if (length == 0) return; len = 1.0f / length; x *= len; y *= len; z *= len; }
-
Die Länge des Vektors ist danach 1. Zeigt aber immer noch in die gleiche Richtung.
Es fällt mir immer noch schwer zu verstehen wozu? Denn würde ich den Vektor so lassen wir er ist. Dann Zeigt er doch auch in die gleiche Richtung.
-
Original erstellt von <gast>:
Die Länge des Vektors ist danach 1. Zeigt aber immer noch in die gleiche Richtung.
Es fällt mir immer noch schwer zu verstehen wozu? Denn würde ich den Vektor so lassen wir er ist. Dann Zeigt er doch auch in die gleiche Richtung.Original erstellt von <gast>:
Die Länge des Vektors ist danach 1. Zeigt aber immer noch in die gleiche Richtung.
Es fällt mir immer noch schwer zu verstehen wozu? Denn würde ich den Vektor so lassen wir er ist. Dann Zeigt er doch auch in die gleiche Richtung.Wenn Du diesen jetzt für irgendwelche Berechnungen mit 'nem anderen Vektor multiplizierst, dann wird im Ergebnisvektor nur die RICHTUNG des Vektors "einbezogen", nicht seine Länge (da diese 1 ist). Dies wird des öfteren benötigt...
Es ist ähnlich sin/cos im Einheitskreis.
Warum macht man die Hypotenuse = 1??
Richtig, damit die Kanten unabhängig von dieser = dem Sinus bzw. Cosinus sind...
-
Wirst schon noch merken wozu, wenn du dich ein bischen mit Vektorrechnung beschäftigst.
-
Danke für die Antworten. Langsam wir einiges klarer. Ich bin gerade in einer Phase in der ich viel weiss jedoc nichts programmieren kann. Weil wichtige Teile der Materie ich nicht verstanden habe oder nur teilweise.
-
[QUOTE]Original erstellt von SnorreDev:
Die Werte liegen zwischen 0 und 1, und ergeben zusammengezählt 1das ist falsch.
die länge ist 1, nicht die summe von x, y und z!
die länge ist wurzel(x²+y²+z²)!
-
Original erstellt von <Gloria>:
[QUOTE]Original erstellt von SnorreDev:
[qb]Die Werte liegen zwischen 0 und 1, und ergeben zusammengezählt 1das ist falsch.
die länge ist 1, nicht die summe von x, y und z!
die länge ist wurzel(x²+y²+z²)![/QB]Ooops. Stimmt. NATÜRLICH!
Daß das keinem aufgefallen ist... *g**schäm*
-
Sorry für den falschen ausdruck
- Klar ist die Länge 1 *g