Я пишу программу на java, в которой есть графические объекты, которые пользователь может выбирать, а затем вращать или растягивать в зависимости от движения мыши. Я близок к тому, чтобы приступить к работе, но проблема, с которой я столкнулся, заключается в том, чтобы выяснить, как настроить форму, чтобы она естественным образом работала с движениями мыши.
У меня есть MouseListener, настроенный примерно так:
private class MouseHandler extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
currentClickPoint = e.getPoint();
}
}
и MouseMotionListener настроил что-то вроде этого:
private class MouseMotionHandler extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
objectRotateAngle = currentClickPoint.getY() - e.getY();
objectWidth += currentClickPoint.getX() - e.getX();
}
}
Это упрощенная версия, очевидно, но проблема в том, что я хочу, чтобы ширина увеличивалась при перемещении мыши вправо и уменьшалась при перемещении мыши влево, а также чтобы угол поворота увеличивался/уменьшался в зависимости от вертикального движения мыши. . Прямо сейчас ширина не начнет уменьшаться, пока вы не пройдете позицию X currentClickPoint влево и наоборот. Проблема с поворотом на основе движения мыши Y заключается в том, что каждый раз, когда вы начинаете перемещать мышь вверх для поворота, угол снова устанавливается на 0.
Программа должна плавно реагировать на изменение направления, не устанавливая ширину или угол в 0 в начале настройки. У кого-нибудь есть лучший способ определить направление движения мыши для этой цели?