J'ai un graphique, généré par une fonction, et il se zoome automatiquement en fonction de la valeur de la fonction. J'ai déjà les outils graphiques et je peux afficher n'importe quel x, y, largeur, hauteur à haute résolution.Quel algorithme dois-je utiliser pour zoomer un graphique ou mapper en douceur?
J'ai essayé juste claquant au bon endroit:
x = target_x
y = target_y
width = target_width
height = target_height
Mais il est trop nerveux. Il est difficile de dire quelle partie a été agrandie/désactivée.
J'ai aussi essayé de faire ceci:
orig_x = x //ditto for y, width, height, etc
for i=1 to 10
x = i/10*new_x + i/10*orig_x
wait 25ms
Il est plus lisse, mais la première étape est encore trop nerveux. Si orig_x vaut 10 et new_x vaut 1 million, alors le premier saut est trop grand, proche de 1 000 000%. Le dernier saut est seulement de 10%, cependant. Une progression géométrique est encore meilleure mais si je dois changer de direction à mi-zoom, les étapes sont sautillantes.
Quel serait le meilleur effet à utiliser?
Ce zoom créé par cet algorithme s'exécutera dans différentes quantités de temps dans différents environnements. –
@NickLarsen, puis-je demander pourquoi? – tafa
C'est identique à ce que j'ai écrit. – Eyal