Sign in Join
Wiki copytemporary

Revision 1 of 3, by Circular on 2-15-2024. The page as it is now.

BGRABitmap tutorial 6/fr

Ce tutoriel montre comment utiliser les différents styles de lignes et les formes.

Création d'un nouveau projet

Créez un nouveau projet et ajoutez la référence à BGRABitmap, de la même façon que dans le premier tutoriel.

Ajout d'un dessin

Avec l'inspecteur de projet, ajoutez un gestionnaire OnPaint :

pascal
procedure TForm1.FormPaint(Sender: TObject);
var image: TBGRABitmap;
    c: TBGRAPixel;
begin
  image := TBGRABitmap.Create(ClientWidth, ClientHeight, clBtnFace);
  c := clWindowText;

  image.RectangleAntialias(80,80,300,200, c, 50);

  image.Draw(Canvas,0,0,True);
  image.free;
end;

Exécution du programme

Vous devriez obtenir un rectangle avec un pinceau noir épais :

<figure> <img src="BGRATutorial6a.png" title="BGRATutorial6a.png" /> <figcaption>BGRATutorial6a.png</figcaption> </figure>

Changer le style de jointures

Si vous voulez des coins ronds, vous pouvez spécifier :

pascal
    image.JoinStyle := pjsRound;

Exécution du programme

Le programme devrait dessiner à présent un rectangle avec des coins arrondis :

<figure> <img src="BGRATutorial6b.png" title="BGRATutorial6b.png" /> <figcaption>BGRATutorial6b.png</figcaption> </figure>

Mélanger les styles de jointures

Vous pouvez mélanger les styles de jointures comme ceci :

pascal
    image.FillRoundRectAntialias(80,80,300,200, 20,20, c, [rrTopRightSquare,rrBottomLeftSquare]);

Cette fonction utilise des coins ronds par défaut, mais vous pouvez les remplacer par des coins carrés ou en biseau. Vous devriez obtenir l'image suivante :

<figure> <img src="BGRATutorial6e.png" title="BGRATutorial6e.png" /> <figcaption>BGRATutorial6e.png</figcaption> </figure>

Changer le style de ligne

Vous pouvez dessiner une ligne en pointillés comme cela :

pascal
    image.JoinStyle := pjsBevel;
    image.PenStyle := psDot;
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);

Notez que l'extrémité de la ligne est arrondie.

<figure> <img src="Tutorial6c.png" title="Tutorial6c.png" /> <figcaption>Tutorial6c.png</figcaption> </figure>

Changer les extrémités des lignes

Vous pouvez dessiner une polyligne avec des extrémités carrées comme cela :

pascal
    image.JoinStyle := pjsBevel;
    image.LineCap := pecSquare;
    image.PenStyle := psSolid;
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10);

<figure> <img src="BGRATutorial6d.png" title="BGRATutorial6d.png" /> <figcaption>BGRATutorial6d.png</figcaption> </figure>

Dessin d'une ligne ouverte

Vous pouvez dessiner une ligne qui est ouverte, c'est-à-dire que la fin de la ligne est arrondie à l'intérieur.

pascal
    image.DrawPolyLineAntialias([PointF(40,200), PointF(120,100), PointF(170,140), PointF(250,60)],c,10,False);

<figure> <img src="BGRATutorial6f.png" title="BGRATutorial6f.png" /> <figcaption>BGRATutorial6f.png</figcaption> </figure>

De cette façon, vous pouvez connecter des lignes les unes après les autres sans dessiner la jonction deux fois, ce qui est utile avec le dessin semi-transparent. Vous pouvez comparer comme cela :

pascal
    c := BGRA(0,0,0,128);

    image.DrawLineAntialias(40,150, 120,50, c, 10);
    image.DrawLineAntialias(120,50, 170,90, c, 10);
    image.DrawLineAntialias(170,90, 250,10, c, 10);

    image.DrawLineAntialias(40,250, 120,150, c, 10, False);
    image.DrawLineAntialias(120,150, 170,190, c, 10, False);
    image.DrawLineAntialias(170,190, 250,110, c, 10, True);

<figure> <img src="Tutorial6g.png" title="Tutorial6g.png" /> <figcaption>Tutorial6g.png</figcaption> </figure>

Tutoriel précédent (couches et masques) Tutoriel suivant (splines)


From the Free Pascal wiki, page "BGRABitmap tutorial 6/fr", as it stood on 2024-02-15 after a change by Circular, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.