我想使用变换矩阵围绕任意点旋转点。
所以方程是:
p'x = cos(theta) * (px-ox) - sin(theta) * (py-oy) + ox
p'y = sin(theta) * (px-ox) + cos(theta) * (py-oy) + oy
但是我想用矩阵变换的形式重写它,它似乎应该是(c = cos(theta),s = sin(theta)):
默认情况下,旋转矩阵使用原点作为旋转的中心。要绕任意点旋转,您必须使用平移矩阵减去到原点的距离,进行旋转,然后平移回来。
如果我理解它,我们首先从原点减去ot(0,0),然后围绕点(0,0)旋转然后加到结果点,但我认为第1和第3矩阵必须交换?
答案 0 :(得分:4)
你不应该交换你的第1和第3矩阵,因为你正确地乘以作为列向量的点,所以序列不是从左到右,而是从右到左。
您可以通过扩展右手矩阵轻松验证结果,这将是表示p'x和p'y的公式。