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

DREAMER2208 17 Messages postés mardi 2 novembre 2004Date d'inscription 20 octobre 2005 Dernière intervention - 1 mai 2005 à 12:11 - Dernière réponse : cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention
- 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 !...
Afficher la suite 

7 réponses

Répondre au sujet
DREAMER2208 17 Messages postés mardi 2 novembre 2004Date d'inscription 20 octobre 2005 Dernière intervention - 1 mai 2005 à 14:20
+3
Utile
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 !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de DREAMER2208
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 2 mai 2005 à 10:31
+3
Utile
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/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Kenavo
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 1 mai 2005 à 13:01
0
Utile
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 !
Commenter la réponse de ni69
DREAMER2208 17 Messages postés mardi 2 novembre 2004Date d'inscription 20 octobre 2005 Dernière intervention - 2 mai 2005 à 17:59
0
Utile
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 !
Commenter la réponse de DREAMER2208
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 2 mai 2005 à 18:09
0
Utile
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/
Commenter la réponse de cs_Kenavo
DREAMER2208 17 Messages postés mardi 2 novembre 2004Date d'inscription 20 octobre 2005 Dernière intervention - 2 mai 2005 à 19:18
0
Utile
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 !
Commenter la réponse de DREAMER2208
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 3 mai 2005 à 07:49
0
Utile
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/
Commenter la réponse de cs_Kenavo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.