Articles avec le tag « Optimisation ».

VG5000µ, simplification du tracé du cercle

Avec de passer à l'implémentation en BASIC du cercle décrit dans un article précédent, passons un peu par une phase de simplification. Cet article va contenir quelques lignes de mathématiques.

L'outil mathématique le plus complexe utilisé est celui des factorisations et développements de carrés. Les identités remarquables seront d'un grand secours. Niveau de fin de collège je crois.

Pour rappel, voici l'algorithme de tracé de cercle de Bresenham :

  • initialiser cx et cy avec les coordonnées du centre du cercle, r avec son rayon
  • initialiser (x, y) à (0, r), c'est à dire le point au sommet du cercle.
  • tant que x ≤ y
    • tracer le pixel(x + cx, y + cy) et ses sept symétries.
    • calculer $m = (x+1)^2 + (y-0.5)^2 - r^2$
    • si m ≥ 0 alors $x \leftarrow x + 1$ et $y \leftarrow y - 1$
    • sinon $x \leftarrow x + 1$
  • fin

On pourrait l'implémenter tel quel. Mais je veux …

Lire la suite →