Calculer les échelles d'axe d'une courbe type nuage de pts

Soyez le premier à donner votre avis sur cette source.

Vue 2 575 fois - Téléchargée 401 fois

Description

Ce code s'adresse à ceux ou celles qui tracent eux même leurs courbes (système d'axes compris). L'un des problèmes qui se posent est celui des échelles: comment calculer le mini, le maxi ainsi que les nombres de ticks des axes X et Y? Et ce, sachant que: d'une part, la courbe doit s'afficher en pleine fenêtre, et que d'autre part, l'échelle doit être humainement lisible (on ne doit pas avoir des écarts entre 2 ticks de 77 ou de 3.456 mais des écarts de 1,2 ou 5 ou 10 ou 50 etc.)

Obtenir le min et le max des abscisses et des ordonnées des points à afficher est chose facile. Je propose de définir une fonction Scaling récupérant le min et le max, et fournissant en retour le nouveau min et le nouveau max ainsi que le nombre de ticks qui va bien. L'appel de la fonction peut se faire pour chacun des deux axes (voire trois si vous faites des courbes à 2 échelles).

Attention: le script est écrit en Lotusscript, qui est un langage proche du VB6 tournant sur le client Lotus Notes d'IBM; il nécessite quelques modifications pour être traduit en VB. En image j'ai donné ce que fournit une courbe issue du package Rmchart (maintenant difficilement trouvable du fait du décès probable de son auteur) et utilisant la fonction Scaling.
La grosse différence entre LotusScript et VB c'est que le passage de paramètres se fait, par défaut, par référence (et non par valeur). En VB, on écrirait le prototype de la fonction sous la forme:

Function Scaling(Mini As Double, Maxi As Double, ByRef ticks As Integer, ByRef newMini As Double, ByRef newMaxi As Double) As Boolean

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.