Как назначить значение вращению матрицы по оси Z. (li «вращение»)?Вращение без искажений с использованием Matrix3D
Позиция и размер рассчитываются правильно, но после добавления вращения изображение растягивается.
Я попробовал два метода для вращения:
_positionMatrix.identity();
var v3:Vector.<Vector3D> = new Vector.<Vector3D>(3);
v3 = _positionMatrix.decompose();
v3[0].incrementBy(new Vector3D(x, y, 0));// x, y, z
v3[1].incrementBy(new Vector3D(0,0,-rotation*Math.PI/180)); // rotationX, rotationY, rotationZ
v3[2].incrementBy(new Vector3D(width,height,0)); // scaleX, scaleY, scaleZ
_positionMatrix.recompose(v3);
И:
_positionMatrix.identity();
_positionMatrix.appendScale(width,height,1);
_positionMatrix.appendTranslation(x,y,0);
_positionMatrix.appendRotation(-rotation,Vector3D.Z_AXIS);
Но эффект идентичен:
Я считаю, что класс "PerspectiveProjection" может помогите, но не можете понять, как использовать его с вращением вокруг ось Z.