c++ - 基于不同坐标系旋转图像

标签 c++ qt math rotation

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

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

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

我的图形 View 是由这个坐标系定义的

           270
       180--|--0
           90

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

示例 如果 X 和 Y 是图像上的点 坐标系定义的旋转角度均为 -110

           x  |
              |
          -------y-
              |
              |

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

注意:如果旋转角度在 -90 和 90 之间,则通过应用旋转 原始值有效,但如果该值不在这些值之间,则无法正确旋转

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

我觉得很简单 但由于某种原因我无法理解它

最佳答案

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

您需要应用的转换是:

From wikipedia

其中 x 和 y 是原始坐标,x' y' 是新坐标。旋转角度为theta

编辑:

我应该添加这会执行绕原点的旋转。如果你想围绕另一个点旋转,你需要先平移你的图像,直到原点达到你需要的位置

关于c++ - 基于不同坐标系旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18505920/

相关文章:

c++ - Steam for Linux 平台库导致 Qt 应用程序行为不当

Qt:Windows 7 任务栏扩展支持的当前状态是什么?

javascript 非顺序随机数生成器

ruby - 有人可以解释这个 ruby​​ 基本计算器代码如何处理加法和减法吗?

c++ - 是否可以让调试器显示 boost 函数对象指向的函数的名称?

c++ - 更新到 Mojave 后出现 cmath 错误

qt - 使用 Qt 绘制 Sin(x) 的图形

algorithm - 将 n 写为 k 个数字之和的方法数,每个部分都有限制

c++ - 在 C++ 中实现 SHA-256

c++ - 当他们互相调用时如何在同一个类中模拟函数