Dessin d'une ligne entre 2 points...

Résolu
DREAMER2208 Messages postés 17 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 20 octobre 2005 - 1 mai 2005 à 12:11
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 - 3 mai 2005 à 07:49
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

DREAMER2208 Messages postés 17 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 20 octobre 2005
1 mai 2005 à 14:20
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 !
3
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
2 mai 2005 à 10:31
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/
3
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
1 mai 2005 à 13:01
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 !
0
DREAMER2208 Messages postés 17 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 20 octobre 2005
2 mai 2005 à 17:59
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 !
0

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

Posez votre question
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
2 mai 2005 à 18:09
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/
0
DREAMER2208 Messages postés 17 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 20 octobre 2005
2 mai 2005 à 19:18
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 !
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
3 mai 2005 à 07:49
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/
0