Я разрабатываю одну простую игру, в которой я столкнулся с одной небольшой, но важной проблемой. Я реализовал абсолютное вращение в своей логике.Проблема с вращением формы - Java2d
Когда я начинаю вращать объект, когда объект не имеет никакого вращения, он отлично работает, и я могу вращаться как в любом направлении без каких-либо проблем, как показано в следующей ссылке.
Теперь проблема возникает, когда объект имеет некоторое вращение, и поэтому я стараюсь вращаться в одном из направлений, вместо того, чтобы вращаться в направлении желания вращение всегда начинается с начального вращения, как показано на следующую ссылку.
Rotation issue when shape has some rotation
Я думаю, что видео показывает все, по-прежнему, если у вас есть какие-либо вопросы, пожалуйста, спрашивайте.
Я думаю, проблема заключается в том, что должно быть относительное вращение в направлении указателя мыши из любого круга.
Теперь о моей логике,
в мыши пресс-конференции я только что проверил
нажатия кнопок мыши
ли выбрана форма на холсте, если да , если один из четырех кругов содержит мышь точка, если да, то initiateRotation
Mouse Drag
Использование векторной математики обновляет движение по точкам мыши,
угла поворота вычисляет в соответствии со следующим способом
Math.atan2(rotationVector.getY(), rotationVector.getX());
и применять ротацию на этой форме.
Rotation Vector я получаю от этого класса
я назвал выше класса startMotion в прессе мыши и updateMotion в случае мыши перетащить.
Что мне не хватает или что-то не так?
Есть ли причина, по которой вы не нормализировали vectAB, прежде чем возвращать ее? Также вы проверили, что bounds.getCenterX/Y возвращает правильные координаты? Или, может быть, ошибка заключается в методе, который применяет поворот к фигуре. – SpiderPig