Come ottenere la posizione del mouse in float o doppia con risoluzione esatta?
-
19-09-2019 - |
Domanda
Ho bisogno di prendere la posizione del mouse in float o doppia, come posso fare? Nel listener del mouse, prendo il punto come questo,
e.getPoint();
ma xey valori di Point oggetto sono numeri interi, devo posizione flottante o doppia. Qualsiasi aiuto sarà apprezzato.
Modifica Ho bisogno esatta risoluzione.
Soluzione
getPoint()
vi dà i numeri interi perché questa è la precisione nel quale sono specificate le coordinate. Vedere http://java.sun.com /j2se/1.4.2/docs/api/java/awt/Point.html .
Perché avete bisogno di valori in virgola mobile?
Modifica : in risposta al tuo commento, è necessario mappare le posizioni assolute ai pixel sullo schermo, utilizzando una funzione come il pavimento (rotondo sempre verso il basso) o rotondo (round Int più vicino). Il sistema non ha alcuna nozione di 0,2 pixel o qualcosa di simile. Si sia possibile troncare continuamente la parte decimale dei calcoli, o mantenere le coordinate esatte in ogni momento e mapparli in pixel, se necessario.
Altri suggerimenti
Da int
si dovrebbe essere in grado di lanciare a double
o float
senza problemi:
double x = e.getPoint().x;
double y = e.getPoint().y;
Ci sono tuttavia metodi che già fanno che:
double x = e.getPoint().getX();
double y = e.getPoint().getY();
Mi sto perdendo qualcosa qui?
Si prega di notare, che la precisione non sarà più alto - il mouse può scattare solo di pixel pieni, quindi di solito intero è bene. Ma se avete bisogno di calcolare sulla base di questi valori, le rappresentazioni in virgola mobile potrebbero essere utili.
Non è possibile ottenere un punto più precisa poi getPoint()
, wich restituisce un oggetto Point che contiene solo due numeri interi.
Cosa vorrebbe ottenere con questo?