Java - сохранение масштаба относительно поворота изображения - PullRequest
0 голосов
/ 31 марта 2012

Для выполнения задания мне нужно сделать «куклу» на Java, где вы можете перемещать ее и вращать руками и ногами, чтобы делать смешные / крутые позы. Кроме того, ноги должны иметь возможность вытягиваться (но не становиться шире, это важно).

Я хотел справиться с растяжением ноги, чтобы инвертировать вращение, сделанное с ногой, чтобы вернуть его в нейтральное прямое положение, масштабировать его в направлении y, а затем повторить вращение. Тем не менее, кажется, что масштабирование всегда будет в направлении y, поэтому после его поворота нога станет шире. Он будет выглядеть так, как должен, если его вернуть прямо и стоять.

Код, который я сейчас имею, выглядит примерно так:

leg.transform(AffineTransform.getRotateInstance(legAngle,pivot.getX(),pivot.getY()).createInverse());
leg.transform(AffineTransform.getScaleInstance(1,scaleFactor);
leg.transform(AffineTransform.getRotateInstance(legAngle,pivot.getX(),pivot.getY()));

Как сделать так, чтобы масштабирование оставалось относительно изображения после поворота?

1 Ответ

1 голос
/ 31 марта 2012

Есть несколько способов, которые приходят на ум. Первый (самый простой, но самый медленный) метод состоит в том, чтобы визуализировать изображение вытянутой ноги в изображение, а затем повернуть и визуализировать это изображение. Другой способ - использовать Math.cos и Math.sin для применения правильного масштабирования в каждом измерении для достижения желаемого эффекта на изображении.

...