Einzelnen Beitrag anzeigen

Glados
(Gast)

n/a Beiträge
 
#14

AW: Kopieren-Animation in Painbox zeichnen

  Alt 5. Nov 2017, 17:18
Habe ein bisschen rumprobiert. Ist nicht einfach

Delphi-Quellcode:
var
 bmp: TBitmap;
 iPosXBmp: Integer;
 iOldPos, iNewPos: TPoint;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 val: Integer;
begin
 val := RandomRange(25, 45);

 iNewPos.X := iNewPos.X;
 iNewPos.Y := bmp.Height - val;

 bmp.Canvas.Pen.Color := clBlack;
 bmp.Canvas.MoveTo(iNewPos.X, iNewPos.Y);
 bmp.Canvas.LineTo(iNewPos.X, bmp.Height);

 if iNewPos.X > 0 then
  begin
   bmp.Canvas.Pen.Color := clRed;
   bmp.Canvas.MoveTo(iOldPos.X, iOldPos.Y);
   bmp.Canvas.LineTo(iNewPos.X, iNewPos.Y);
  end;

 iOldPos.X := iNewPos.X;
 iOldPos.Y := bmp.Height - val;


 PaintBox1.Repaint;

 Inc(iNewPos.X, 5);
 if iNewPos.X >= PaintBox1.Width then
  begin
   Dec(iPosXBmp, 5);
   bmp.Width := bmp.Width + 5;
  end;
Zitat:
Du kannst auch, statt das Bitmap zu verbreitern dessen Inhalt um ein Pixel nach links kopieren und dann das rechte Pixel füllen.
Genau das möchte ich, weiß aber nicht wie.
Die Zoomstufe ist mir total egal. Muss ich nicht können.

Bekommt man das irgendwie besser hin, sodass es dem hier ähnelt?
ich dachte durch diese 5-Pixel-Verschiebung bekomme ich ein schönes Dach über den Strichen hin. War wohl falsch gedacht.
https://i.ytimg.com/vi/msVDJSMs8Z0/maxresdefault.jpg
Miniaturansicht angehängter Grafiken
unbenannt.png  

Geändert von Glados ( 5. Nov 2017 um 17:32 Uhr)
  Mit Zitat antworten Zitat