Повернуть прямоугольник вокруг точки - PullRequest
6 голосов
/ 17 декабря 2010

Как бы я повернул 4 точки на несколько градусов вокруг указателя, чтобы сформировать прямоугольник? Я могу повернуть точку вокруг точки, но не могу сместить ее, чтобы сделать прямоугольник без искажений.

1 Ответ

29 голосов
/ 03 ноября 2012

Если вы можете повернуть точку вокруг точки, тогда будет легко повернуть прямоугольник - вы просто поверните 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, чтобы увидеть результат ...

...