Я строю симулятор, чтобы помочь проекту, над которым я работаю с некоторыми ребятами из Uni.Я анимирую то, что по сути является футбольным полем с двумя «игроками» (на самом деле роботами Lego).
Проблема, с которой я сталкиваюсь, состоит в том, что координаты, которые я использую для рисования, кажутся неправильными, поскольку все отрисовывается дальше(в х и у), чем я намерен.Например, чтобы нарисовать белую линию на дальней стороне поля, я делаю это:
double X_RATIO = this.getSize().width / 244;
double Y_RATIO = this.getSize().height / 122;
g.fillRect((int) (243 * X_RATIO), (int) (0 * Y_RATIO), (int) (1 * X_RATIO), (int) (122 * Y_RATIO));
Вы можете видеть, что я масштабирую там, где он нарисован, до текущего размера, поэтому я всегда могу использовать стандартный размершаг как моя система координат (здесь это 244 х 122).Однако эта линия рисуется на расстоянии не менее 10 пикселей от правой стороны панели (также снизу вверх примерно на 5 пикселей).
Сначала я думал, что это будет связано с кастингом, но я оставляю это до последней возможной секунды (только кастинг на этапе розыгрыша, где позиции должны быть в любом случае int).Кто-нибудь знает, в чем может быть проблема?Само собой разумеется, это очень расстраивает, поскольку я не могу видеть, что не так с моей математикой.