2009-12-04 7 views
0

J'écris un traceur 2D, et le long des axes X et Y j'ai des marqueurs avec des valeurs imprimées. Maintenant, ma question est: comment puis-je trouver des distances appropriées?Distance de marqueur appropriée le long de l'axe dans le traceur

Ma méthode (pour un axe numérique) est jusqu'à présent:

  • Je sais que la hauteur de l'axe à l'écran en pixels
  • Décider une distance optimale entre les marqueurs en pixels (ce qui ressemble bien à l'écran ...), par exemple 32 pixels. Recalculer le nombre de pixels en valeur d'axe (si l'axe est de 320 pixels et la plage de l'axe est de 0-40 ° C par exemple, la valeur est de 32 * (40/320) = 4. Ainsi, la distance optimale est 4 ° C.)
  • Commencez avec une distance de 1 ° C. Si la distance est supérieure à la distance optimale, divisez-la par deux jusqu'à ce qu'elle soit inférieure à la distance optimale. De même, si la distance est inférieure à la distance optimale, multipliez-la par deux jusqu'à ce qu'elle soit plus grande que la distance optimale.

Cela fonctionne, mais il ne me donne pas les mêmes distances que je l'aurais choisi à la main. Par exemple: si la plage est 0-1000, je décide une des distances suivantes:

  • 1000 (0, 1000
  • 500 (0, 500, 1000)
  • 250 (0, 250 , 500, 750, 1000)
  • 200 (0, 200, 400, 600, 800, 1000)
  • 100 (0, 100, ..., 900, 1000)
  • 50 (0, 50, ..., 950, 1000)

et ainsi de suite ...

Avez-vous une idée géniale?

Répondre

2

Une suggestion qui pourrait aider est de déterminer à l'avance quelles distances seront bonnes, puis de définir une table de correspondance en fonction de la taille de la plage sur vos axes. Mais, pour éviter d'avoir trop de données, assurez-vous que vos axes sont normalisés à une plage standard. Ainsi, par exemple, calculez la plage, puis réglez-la à une valeur comprise entre 1 et 100, puis trouvez la valeur la plus proche dans votre table de recherche et utilisez cette distance. Si vous avez Excel, vous pouvez regarder les résultats qu'ils créent et voir si vous pouvez en tirer un algorithme utile, bien que je trouve souvent que j'ai besoin de remplacer manuellement les distances qu'Excel lève pour plus de clarté. Il se peut que le remplacement manuel soit une fonctionnalité vitale pour votre application.

+0

C'est en fait comme cela que je l'ai fait. Merci. – Jonatan

+0

Bienvenue. Je suis nouveau sur le site, donc obtenir un renforcement positif est un vrai bourdonnement! Vous attraper plus tard. –

Questions connexes