Bonjour à toutes et à tous,

Je souhaite tracer une ligne composée de nombreux points sur un bitmap. En test, je crée un fichier de 1000 points aléatoires
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    Trace: array of TPointF;
    bmpWork: TBGRABitmap;
 
...
 
  bmpWork := TBGRABitmap.Create('MonFichier.jpg');
  SetLength(Trace, 1000);
  for i:= 0 to 999 do
  begin
    Trace[i].x:= Random(500)+500;
    Trace[i].y:= Random(500)+300;
  end;
  bmpWork.DrawPolyLineAntialias(Trace, $FF0000, 2);
  for i:= 0 to 998 do
    bmpWork.DrawLineAntialias(Trace[i].x, Trace[i].y, Trace[i+1].x, Trace[i+1].y, $FF0000, 2);
L'utilisation de la méthode "DrawPolyLineAntialias" prends 20 secondes !!! alors que la boucle utilisant "DrawLineAntialias" et donnant le même résultat ne prend qu'une fraction de seconde.

Il y a quelques chose que je n'ai pas vu, pas compris ?

Merci pour vos renseignements.

Pierre