ich habe ein kleines Tool geschrieben mit dem ich schnell und einfach Fotos verkleinern, drehen und zuschneiden kann.
Jedoch kriege ich die Formel zur Drehung (Rotation) nicht hin. Es soll mittels Vektorrechnung sehr einfach gehen. Also habe ich mich, das erste mal seit meiner Schulzeit, mit der Drehung von Vektoren beschäftigt. Mir schwirrt nur noch der Kopf.
Hier der Ausschnitt aus dem Programm:
Code: Alles auswählen
procedure TForm1.CW1Execute(Sender: TObject);
var
Neu: TPoint;
begin
stretched := stretched.RotateCW;
if Rotation = 270 then
Rotation := 0
else
Rotation := Rotation + 90;
Neu.X := PaintBox1.Width div 2 + ((stretched.Height - YPos) - PaintBox1.Height); // Formel stimmt nicht
Neu.Y := PaintBox1.Height div 2 + ((stretched.Width - XPos) - PaintBox1.Width); // Formel stimmt nicht
XPos := Neu.X;
YPos := Neu.Y;
stretched.Draw(PaintBox1.Canvas,XPos,YPos,True);
ZoomFaktor := image.Width / stretched.Width;
PaintBox1.Refresh;
SchreibeStausbar;
end; Wie lautet die richtige Formel?
Hier das ganze Programm: