Actuellement, mon logiciel utilise la méthode HitTest()
d'un objet graphique dans MSCharts, mais en augmentant le nombre de points de données sur mon graphique, combiné avec d'autres facteurs, cela peut avoir un impact énorme sur les performances. Je me demandais s'il existe des alternatives que vous connaissez pour fournir la même fonctionnalité (obtenir la coordonnée X sur le graphique pour la position du curseur), mais sans le succès de la performance comme essai de coup semble être une façon très brute de obtenir ma réponse.Alternatives à la HitTest()
Mon tableau est créé à partir de la classe System.Windows.Forms.DataVisualization.Charting.Chart
Modifier pour plus de clarté: Je dois trouver la position d'une ligne sur mon graphique pour l'utiliser pour d'autres calculs.
Une fonction HitTest() ne doit être utilisée que dans le code de gestion des événements souris. Cela tourne à l'heure humaine, brûler des dizaines de millisecondes n'est pas un problème. Si cela prend plus de temps que cela, alors vous bourrez beaucoup trop de données dans le graphique, beaucoup plus que ce qu'il pourrait afficher en détail. Donc, filtrez vos données mieux. –
Le graphique nécessite la quantité de données, le HitTest est utilisé pour déterminer les informations de graphique affichées à côté du curseur afin que l'utilisateur peut y exécuter la souris le long du graphique et voir effectivement des données précises à leur emplacement de la souris. Bien que peut-être une solution serait de prendre un ensemble moyen de points de données au lieu d'en utiliser autant, mais cette perte de précision n'est pas idéale. –
Une souris n'a qu'une précision de pixel. Vous n'avez donc jamais besoin de plus de points de données que de pixels sur l'écran. Considérez également ce que cela signifie pour votre fonctionnalité prévue, l'utilisateur ne peut jamais voir les données pour deux points qui se chevauchent dans le graphique. Last but not least, vous pouvez facilement vous assurer que les points de données sont triés, ce qui permet une recherche binaire pour localiser le point de données. Un algorithme O (log n), très rapide. –