2
我想使用变换矩阵围绕任意点旋转点。使用变换矩阵围绕任意点旋转
所以方程为:
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)旋转,然后添加到结果点,但我认为第一个和第三个矩阵必须是换?
这个问题似乎是脱离主题,因为它纯粹是关于[math.se]。 – Dukeling
@Dukeling我认为这与计算机图形学有关。 – mrgloom
_“我认为第一个和第三个矩阵必须交换”_。我想你可能是对的。找出最快的方法可能是通过实验:尝试不交换,然后尝试交换,并查看哪一个看起来是正确的。 – Kevin