كيفية الحصول على موقف الماوس في تعويم أو مضاعفة مع الدقة الدقيقة؟
-
19-09-2019 - |
سؤال
أحتاج إلى اتخاذ موقف النقر بالماوس في تعويم أو مزدوج، كيف يمكنني أن أفعل ذلك؟ في مستمع الماوس، آخذ هذه النقطة مثل هذا،
e.getPoint();
لكن قيم X و Y Points هي عدد صحيح، أحتاج إلى وضع تعويم أو مزدوج. سيكون موضع تقدير أي مساعدة.
تعديل أحتاج إلى دقة دقيقة.
المحلول
getPoint()
يمنحك القيم العدد القيم لأن هذا هو الدقة التي يتم فيها تحديد الإحداثيات. يرى http://java.sun.com/j2se/1.4.2/docs/api/java/awt/point.html..
لماذا تحتاج إلى قيم الفاصلة العائمة؟
تعديل: استجابة لتعليقك، ستحتاج إلى تعيين مواقعك المطلقة على البكسل على الشاشة، باستخدام وظيفة مثل الأرضيات (دائما تقريب) أو جولة (جولة إلى الأقرب إلى الأقرب). لا يحتوي النظام على مفهوم من 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()
, ، إرجاع Wich كائن نقطة يحمل فقط اثنين من الأعداد الصحيحة. ما الذي يرغب في تحقيقه مع هذا؟