昨天跟 Claude 搏斗了好久,原来是我想错了,速速认错。
一个点 P(x,y) 绕 C(x0,y0),逆时针旋转 θ,结果得到 P′(x′,y′) 满足:
P′=C+R(P−C)
其中 R 是二维旋转矩阵:
[cosθsinθ−sinθcosθ]
或者直接展开得:
x′=x0+(x−x0)cosθ−(y−y0)sinθy′=y0+(x−x0)sinθ+(y−y0)cosθ
我被“坑”的地方是对旋转矩阵的定义,或者说使用场景没有建立正确的认知,旋转矩阵作用的坐标,一定要是相对旋转中心的。
在这个 case 中,旋转中心是 C,所以要先通过 (P−C) 把 P 转换到旋转中心(点 C)的坐标系下,计算完之后,重新恢复到原来的世界坐标系下。
本文标题:Rotating a point about center
文章作者:Henry Wu
发布时间:2025-09-03
最后更新:2025-11-13
原始链接:https://henrywu.netlify.app/2025/09/03/Rotating-a-point-about-center/
版权声明:转载请注明出处。CC BY-NC-SA 4.0