Я пробовал вот так. Но явно чето не то в плане трегонометрии. И при обратном вращении артефактоф много:

Код AS1/AS2:
function rotateYto(targed, a) {
var newAngle:Number = a*rad;
var sin = Math.sin(newAngle);
var cos = Math.cos(newAngle);
var x = targed.vertex[0].x;
var z = targed.vertex[0].z;
var R = Math.sqrt(x*x+z*z);
var _b = a*rad;
for (var i = 0; i<4; i++) {
x = Math.cos(_b)*R;
z = Math.sqrt(R*R-x*x);
if (targed.vertex[i].x<0) {
x = 0-x;
z = 0-z;
}
targed.vertex[i].z = z;
targed.vertex[i].x = x;
}
render(rektangl);
}
Добавлено через 65 часов 58 минут
Поворот точек на заданный угол.
вот как получилось:

Код AS1/AS2:
function rotateYto(targed, a) {
var R = targed.Width/2;
var _b = a*rad;
for (var i = 0; i<4; i++) {
x = Math.cos(_b)*R;
z = Math.sin(_b)*R;
if (targed.vertex[i].x<0) {
x = 0-x;
z = 0-z;
}
targed.vertex[i].z = z;
targed.vertex[i].x = x;
}
render(rektangl);
}