Je ne sais pas si le sujet a déjà été traité, j'ai fait quelques recherches, je n'ai rien trouvé.
J'ai passé quelques heures cette après-midi pour calculer la distance entre points sur l'écran d'un ordinateur (on parle de pixels). Prenons, tout a fait au hasard, la résolution d'un CBM-64, 320 points horizontalement et 200 points verticalement. Ce qui fait un total de 64.000 points.
Partons du principe que les points sont numérotés séquentiellement de 1 à 64.000 horizontalement.
Prenons quelques exemple de points:
- 320 : dernier point de la première ligne.
- 321: premier point de la deuxième ligne.
- 63681: premier point de la dernière ligne.
- 64000: dernier point de la dernière ligne.
L'utilisateur introduit deux numéros de point (par exemple 1 et 63681) et le programme calcule la distance (199).
Je me suis amusé sur le PB-100 cette fois-ci je vous livre directement mon programme. Je pense que ce "problème" trouverait une réponse dans les 10 min de toute façon.
Pour ceux qui veulent essayer ...
Pour les autres, voici comment j'ai fait. Je calcule les coordonnées des points grâce à la sous routine en ligne 100. Attention, le point 1 à comme coordonnée (1,1), pas (0,0) et donc, le dernier point est en (320,200). Il y a, évidemment, moyen d'optimiser tout ça. D'ailleurs, je me dis qu'il faudrait éliminer ce test en 110
Ben
Code : Tout sélectionner
10 input"P1=";n:gosub100:a=w:b=z
20 input"P2=";n:gosub100:c=w:d=z
30 e=sqr((c-a)^2+(d-b)^2)
40 print "DIST=";e
90 end
100 z=int(n/320):w=n-z*320
110 if w=0;w=320:goto130
120 z=z+1
130 return