float または double でマウスのクリック位置を取得する必要があります。どうすればよいですか?マウス リスナーでは、次のようにポイントを取得します
e.getPoint();
Point オブジェクトの x と y の値は整数なので、float または double の位置が必要です。どんな助けでも大歓迎です。
編集 正確な解像度が必要です。
float または double でマウスのクリック位置を取得する必要があります。どうすればよいですか?マウス リスナーでは、次のようにポイントを取得します
e.getPoint();
Point オブジェクトの 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();
ここで何かが足りませんか?
精度は高くならないことに注意してください。マウスは完全なピクセルにしかスナップできないため、通常は整数で問題ありません。ただし、これらの値に基づいて計算する必要がある場合は、浮動小数点表現が役立つ場合があります。
より正確なポイントを取得することはできません。これgetPoint()
は、2 つの整数のみを保持する Point オブジェクトを返します。これで何を達成したいですか?