Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bezier-Kurven-Polygon ausfüllen (https://www.delphipraxis.net/74213-bezier-kurven-polygon-ausfuellen.html)

igel457 30. Jul 2006 16:43


Bezier-Kurven-Polygon ausfüllen
 
Schönen guten Morgen,

ich habe ein kleines Problem: TCanvas hat ja die Prozedur "Polygon". Diese zeichnet einen Polygon und füllt diesen mit der Brush.Color Farbe aus.

Gibt es so etwas auch für Bezier-Kurvern? Canvas hält dafür ja nur "PolyBezier" bereit. Da werden aber nur linien, und nichts ausgefülltes gezeichnet.

Kann ich mir von der Windows API irgendwie die Region in der das ganze gezeichnet wird geben lassen, und diese dann ausfüllen?

FloodFill hilft mir in meinem fall auch nicht weiter, da Objekte unter dem Polygon liegen können.

Habe ich eine andere möglichkeit außer eine andere Bezier-Kurven Funktion zu verwenden.

Schon mal danke,
Igel457

Flocke 30. Jul 2006 22:33

Re: Bezier-Kurven-Polygon ausfüllen
 
Du kannst einen Pfad benutzen:
Delphi-Quellcode:
BeginPath(Canvas.Handle);
Canvas.PolyBezier(...);
EndPath(Canvas.Handle);
FillPath(Canvas.Handle);

igel457 31. Jul 2006 12:40

Re: Bezier-Kurven-Polygon ausfüllen
 
Danke für die Antwort. Ich probiere es mal aus.

EDIT:
So, funktioniert. Danke für die Hilfe. Mein Code sieht jetzt so aus:
Delphi-Quellcode:
procedure BezierPolygon(Canvas:TCanvas;Points:array of TPoint);
begin
  BeginPath(Canvas.Handle);
  Canvas.PolyBezier(points);
  EndPath(Canvas.Handle);
  FillPath(Canvas.Handle);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  pusat: array of TPoint;
  i: Integer;
begin
  SetLength(pusat, 4);
  for i := Low(pusat) to High(pusat) do
  begin
    pusat[i].x := Random(Width);
    pusat[i].y := Random(Height);
  end;
  Canvas.Brush.Color := clBlack;
  BezierPolygon(Canvas,pusat);
end;
Danke für die Hilfe! :bounce1:

Igel457


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz