基于不同坐标系旋转图像

时间:2013-08-29 08:32:45

标签: c++ qt math rotation

我有两个图像,用户在两个图像上选择匹配点 我计算所需的旋转角度,以对齐图像

此坐标系中定义的旋转角度id

           -90
      -180  |    0
        ---------
      180   |    0
            90

我的图形视图由此坐标系

定义
           270
       180--|--0
           90

旋转角度正确 如何确定旋转方式?

实施例 如果X& Y是图像上的点 旋转角度是-110,由坐标系

定义
           x  |
              |
          -------y-
              |
              |

如何创建if语句以确定旋转方式

注意:如果旋转角度在-90°和-15°之间。 90然后通过应用旋转 原始值WORKS,但如果值不在这些值之间则不能正确旋转

从上面的例子 如果我正在旋转x - > y(x需要旋转正) 但如果y - > x(y需要旋转负数) 但是无论哪种方式,原始值都是-110 所以我猜我不能用旋转角度作为参数来确定旋转方式

它认为这很简单 但由于某种原因,我无法理解它

2 个答案:

答案 0 :(得分:2)

您的坐标系是相同的! -90deg == 270deg(在此上下文中)

您需要应用的转换是:

From wikipedia

其中x和y是您的原始坐标,x'y'是您的新坐标。旋转角度是θ

修改

我应该添加它执行关于原点的旋转。如果要围绕另一个点旋转,则需要先翻译图像,直到原点位于您需要的位置

答案 1 :(得分:0)

如果我理解正确,xy是由X和Y点定义的两个角度。在您的示例中,x == -110y == 0。< / p>

然后旋转x-> y,只需旋转角度y-x(= 110),旋转y-> x,旋转角度x-y(= -110)