多点触摸手势识别

花花圆圆 2009-06-26 02:25:26
1、两手指在触摸屏上做旋转的手势,如何判断是顺时针还是逆时针?可以得到刚触摸两点的坐标和旋转后两点的坐标,除了求角度的方法外还有什么方法?
2、缩放与旋转都是两个手指操作的,要把功能集成到一起,如何区别这两种手势?就是找到一个判断条件

路过的大虾帮帮忙啊!多谢了!!!!
...全文
584 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevehsu 2010-02-07
  • 打赏
  • 举报
回复
歡迎參觀我的部落格有演示 blog.xi-ji.com
花花圆圆 2009-07-06
  • 打赏
  • 举报
回复
难道没有什么更好的方法了吗?既能判断准确又不耗很多时间的算法?
花花圆圆 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 tonnyyao 的回复:]
这里需要有跟踪算法。
举个例子,你现在用两个手指,对两个手指的触摸点进行跟踪,然后进行编号,设置ID分别为1和2。
在前一次运算得到1和2组成的向量,下一次运算又得到1和2组成的向量,这样通过向量的计算就得到你旋转的角度了。当然也有楼上说的1度和359度的取舍,这个我想只要程序做些设定就可以很快解决的。
[/Quote]
通过向量的计算得到旋转的角度,这相当于求两向量夹角的余弦值吧?求向量的模就会用到开根号,这个耗很多时间
花花圆圆 2009-07-06
  • 打赏
  • 举报
回复
多谢各位的建议
@井九 2009-07-05
  • 打赏
  • 举报
回复
用求角度区间
只和一些特殊角如30,45,60这些简单角度比较,得出角度区间应该就可以了吧,这样可以避免复杂计算。
fire_woods 2009-07-02
  • 打赏
  • 举报
回复
求角度不慢,只要你不要求atan,tan之类的.
花花圆圆 2009-07-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 fire_woods 的回复:]
求角方向有什么问题呢?
还是有什么缺点?
[/Quote]
因为算法不是在PC上做,而是要做到单片机里,求角度的话耗很多时钟,单片机本身的处理速度肯定比不上PC机了,所以要换个算法.
tonnyyao 2009-07-02
  • 打赏
  • 举报
回复
缩放是根据这两个点形成的向量方向没有改变,或者基本没有改变(可设置筏值范围)。然后判断两个点之间距离的变化。
tonnyyao 2009-07-02
  • 打赏
  • 举报
回复
这里需要有跟踪算法。
举个例子,你现在用两个手指,对两个手指的触摸点进行跟踪,然后进行编号,设置ID分别为1和2。
在前一次运算得到1和2组成的向量,下一次运算又得到1和2组成的向量,这样通过向量的计算就得到你旋转的角度了。当然也有楼上说的1度和359度的取舍,这个我想只要程序做些设定就可以很快解决的。
ibone 2009-07-01
  • 打赏
  • 举报
回复
两点间距可判断 旋转或是缩放
旋转:可以放在以开始两点的中点为原点坐标的坐标系统判断,距离不变,短时间内XY的偏移方向,原点位移量小==

fire_woods 2009-07-01
  • 打赏
  • 举报
回复
知道点对(P1,P2)对应2个手指

缩放是|P1-P2|的变化
旋转是向量P1-P2的角度.
fire_woods 2009-07-01
  • 打赏
  • 举报
回复
求角方向有什么问题呢?
还是有什么缺点?

花花圆圆 2009-07-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fire_woods 的回复:]
知道点对(P1,P2)对应2个手指

缩放是|P1-P2|的变化
旋转是向量P1-P2的角度.
[/Quote]
除了求角度的方法还有别的吗?
用户 昵称 2009-06-29
  • 打赏
  • 举报
回复
没考虑上多点,好像多点就难太多了。
用户 昵称 2009-06-29
  • 打赏
  • 举报
回复
并不是太难,比如现在浏览器的鼠标手势动作,前一个动作都是后一个动作的基本条件,比如用鼠标在屏幕上画出^ 或 V并识别,可以这样做。

取第一个点的信息,然后等待第二个点,如果第二个点在其右上方,则表示这是 ^ 的一部分,然后采样第三个点,如果是向右下,表示是 ^ ,如果不是像右下方,则什么也不是。
花花圆圆 2009-06-29
  • 打赏
  • 举报
回复
没人了吗?自己顶下
花花圆圆 2009-06-29
  • 打赏
  • 举报
回复
有没有具体思路算法啊?高手们帮帮忙咯
花花圆圆 2009-06-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jennyvenus 的回复:]
没考虑上多点,好像多点就难太多了。
[/Quote]
最多就两个手指在触摸屏上操作,不然就没法实现多点了
showjim 2009-06-26
  • 打赏
  • 举报
回复
2.上下左右四个方向,分别表示放大,缩小,逆时针,顺时针,一个手指就行了,不知道符不符合需求;不行的话,两手指不同方向,靠近表示缩小,开分表示放大
绿色夹克衫 2009-06-26
  • 打赏
  • 举报
回复
其实以前google的一道面试题有个跟此题差不多。

说不能判断,是因为理论上存在这样的可能,比如你的采集频率是1000次每秒,比如你在千分之一秒中,顺时针转了1度,
这样大概1秒钟转3周,但假如你在千分之一秒中逆时针转了359度,你所在的位置同顺时针转1度是相同的。
不过咱们一般的处理方法是认为转了1度,而不是359度。

[Quote=引用 2 楼 lindahnu 的回复:]
引用 1 楼 litaoye 的回复:

只有4个点本来是不能判断的,但一般都是选择夹角较小的那个方向。


手指滑过的轨迹坐标都可以采到的,只是判断的时候要两组坐标值就可以了,初始和旋转后的
[/Quote]
加载更多回复(2)

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧