Thema: Bezier-Kurve?

Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Bezier-Kurve?

  Alt 14. Apr 2011, 16:52
Das sollte als Starthilfe genügen, oder?
Nimm eine TForm und klatsch ein TImage drauf. Dann:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const
  SEITENRAND = 10;
var
  lap: array[0..3] of TPoint;
begin
  Image1.SetBounds(0, 0, 600, 300);
  lap[0].X := Image1.Width - SEITENRAND;
  lap[0].Y := SEITENRAND;
  lap[1].X := Image1.Width div 15;
  lap[1].Y := SEITENRAND;
  lap[2].X := Image1.Width div 15 * 14;
  lap[2].Y := Image1.Height - SEITENRAND;
  lap[3].X := SEITENRAND;
  lap[3].Y := Image1.Height - SEITENRAND;
  Image1.Canvas.Brush.Color := clWhite;
  Image1.Canvas.FillRect(Rect(0, 0, Image1.Width, Image1.Height));
  Image1.Canvas.Pen.Color := clBlack;
  Image1.Canvas.Pen.Width := 3;
  Image1.Canvas.PolyBezier(lap);

  Image1.Canvas.Ellipse(lap[0].X-3, lap[0].Y-3, lap[0].X+3, lap[0].Y+3);
  Image1.Canvas.Ellipse(lap[1].X-3, lap[1].Y-3, lap[1].X+3, lap[1].Y+3);
  Image1.Canvas.Ellipse(lap[2].X-3, lap[2].Y-3, lap[2].X+3, lap[2].Y+3);
  Image1.Canvas.Ellipse(lap[3].X-3, lap[3].Y-3, lap[3].X+3, lap[3].Y+3);

  Image1.Canvas.TextOut(lap[0].X-20, lap[0].Y+ 3, 'Start');
  Image1.Canvas.TextOut(lap[1].X , lap[1].Y+ 3, 'Steuerpunkt 1');
  Image1.Canvas.TextOut(lap[2].X-40, lap[2].Y-20, 'Steuerpunkt 2');
  Image1.Canvas.TextOut(lap[3].X , lap[3].Y-20, 'Ende');
end;
HTH W.

Geändert von ConnorMcLeod (14. Apr 2011 um 21:01 Uhr) Grund: Punkte und Beschriftung dazu
  Mit Zitat antworten Zitat