Algorithme de Bresenham

Je sais ce que vous allez me dire : pourquoi se casser la tête à tracer un segment point-par-point alors que le Basic est pourvu de l'instruction Line( 
Hé bien c'est dans l'intention de simplifier/tester l'algorithme en vue d'une adaptation en assembleur
C'est surtout dans la boucle que la simplification est recherchée.
Pour l'instant , je me borne à un seul cas de figure : le tracé part du point (A,B) vers (C,D) avec A<C et B≥D
1ère version:
2ème version:

3ème version:
...Quelqu'un a une idée ?
(Pour plus d'infos : http://home.mis.u-picardie.fr/~choplin/ ... enham.html )

Hé bien c'est dans l'intention de simplifier/tester l'algorithme en vue d'une adaptation en assembleur

C'est surtout dans la boucle que la simplification est recherchée.
Pour l'instant , je me borne à un seul cas de figure : le tracé part du point (A,B) vers (C,D) avec A<C et B≥D
1ère version:
- Code: Select all
:ClrDraw
:0→A:0→B:90→C:17→D ; initialise les coordonnées
:C-A→M ; c'est Δx
:D-B→N ; c'est Δy
:0→E
:B→Y
:For(X,A,C
:Pxl-on(Y,X
:If 2E<M-2N:Goto 0
:Y+1→Y
:E-2M→E
:Lbl 0:E+2N→E
:End
2ème version:
- Code: Select all
:ClrDraw
:0→A:0→B:90→C:17→D
:2(C-A→M
:2(D-B→N
:C-A-N→H
:0→E
:B→Y
:For(X,A,C
:Pxl-on(Y,X
:If E-H<0:Goto 0
:Y+1→Y
:E-M→E
:Lbl 0:E+N→E
:End

3ème version:
...Quelqu'un a une idée ?

(Pour plus d'infos : http://home.mis.u-picardie.fr/~choplin/ ... enham.html )