根据一点旋转点阵

Rotate array of points according one point

我有4个点和角度(如图所示)。如何获取旋转对象的新点值?

picture(x/y axis inverted, mistake. Vertical should be Y, horizontal - X)

首先获取相对于旋转原点(x0,y0)的坐标

x' = x1 - x0
y' = y1 - y0

然后旋转

x'' = x' * Cos(Fi) - y' * Sin(Fi)
y'' = x' * Sin(Fi) + y' * Cos(Fi)

现在将坐标移回

x_r = x'' + x0
y_r = y'' + y0