gpt4 book ai didi

algorithm - 如何计算 (x, y) 点列表的(近似)旋转

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:23:10 24 4
gpt4 key购买 nike

我正在检测 XNA 应用程序中的多点触控手势,以便屏幕上的某些“面板”可以在其范围内接受触摸点,然后根据用户手指的移动进行移动、缩放或旋转。

然而,由于屏幕是一个有 10s 个触摸点的大型多点触控屏幕,一个面板有时可以同时接受 5 个(甚至更多)手指,而且我在网上找到的大多数东西仅限于使用 2 个手势仅接触点。

我通过计算某个面板上所有触摸的中心点来处理移动和缩放手势:

  1. 计算当前触摸的中心点 (avg x, avg y)
  2. 计算之前时间戳触摸的中心点(avg x, avg y)
  3. 使用差异来移动和缩放面板。

但我不知道如何处理轮换。有没有算法可以快速得到这个(近似)旋转角度?我应该计算每个点与中心之间的角度,然后使用 delta 值吗?是否有更好的方法?

最佳答案

如何找到距离最大的两个点并使用它们。这对我来说是最直观的感觉。

想象一下旋转,一只手张开,所有 5 个手指都在屏幕上,在这种情况下,重要的是在拇指和小指之间旋转。

或者考虑两只手的手势,每只手有两个手指。同样,使用这种方法,您可以忽略单手的旋转,但可以捕捉到每只手的广泛扫描。

打破这种情况的唯一方法是用一只手的两个手指旋转,另一只手闲置在屏幕上的某个地方。然后旋转似乎不起作用(例如,秒针正在旋转,但您正在寻找从一只手到另一只手的角度。)

关于algorithm - 如何计算 (x, y) 点列表的(近似)旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30170953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com