Danke für deine Antwort!
Leider funktioniert mein Programm noch nicht so ganz. Hier mein Lösungsansatz:
Delphi-Quellcode:
VekBande := TVek2d.Create;
VekBande.x := 1;
VekBande.y := m[j];
//Drehwinkel:
Alpha := VekToWinkelinGrad(VekBande) - VekToWinkelInGrad(Richtung);
Alpha := DegToRad(Alpha);
//Neue Richtung:
Richtung.x := Richtung.x * (cos(Alpha)-sin(Alpha)); //richtige Rechnung???
Richtung.y := Richtung.y * (sin(Alpha)+cos(Alpha));
FreeAndNil(VekBande);
Zur Ergänzung noch meine Vektor-To-Winkel Umrechnung:
Delphi-Quellcode:
function VekToWinkelinGrad(Vektor: TVek2d): Real;
var
m: Real;
begin
//Umwandlung des Vektors in eine Steigung, m=->y/->x,Sonderfälle beachten!
if Vektor.x = 0 then
begin
if Vektor.y > 0 then Result := 270;
if Vektor.y < 0 then Result := 90;
end else
if Vektor.y = 0 then
begin
if Vektor.x > 0 then Result := 0;
if Vektor.x < 0 then Result := 180;
end else
begin
m := Vektor.y / Vektor.x; //entspricht tan(alpha)
Result := arctan(m); //Achtung Bogenmaß!
Result := RadToDeg(Result);
if Result < 0 then //Negativen Winkel umwandeln in positiven
Result := 360 + Result;
end;
end;
Ich hoffe, ihr könnt mir Helfen und bedanke mich schonmal...
Gruß,
Noobmaster