Hallo,
ich lasse ein Image auf meiner Form rotieren. Das mache ich so:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var wx, wy: Real;
begin
DoubleBuffered:=True;
Winkel:=0;
// Radius berechnen
wx:=(ClientWidth / 2) - Image1.Width;
wy:=(ClientHeight / 2) - Image1.Height;
Image1.Left:=Round((Cos(Winkel) * wx) + ClientWidth / 2 - (Image1.Width / 2));
Image1.Top:=Round((Sin(Winkel) * wy) + ClientHeight / 2 - (Image1.Height / 2));
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var wx, wy: Real;
k:integer;
begin
Winkel:=Winkel - 0.005;
// Radius berechnen
wx:=(ClientWidth / 2) - Image1.Width;
wy:=(ClientHeight / 2) - Image1.Height;
Image1.Left:=Round((Cos(Winkel) * wx) + ClientWidth / 2 - (Image1.Width / 2));
Image1.Top:=Round((Sin(Winkel) * wy) + ClientHeight / 2 - (Image1.Height / 2));
end;
Wenn das Image sich am größten Punkt x befindet, dass soll die Image breite 0 sein.
Wenn das Image sich am niedrigsten Punkt x befindet, dann soll die Image breite auch 0 sein.
Wenn das Image sich am größen Punkt y befindet, dann soll das Image die volle breite haben. Also aus der original datei.
Wenn sich das Image am niedrigsten Punkt y befindet, dann soll es auch die volle breite haben.
Wie kann ich das machen?
MFG Christian18