Como llegar a la posición del ratón en el flotador o el doble de la resolución exacta?
-
19-09-2019 - |
Pregunta
necesito tomar la posición de clic del ratón en el flotador o doble, ¿cómo puedo hacer eso? En detector de ratón, tomo el punto como este,
e.getPoint();
pero X e Y los valores de punto del objeto son enteros, necesito posición en flotador o doble. Cualquier ayuda será apreciada.
Editar Necesito resolución exacta.
Solución
getPoint()
le da valores enteros porque esa es la precisión en el que se especifican las coordenadas. Ver http://java.sun.com /j2se/1.4.2/docs/api/java/awt/Point.html .
¿Por qué necesitan los valores de punto flotante?
Editar : en respuesta a su comentario, tendrá que asignar sus posiciones absolutas a píxeles en pantalla, utilizando una función como piso (siempre redondeando hacia abajo) o redonda (int ronda a más cercano). El sistema no tiene noción de 0,2 píxeles o algo por el estilo. O se puede truncar continuamente la parte decimal de sus cálculos, o mantener las coordenadas exactas en todo momento y asignarlos a los píxeles según sea necesario.
Otros consejos
De int
usted debería ser capaz de lanzar a double
o float
sin ningún problema:
double x = e.getPoint().x;
double y = e.getPoint().y;
No obstante son métodos que ya hacen lo siguiente:
double x = e.getPoint().getX();
double y = e.getPoint().getY();
Me estoy perdiendo algo aquí?
Tenga en cuenta que la precisión no será mayor - el ratón sólo puede Ajustar a píxeles completos, por lo tanto, generalmente entero está muy bien. Pero si es necesario calcular en base a estos valores, las representaciones de coma flotante pueden ser útiles.
No se puede conseguir un punto más precisa a continuación getPoint()
, cosa que devuelve un objeto Point que sólo tiene dos números enteros.
¿Qué le gustaría lograr con esto?