Vektorverschiebung

M

Maab

Hallo,

ich habe derzeit ein kleines mathematisches Problem was die Vektorverschiebung angeht, im R2.

Ich habe zwei Vektoren (Standort und Ziel).
Man schaut von Standort immer in Richtung Ziel.

Bei Bewegung der Maus, bewegt sich die Kamera [= Standort] in Richtung Ziel, hierbei ist zu erwähnen, dass das mittels Richtungsvektor passiert:

(Verschiebungsfaktor entspricht jetztige Position der Maus - vorherige Position der Maus)

Standort.x -= Richtung.x * VerschiebungsfaktorY;
Standort.y -= Richtung.y * VerschiebungsfaktorY;

Das ganze aufch für das Ziel, damit man immer in diese Richtung "gehen" kann.

Ziel.x -= Richtung.x * VerschiebungsfaktorY;
Ziel.y -= Richtung.y * VerschiebungsfaktorY;

Mein Problem hierbei ist nun, wie ich die Verschiebung auf der X-Achse handeln kann, damit man so gesehen zur Seite läuft.

Ich hatte es vorher so probiert:

Ziel.x += Richtung.x * VerschiebungsfaktorX;
Ziel.y -= Richtung.y * VerschiebungsfaktorX;

Und das gleiche für den Standort.

Hier ist das Problem, wenn ich das Ziel dann in [-2; 2] als Koordinate schiebe, dann wird die Laufrichtung vertauscht (d.h. links = rechts, rechts=links), desweiteren funktioniert die Verschiebung nicht mehr so, wie ich es mir vorstelle, einer der beiden Koordinaten in den 0-Bereich kommt.

Meine Frage ist, wenn ich diese Zwei Punkte gegeben habe, ist es doch theoretisch möglich den 90° Winkel zu nehmen und die Punkte auf der Achse um diesen Winkel und den genannten Faktor zu verschieben, oder ?

Hier ein Bild wie ich mir das Vorstelle
Grün = Achse
Schwarz = Richtungsvektor
Blau = Verschiebung auf dieser Achse (grün)

Danke für eure Hilfe!
 
Huhu du,

jap habe ich auch so gemacht ;)

Habe Grad in Rad umgerechnet (war vom Programm her so gegeben), anschließend die Drehmatrix auf den Richtungsvektor angewendet um den neuen Richtungsvektor zu bekomen und zu guter Letzt den neuen Richtungsvektor mit den Bewegungsfaktor multipliziert und an die entsprechende Position verschoben.

Tada ... Funktioniert!

Danke für deine Hilfe ;)

Maab.
 
Zurück