Ligne pointillée

Résolu
mailys6 Messages postés 49 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 1 octobre 2005 - 12 avril 2005 à 15:09
mailys6 Messages postés 49 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 1 octobre 2005 - 12 avril 2005 à 16:22
Dans mon programme, j'ai besoin de faire des lignes pointillées (dashed). Je n'ai pas trouvé de sources ou de personnes ayant eu besoin de faire une telle chose.
J'ai l'intention de faire une fonction ayant pour entrée les coordonnées du point de départ de la ligne et les coordonnées du point d'arrivée.
Je pense que pour faire cette fonction, je vais faire pleins de petites lignes alignées du point de départ au point d'arrivée. A première vue, ca me semble fastidieux mais c'est la seule méthode auquelle j'ai pensé.
Est-ce quelqu'un aurait une autre idée sachant qu'au départ je n'ai que 2 points ?

Merci d'avance,

Mailys
A voir également:

3 réponses

durand2504 Messages postés 163 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 21 février 2006
12 avril 2005 à 15:32
Salut,



le plus simple à mon sens est de faire une boucle et d'utiliser la
fonction permettant de tracer des lignes. comme elle n'existe pas en
flash5, je ne la connait pas bien.



sinon, d'un point de vue conception:



1) calculer la distance entre les deux points dist=(sqr(x2+y2))

2) calculer le nombre de trait de longueur Lt et d'intervalle de longueur Li que l'on peut placer.

Si dist < Lt alors on trace 1ligne de longueur dist

Si Lt<dist<2Lt+Li alors on trace 2 lignes de longueur dist/3 et un intervalle de longueur dist/3

Si dis>2Lt+Li (cas le plus fréquent)

on calcul le nombre de couple 1pointillé+1 intervalle : Nc=Math.floor(dist/(Li+Lt))

on calcul la longeur résiduelle:

lr=dist-Nc

Si lr<Lt, le dernier trait sera plus petit que les autres

Si lr>Lt, alors on aura
le premier et le dernier trait plus petit, sinon la ligne s'arrête
avant le dernier point



3) on trace

prévoir le cas dist<Lt //pas fastidieu

prévoir le cas Lt<dist<2Lt+Li //ça va encore

prévoir les autres cas // utiliser une boucle pour désiner les Nc traits normaux



voilà, si tu as besoin d'explication supplémentaires, n'hésite pas.
3
Prouprou_Sensei Messages postés 517 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 24 octobre 2006 1
12 avril 2005 à 15:32
Je pense que tu pense a la bonne solution je ne voit rien d'autre.

A tchao !
3
mailys6 Messages postés 49 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 1 octobre 2005
12 avril 2005 à 16:22
J'viens de trouver ça :
http://archives.devshed.com/a/ng/441-128/How-to-do-a-dashed-line-in-actionscript-

Le gars a fait une méthode dashTo() dans un .as

Comme je ne peux pas utiliser de .as pour mon programme je vais devoir réécrire la fonction, mais pour ceux qui ne sont pas limités je file le lien.

Merci en tout cas,

Mailys
3
Rejoignez-nous