Tickmark algorithme pour un axe de graphique

Je suis à la recherche d'un algorithme qui place les marques de graduation sur l'axe, en partant d'une série à l'écran, d'une largeur d'affichage, et une fonction de mesure d'une chaîne de largeur pour une marque de graduation.

Par exemple, étant donné que j'ai besoin d'afficher entre 1e-6 et 5e-6 et d'une largeur d'affichage en pixels, l'algorithme de déterminer que je devrais mettre les graduations (par exemple) à 1e-6, 2e-6, 3e-6, 4e-6 et 5e-6. Donné une largeur plus petite, elle peut décider que le placement optimal est qu'au même poste, soit 2e-6 et 4e-6 (depuis mettre plus les graduations elles se chevauchent).

Un algorithme intelligent donneront la préférence pour les graduations multiples de 10, 5 et 2. Aussi, un algorithme intelligent serait symétrique autour de zéro.

InformationsquelleAutor Nick | 2008-10-25