Question

Je dois prendre la position de clic de souris à flotteur ou double, comment puis-je faire cela? En écoute de la souris, je prends le point comme celui-ci,

e.getPoint();

mais les valeurs de x et y de l'objet Point sont entier, je dois position float ou double. Toute aide sera appréciée.

Modifier Je dois résolution exacte.

Était-ce utile?

La solution

getPoint() vous donne des valeurs entières parce que c'est la précision dont les coordonnées sont précisées. Voir http://java.sun.com /j2se/1.4.2/docs/api/java/awt/Point.html .

Pourquoi avez-vous besoin de valeurs à virgule flottante?

Modifier : en réponse à votre commentaire, vous devez mapper vos positions absolues à pixels à l'écran, en utilisant une fonction comme plancher (toujours arrondir vers le bas) ou rond (arrondi au plus proche int). Le système n'a aucune notion de 0,2 pixels ou quelque chose comme ça. Vous pouvez tronquer en permanence la partie décimale de vos calculs, ou maintenir les coordonnées exactes en tout temps et les associer aux pixels au besoin.

Autres conseils

De int vous devriez être en mesure de jeter à double ou float sans aucun problème:

double x = e.getPoint().x;
double y = e.getPoint().y;

Il existe cependant des méthodes qui font déjà que:

double x = e.getPoint().getX();
double y = e.getPoint().getY();

Suis-je manque quelque chose ici?

S'il vous plaît noter que la précision ne sera pas plus élevé - la souris ne peut Accrocher aux pixels pleins, donc généralement entier est très bien. Mais si vous avez besoin de calculer à partir de ces valeurs, les représentations à virgule flottante pourraient être utiles.

Vous ne pouvez pas obtenir un point plus précis puis getPoint(), Wich retourne un objet Point qui ne contient que deux entiers. Que voudrait réaliser avec cela?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top