TAILLE DE POINTS

cs_fadoro Messages postés 3 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 29 avril 2005 - 29 avril 2005 à 21:11
FleX2009 Messages postés 22 Date d'inscription mercredi 15 décembre 2004 Statut Membre Dernière intervention 5 mai 2005 - 2 mai 2005 à 17:57
Savez vous comment on peut créer des points de differentes tailles sur un
paintbox?

8 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 04:33
Tu pourrais utiliser la procedure Ellipse du Canvas.



Ainsi tu dessines un cercle d'un diamètre déterminé, rempli de la couleur désirée.



Voici un exemple de procedure :



procedure DessinePoint(Cnvs: TCanvas; X, Y: Word;

const Diametre: Byte = 2);

var Rayon: Byte;

begin

Rayon := Diametre div 2; // nooon...

Cnvs.Brush.Color := clBlack;

Cnvs.Ellipse(X - Rayon, Y - Rayon, X + Rayon, Y + Rayon);

end;



que tu appelles dans l'évènement OnMouseDown du contrôle où tu veux mettre tes points, ici c'est Form1 :



procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var Taille: Byte;

begin

Taille := 6; // diamètre du point

DessinePoint(Canvas, X, Y, Taille);

end;



Bonne prog'
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 mai 2005 à 09:52
Pour dessiner des points, ceux de diamètre impair,

Ta méthode, Ô Japee, ne sait pas bien le faire.

Si le rayon est bien du diamètre la moitié,

Le résultat ne sera pas toujours entier.

Je te propose donc une modification

Pour bien tracer les points non entiers du rayon.





procedure DessinePoint(Cnvs: TCanvas; X, Y: Word;

const Diametre: Byte = 2);

var Rayon: Byte;

begin

Rayon := Diametre div 2; // nooon...

Cnvs.Brush.Color := clBlack;

Cnvs.Ellipse(X - Rayon, Y - Rayon, X - Rayon + Diametre
, Y - Rayon +
Diametre
);

end;






Et si tu veux un point de la taille d'un point (là je sais pas si c'est clair !) utilise la propriété Pixels du canvas



Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !


http://www.pourflorenceethussein.org/
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 14:31
Salut Ken@vo,



Alors, finies les vacances ?



Merci d'avoir précisé ce "point" (lol), j'avais omis de le faire...

Dans le test que j'ai effectué avant de poster ce code, j'avais effectivement réglé le SpinEdit déterminant le diamètre ainsi:



MinValue := 2

Increment := 2



Ayant bien conscience du problème, quoi.



Car ce qui me choque, c'est que pour un diamètre impair, le "point" n'est plus centré.

Mais bon... c'est mon côté maniaque.



Néanmoins, tu as raison, on n'a pas le droit à priori de faire de la discrimination négative envers les chiffres impairs. (diabolicum est)



Bonne prog'



japee
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 15:01
Voilà ce que devient ma procedure, suite au conseil de Ken@vo :



procedure DessinePoint(Cnvs: TCanvas; X, Y: Word;

const D: Byte = 1);

var R: Byte;

begin

if D < 1 then Exit;

if D > 1 then

begin

R := D div 2;

Cnvs.Brush.Color := clBlack;

Cnvs.Ellipse(X - R, Y - R, X - R + D, Y - R + D);

end

else

Cnvs.Pixels[X, Y] := clBlack;

end;



J'ai raccourci les noms de variables pour que la mise en page ne souffre pas trop.

D c'est le diamètre, R le rayon.



Bonne prog'



japee



Bonne prog'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 18:06
Pour mettre les choses au "point", j'ai posté un petit source concernant le sujet :



[code.aspx?ID=31125 POINTS DE DIFFÉRENTS DIAMÈTRES ET COULEURS AVEC LA MÉTHODE ELLIPSE DE TCANVAS]



Point final ?



Bonne prog'



japee
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 mai 2005 à 21:52
Eh oui Japee, "point" final aux vacances ! I'm back !



Et je ne doute pas que ton source soit au point !



Ken@vo


<hr size="2" width="100%">
Code, Code, Codec !

http://www.pourflorenceethussein.org/
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 22:12
Si tu étais pointilleux, tu aurais dit "et je ne doute point..."



japee
0
FleX2009 Messages postés 22 Date d'inscription mercredi 15 décembre 2004 Statut Membre Dernière intervention 5 mai 2005
2 mai 2005 à 17:57
d'ailleur j'ai un problème de pointeur en ce moment... bon allé je vais me faire un steak à point...
0
Rejoignez-nous