如图所示,如何求点a绕o点旋转angle角度后(此处为逆时针旋转)b点的坐标?
假设o点为圆心(原点),输入的angle是取绝对值,则有计算公式:
b.x = a.x * cos (-angle) + a.y * sin (-angle) b.y = a.y * cos (-angle) - a.x * sin (-angle)
如果变成顺时针旋转,o点为圆心(原点),输入的angle是取绝对值,则有计算公式:
b.x = a.x * cos (angle) + a.y * sin (angle) b.y = a.y * cos (angle) - a.x * sin (angle)
上述公式中角度angle是弧度值,如旋转30度转换为弧度为: angle = pi/180 * 30。
上述计算公式不清楚怎么的来的话,可以参考这篇博客3D数学基础[一]二维向量和二维坐标系 的坐标系旋转篇,旋转点相当于反向旋转坐标系,所以在输入的旋转角都大于0时,逆时针旋转点的公式与顺时针旋转坐标系的公式是一样的,顺时针旋转点的公式与逆时针旋转坐标系的公式是一样的
若o不是原点,则可先将a点坐标转换为相对坐标计算,计算结果再加上o点坐标。
参与计算的a点坐标实际应为 a - 0,逆时针旋转的最终计算公式如下