【问题标题】:Image rotation & tracking locations图像旋转和跟踪位置
【发布时间】:2010-09-07 21:52:42
【问题描述】:

我正在围绕其中心点旋转图像,但需要在图像旋转时跟踪图像上的位置。

给定:

  1. 原点 0,0
  2. 图片宽高分别为100、100
  3. C(50,50) 处的旋转点
  4. “a”的角度(在本例中为 90 度)
  5. 点 P 从 (25,25) 开始,旋转后位于 Pnew(75,25)

我已经 20 年没有接触过三角了,但猜测公式很简单......

【问题讨论】:

    标签: math trigonometry


    【解决方案1】:

    我已经 20 年没有接触过三角了,但猜测公式很简单......

    是的,公平的。通过围绕原点旋转来映射点 (x1,y1):

    x2 = cos(a) * x1 + sin(a) * y1;
    y2 = cos(a) * y1 - sin(a) * x1;
    

    ...所以您只需要首先翻译到示例中的原点,即 (-50,-50) 并在旋转后翻译回来。

    x2 = cos(a) * (x1 - 50) + sin(a) * (y1 - 50) + 50;
    y2 = cos(a) * (y1 - 50) - sin(a) * (x1 - 50) + 50;
    

    ...或者类似的东西。 (你可以生成一个矩阵来完成所有三个转换,我会把它留给另一个答案或作为练习......)

    【讨论】:

    • 非常感谢。起初我认为这不能正常工作,但可惜几何中的角度实际上是逆时针方向的。我的应用程序将所有角度视为顺时针方向。只需要添加几个负号。
    猜你喜欢
    • 2015-09-14
    • 2011-02-15
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多