Как получить положение мыши в формате float или double с точным разрешением?

StackOverflow https://stackoverflow.com/questions/2417425

Вопрос

Мне нужно изменить положение щелчка мыши на float или double, как я могу это сделать?В mouse listener я беру точку следующим образом,

e.getPoint();

но значения x и y точечного объекта являются целочисленными, мне нужна позиция в формате float или double.Любая помощь будет оценена по достоинству.

Редактировать Мне нужно точное разрешение.

Это было полезно?

Решение

getPoint() выдает вам целочисленные значения, потому что это точность, с которой задаются координаты.Видишь http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Point.html.

Зачем вам нужны значения с плавающей запятой?

Редактировать:в ответ на ваш комментарий вам нужно будет сопоставить ваши абсолютные позиции с пикселями экрана, используя функцию типа floor (всегда округлять в меньшую сторону) или round (округлять до ближайшего значения int).Система не имеет понятия о 0,2 пикселях или чем-то подобном.Вы можете либо постоянно усекать десятичную часть своих вычислений, либо постоянно сохранять точные координаты и при необходимости преобразовывать их в пиксели.

Другие советы

От int вы должны быть в состоянии применить заклинание к double или float без каких-либо проблем:

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

Однако существуют методы, которые уже делают это:

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

Я что-то здесь упускаю?

Пожалуйста, обратите внимание, что точность не будет выше - мышь может привязываться только к полным пикселям, поэтому обычно integer подходит.Но если вам нужно произвести вычисления на основе этих значений, представления с плавающей запятой могут быть полезны.

Тогда вы не сможете получить более точную точку зрения getPoint(), который возвращает точечный объект, содержащий только два целых числа.Чего бы вы хотели достичь с помощью этого?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top