【发布时间】:2013-12-23 13:52:19
【问题描述】:
我想使用变换矩阵围绕任意点旋转点。
所以方程是:
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) 旋转,然后添加到结果点,但我认为必须交换第一个和第三个矩阵?
【问题讨论】:
-
这个问题似乎是题外话,因为它纯粹是关于Mathematics。
-
@Dukeling 我认为它与计算机图形有关。
-
“我认为第一个和第三个矩阵必须交换”。我想你可能是对的。找出答案的最快方法可能是通过实验:尝试不交换,然后尝试交换,看看哪个看起来正确。
-
@Kevin 我试过了(我用手将它们相乘)但我从理论上不明白它为什么有效。(我不明白为什么不应该交换矩阵)
-
一旦你弄清楚了数学并尝试编写代码,那么它就变成了一个编程问题。目前我看到的都是数学。
标签: algorithm graphics matrix computer-vision linear-algebra