Если вы можете повернуть точку вокруг точки, тогда будет легко повернуть прямоугольник - вы просто поверните 4 точки.
Вот функция js для поворота точки вокруг начала координат:
function rotate_point(pointX, pointY, originX, originY, angle) {
angle = angle * Math.PI / 180.0;
return {
x: Math.cos(angle) * (pointX-originX) - Math.sin(angle) * (pointY-originY) + originX,
y: Math.sin(angle) * (pointX-originX) + Math.cos(angle) * (pointY-originY) + originY
};
}
И тогда вы можете сделать это для каждой точки.Вот пример: http://jsfiddle.net/dahousecat/4TtvU/
Измените угол и нажмите Run, чтобы увидеть результат ...