cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
23 sept. 2007 à 19:08
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
23 sept. 2007 à 23:04
Salut à tous,
petite question :
je trace un triangle sur le canvas d'un paintbox et je le remplis avec une couleur :
with PaintBox1.Canvas do
begin
Pen.Color := clRed;
moveto(40, 40);
lineto(200, 150);
lineto(75, 350);
lineto(40, 40);
Brush.Color := clYellow;
Brush.STyle := bsSolid;
FloodFill(42, 42, clRed, fsBorder);
end;
ça marche MAIS, si je mets :
FloodFill(40, 40, clRed, fsBorder);
ou
FloodFill(41, 42, clRed, fsBorder);
ça marche plus...
hummm, je suppose que le point de coordonnée (x,y) dans FloodFill doit appartenir nécessairement au triangle..
mais pourquoi un écart de 2 ??
et comme j'ai une idée à développer faut-il plus généralement utiliser les coordonnées du barycentre du triangle ?
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 23 sept. 2007 à 19:54
dans ton cas, le floodfill se fait du pixel (x,y) dans toutes les directions jusqu'a trouver un pixel rouge. Or le pixel (x,y) est rouge, donc il s'arrete directement.
Je te conseille d'utiliser la fonction TCanvas.Polygon qui s'occupe aussi du remplissage.