Dessin d'une ligne entre 2 points... [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
20 octobre 2005
-
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
-
Salut tout le monde ;o)



j'ai un petit problème, je souhaite dessiner une ligne directement sur
la form, en connaissant les coordonnées de ses deux extrémités... Mais
je ne sais pas comment faire... Voici mon code :





procedure Tprincipal.maj_graph();

begin

//Calcul des coordonnées des points

if ((valeur1 1) and (valeur 1)) or ((valeur1 = 0) and (valeur = 0)) then

begin

coordX := coordX1 + 6;

coordY := coordY1;

end;

if (valeur1 1) and (valeur 0) then

begin

coordX := coordX1;

coordY := coordY1 + 50;

end;

if (valeur1 0) and (valeur 1) then

begin

coordX := coordX1;

coordY := coordY1 - 50;

end;

//Dessins points





//Décalage des coordonnées dans le temps

coordX1 := coordX;

coordY1 := coordY;

valeur1 := valeur;

end;



Merci d'avance de votre aide !...

7 réponses

Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
20 octobre 2005

Salut tout le monde ;o)



Le problème avec LineTo, c'est qu'il prend comme origine le curseur, si
j'ai bien tout compris. J'ai réussi à trouver comment faire, je me sert
d'un canvas :



begin

Canvas.Brush.Color := cllime;

canvas.Rectangle(coordX1,coordY1,coordX + 3,coordY + 3);

end;



Et la sa marche impec ! Merci quand même ni69 !



Bonne prog à tous !
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
T'as de droles de méthode pour tracer des lignes !......




LineTo
trace une ligne à partir des coordonnées de la plume. Pour modifier ces
coordonnées on utilise MoveTo. Si on veut une ligne de (X0,Y0) à
(X1,Y1), ça donne :



Canvas.MoveTo(X0,Y0);

Canvas.LineTo(X1,Y1);



Ken@vo


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

http://www.pourflorenceethussein.org/
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
10
Tu peux utiliser LineTo pour dessiner une ligne. Cherche cette instruction dans l'aide de Delphi pour en savoir plus...


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
20 octobre 2005

Merci, c'est vrai que c'est plus simple... Avec ma méthode, je
m'embrouillais avec l'épaisseur de la ligne, ce qui provoque un
décalage de mes traits... Par contre, je ne sais pas encore comment
mettre la ligne en couleur... Parce qu'avec ma méthode précédente, la
couleur s'appliquait à l'intérieur du rectangle, mais une ligne n'a pas
d'épaisseur...



Merci bcp !
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Pour la couleur :



Canvas.pen.color := clxxx;


Et regarde toutes les propriétés du TPen pour l'épaisseur, le style (continue, pointillé, ....)





Ken@vo


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

http://www.pourflorenceethussein.org/
Messages postés
17
Date d'inscription
mardi 2 novembre 2004
Statut
Membre
Dernière intervention
20 octobre 2005

Merci beaucoup Kenavo ! J'aurais une dernière question, c'est comment
effacer ce qui a été tracé... J'avais réussi à trouver une méthode,
mais elle effaçais aussi l'image que j'utilise comme fond...Donc j'ai
abandonner, et j'arrive plus à la retrouver... si qqun connais, sa
m'arrangerais... Merci beaucoup d'avance ! et bonne prog !
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
Tu as deux méthodes pour effacer un ligne sur un fond :

1 - Tout redessiner sauf la ligne que tu veux effacer.

2 - Dessiner les lignes avec le propriété Pen.Mode à pmXor (fonction
Xor entre le fond et la couleur de la ligne). Pour en effacer une, il
suffit de la retracer en mode pmXor avec la même couleur .



Ken@vo


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

http://www.pourflorenceethussein.org/