Bonjour à tous !
Je suis actuellement en train de bosser sur l'implémentation d'un zoom sur mes PlotCharts et je rencontre un problème: je n'arrive pas à récupérer les bonnes valeurs en convertissant la position de ma souris sur monChart en valeur sur l'axe horizontal.
Avec les events mouseDown et mouseUp je récupère donc les deux extrémités de intervalle que l'utilisateur veut zoomer.
Pour transformer les positions de la souris en valeurs (sur un DateTimeAxis ici) je ne peux plus utiliser la méthode localToData de monChart puisque "deprecated", je vérifie donc l'existence d'au moins un PlotSeries dans monChart pour ensuite utiliser la méthode localToData de mon plotSeries.
localToData prend en paramètre un Point, que je crée avec monChart.mouseX et monChart.mouseY lors de chaque event mouseDown et mouseUp (je n'utilise pas localX et localY car en survolant par exemple les points de mon chart ces valeurs varient bizarement, ainsi que pour tout les autres éléments visuel (cadrillage, ...) de mon chart).
Avec localToData de monChart, les valeurs sont exactes, mais bug à certains endroits... je ne comprend pas pourquoi (surement survol du cadrillage ou autre...)). Avec localToData de mon plotSeries, les valeurs bugs aussi mais beaucoup moins. Le problème cette fois est qu'il ne prend pas en compte l'axe vertical situé à gauche et décale donc toutes les valeurs. (Si l'utilisateur click a un endroit, c'est comme si il avait cliqué au même endroit moins la largeur de l'axe vertical en ordonnée, ce qui est très gênant. Et je n'ai pas trouver comment récupérer la largeur de cet axe.)
(En utilisant monChart.mouseX au lieu de localX les valeurs ne varient plus bizarrement et je n'ai plus que le problème du décalage à cause de l'axe de gauche.)
Merci d'avance à tous ceux qui pencheront sur mon problème.
ps: désolé pour tous ces edit mais j'essaye de vous clarifier la situation
Partager