Table à 2 axes

Signaler
Messages postés
104
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
29 avril 2008
-
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
-
Table à 2 axes


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Bonjour,





J’aurais voulu avoir vos avis !





J’ai une table XY. Le but de mon programme est d’enregistrer les coordonnées de la souris et de les redessinées sur ma table.





Le but et de tracer le chemin le plus court entre 2 points.. Normal..





Pour mon algo :


<OL style="MARGIN-TOP: 0cm" type=1>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Si les points sont sur la même ligne ou même colonne pas de problème :</LI></OL>



Ex : p1.X=5 p1.Y=23 p2.X=15 p2.Y=23





Dans ce cas je me déplace vers de 15-5=10 pour arriver au point… jusque là pas de problème.





<OL style="MARGIN-TOP: 0cm" type=1 start=2>
<LI class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt">Si les points ne sont pas sur la même ligne ni la colonne</LI></OL>



Ex : p1.X=4 p1.Y=4 p2.X=8 p2.Y=8





Pour le chemin le plus court : 8-4 =4 8-4=4 donc 4/4=1


Dans se cas je descends tout les 1.. ça forme un escalier régulié de près.. pas de problème ici.





Ca se complique si :


Ex : p1.X=4 p1.Y=4 p2.X=13 p2.Y=9





13-4=11 9-4=5 11/5=2.2 Mon problème c’est que ma table ne peut faire qu’un pas. Je ne peux pas faire de 0.2.





Que me conseillez-vous ?


J’avais comme ID de faire un algo qui arrondi les nombres de sorte que le quotient de mes divisions soit entier !


Ou d’arrondir ma division ex 2.2 je l’arrondit à 2 puis le chemin qui reste à faire je le fait à la fin de mon trait, je m’explique si je dois descendre de 4 : 4*0.2=0.8 je l’arrondi à 1 et je fais un pas pour compenser se qu’il manque.








Ou avez-vous une autre solution ?


Que me conseillez-vous ?

5 réponses

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
21
J'avais eu le même problème avec la rotation d'une image lorsque que tu veux tourner de 15° par exemple.



Le mieux est comme tu pense faire. Tu prend l'équation de la droite
y=mx+p et tu arrondi à chaque point. Ca te donnera un bon truc. Moi ca
marchait impeccable pour une rotation donc je pense que pour toi ca
sera cool.

Billou_13
Bask En Force
Messages postés
104
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
29 avril 2008
1
le problème avec l'arrondi est que si je tombe sur un nombre 1er.. ca bloque !
Messages postés
104
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
29 avril 2008
1
Non... je dis n'importe quoi...

Je vais prendre cette solution d'arrondi !
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
21
Désolé pour ma réponse si j'ai pas été tout a fait net tout a l'heure. Si je me penche un peu plus sur a question.

Pour ta droite passant par les points X1=4, Y1=4 et X2=13,Y2=9

tu cherche l'équation Y=mX+p de la droite passant par ces deux points.

| 4=m4+p
|9=m13+p

qui te donne m=(9-4)/(13-4)=5/11 et p=4-4*(5/11)=(44-20)/11=24/11

a partir de la, tu calcule tout tes points en arrondissant :
pour X=1 -> Y=(5/11)*1+(24/11)=29/11=2,6363 , tu arrondi a 3

etc... pour X=2,3,4
bien sur pour X=4 -> Y=(5/11)*4+(24/11)=44/11=4
et X=13 donnera Y=9

voila plus qu'a placer tes points. Normalement, si tu met un (int) au resultat , il devrait t'arrondir tout seul

Bonne programmationn, @+

Billou_13
Bask En Force
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
21
Désolé, je me suius tromper dans mes calculs :

m=5/9 et donc p=16/9 (et oui 13-4=9, je suis un boulet)

on m'excusera car il est tard. Mais bon, le raisonnement est bon ! LOL

Tchao,

Billou_13
Bask En Force