Vektor-Kreuzprodukt Verständniss Problem
-
Aber was ist mit 'auseinander nehmen' genmeint??
Soll ich die Gleichung also umstellen oder wie?
-
Weißt du, was Vektoren sind? Du kannst dort problemlos die einzelnen Teile herausnehmen, wenn du sie brauchst, also z.B. nX=(x2*x3-x3*x2)/Betrag(n).
(und eventuell solltest du von vorne mit den Tutorials anfangen)
-
Ich weiß schon was Vektoren sind, jedoch nicht weiß ich noch nicht alles darüber.
Ich meinte aber mit 'nX' 'Normale: X'Was mich bei dieser Gleichung ganz einfach stört ist, dass dort schon ein '=' steht aber auf der linken Seite davon steht nur x1, x2, x3 aber nicht vom EndergebnissVektor (X, Y, Z). Das' verstehe ich nicht
-
Dann nochmals langsam - deine Vektoren bestehen jeweils aus drei Komponenten (x,y und z - oder mit Indizes 1,2 und 3). Und den Normalenvektor des Dreiecks berechnest du als Kreuzprodukt der beiden Richtungsvektoren, also N = XxY.
(vielleicht verwirrt dich auch die Tatsache, daß das dort keine Zuweisung ala C ist, sondern eine methematische Gleichung)
-
ja weiß ich, ein Vektor besteht aus X, Y und Z (in der Computerei teilweise sogar aus X, Y, Z, und W).
ja die mathematische Darstellung stört mich schon etwas. N = XxY bedeutet das nicht einfach 'VectorN = VectorX * VectorY'?
-
LukasBanana schrieb:
N = XxY bedeutet das nicht einfach 'VectorN = VectorX * VectorY'?
Ja, das bedeutet es - du berechnest den Normalenvektor durch (Kreuz)Multiplikation - und die Multiplikation kannst du mit der obigen Formel umsetzen:
vector3D operator^(const vector3D& l,const vector3D& r)// * ist schon fürs Skalarprodukt "reserviert" { return vector3D(l.y*r.z-l.z*r.y, l.z*r.x-l.x*r.z, l.x*r.y-l.y*r.x); } normale = norm(x^y);//norm() zur Skalierung auf Länge 1 nX = normale.x; nY = normale.y; nZ = normale.z;
-
Aber bei Normalen geht es doch um 3 Vektoren
Wo ist denn der 3.?
-
Wieso drei Vektoren? Du hast die beiden Richtungsvektoren des Dreiecks (x und y) und berechnest daraus den Normalenvektor (normale).
Zur Not kannst du die Richtungsvektoren aus der Position der Ecken ermitteln als x=p2-p1 und y=p3-p1. (wie du die einzelnen Punkte da zusammenfasst, ist letztlich egal)
-
Nachtrag: Ich hab mal etwas auf der Seite gestöbert, von der du das Tutorial hast - und eventuell wäre dieser Artikel etwas für dich
-
nehmen wir mal an, du hast folgende vektoren:
r = (3, 2, 4) und s = (5, 7, 1)
dann sind:
r1 = 3
r2 = 2
r3 = 4s1 = 5
s2 = 7
s3 = 1das kreuzprodukt nennen wir mal n
n = (n1, n2, n3)um n1, n2 und n3 jetzt rauszubekommen, benutzt man die formel, die du ganz am anfang geschrieben hast:
n1 = r2*s3 - r3*s2 = 2 - 28 = -27
n2 = r3*s1 - r1*s3 = 4 - 3 = 1
n3 = r1*s2 - r2*s1 = 21 - 10 = 11ein normalenvektor wäre also:
n = (-27, 1, 11)
-
Hier auch noch ein paar Erläuterungen von unserem Mathe-Leherer
-
http://de.wikipedia.org/wiki/Vektor
http://de.wikipedia.org/wiki/KreuzproduktCStoll schrieb:
vector3D operator^(const vector3D& l,const vector3D& r)// * ist schon fürs Skalarprodukt "reserviert"
nicht dein Ernst?!
-
rüdiger schrieb:
"If Java had true garbage collection, most programs would delete themselves upon execution."
Seit wann darf man als Moderator so trollen?
-
Nice site!