触控手势算法


        protected virtual GestureType GetTranslateGestureType(double xOffset, double yOffset, double xyOffset, double minOffset)
{
if (Math.Abs(xOffset) < minOffset && Math.Abs(yOffset) < minOffset) return GestureType.None;

if (xOffset / xyOffset < Math.Cos(165.0 * Math.PI / 180.0))
return GestureType.MoveLeft;
if (xOffset / xyOffset > Math.Cos(15.0 * Math.PI / 180.0))
return GestureType.MoveRight;
if (-yOffset / xyOffset > Math.Sin(75.0 * Math.PI / 180.0))
return GestureType.MoveTop;
if (-yOffset / xyOffset < Math.Sin(-75.0 * Math.PI / 180.0))
return GestureType.MoveBottom;

if (xOffset / xyOffset < Math.Cos(120.0 * Math.PI / 180.0) && xOffset / xyOffset > Math.Cos(150.0 * Math.PI / 180.0)
&& -yOffset / xyOffset < Math.Sin(120.0 * Math.PI / 180) && -yOffset / xyOffset > Math.Sin(150.0 * Math.PI / 180.0))
return GestureType.MoveLeftTop;
if (xOffset / xyOffset < Math.Cos(240.0 * Math.PI / 180.0) && xOffset / xyOffset > Math.Cos(210.0 * Math.PI / 180.0)
&& -yOffset / xyOffset < Math.Sin(210.0 * Math.PI / 180) && -yOffset / xyOffset > Math.Sin(240.0 * Math.PI / 180.0))
return GestureType.MoveLeftBottom;
if (xOffset / xyOffset < Math.Cos(30.0 * Math.PI / 180.0) && xOffset / xyOffset > Math.Cos(60.0 * Math.PI / 180.0)
&& -yOffset / xyOffset > Math.Sin(30.0 * Math.PI / 180.0) && -yOffset / xyOffset < Math.Sin(60.0 * Math.PI / 180.0))
return GestureType.MoveRightTop;
if (xOffset / xyOffset < Math.Cos(-30.0 * Math.PI / 180.0) && xOffset / xyOffset > Math.Cos(-60.0 * Math.PI / 180.0)
&& -yOffset / xyOffset > Math.Sin(-60.0 * Math.PI / 180.0) && -yOffset / xyOffset < Math.Sin(-30.0 * Math.PI / 180.0))
return GestureType.MoveRightBottom;

return GestureType.None;
}

触控手势算法

时间: 2024-10-16 17:13:26

触控手势算法的相关文章

windows触控手势

触控板手势 简而言之,在这篇文章里,触控手势1到4可以在任何一种触控板上使用,而手势5到8则需要精确触控板. 1.拖拽 要模拟鼠标的拖拽功能,只需要将一个手指在某个项目上轻轻的双击一下,然后就可以拖拽它了.当拖拽到需要的位置时抬起指尖,就可以把这个项目放置到所在的地方. 2.滚屏 要模拟鼠标的滚屏功能,只需要将两个手指在你想要滚屏的地方按下并向屏幕滚动的方向拖动即可.这个功能对任何支持滚屏的应用程序都有效,包括文字处理.网络浏览器以及音乐播放器等,而且支持横向和纵向滚屏. 3.缩放 要模拟在大多

Android官方开发文档Training系列课程中文版:手势处理之多点触控处理

原文地址:http://android.xsoftlab.net/training/gestures/multi.html 多点触控是指多个手指同时触摸屏幕的情况.这节课主要学习如何检测多点触控手势. 记录多个触控点 当多根手指同时触碰到屏幕时,系统会产生以下触摸事件: ACTION_DOWN -第一个触碰到屏幕的点.它是手势的起始事件.这个触控点的指针数据在MotionEvent对象中的索引总是0. ACTION_POINTER_DOWN -除第一个触控点之外的其它点.这个触控点的指针数据的索

【转】Unity 之 移动设备的触控操作

http://blog.csdn.net/anyuanlzh/article/details/18367941 这篇博文将简单的记录,如何用unity处理在移动设备上的触控操作.    iOS和Android设备能够支持多点触控.在unity中你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据.简单的触控响应实现起很简单,不过一些复杂的触控响应或触控手势什么的,还是使用一些第三方的插件吧,当然你也可以自己封装.不管什么情况,了解决unity原生api还

【WPF学习】第十八章 多点触控输入

多点触控(multi-touch)是通过触摸屏幕与应用程序进行交互的一种方式.多点触控输入和更传统的基于笔(pen-based)的输入的区别是多点触控识别手势(gesture)——用户可移动多根手指以执行常见操作的特殊方式.例如,在触摸屏上放置两根手指并同时移动他们,这通常意味着“放大",而以一根手指为支点转动另一根手指意味着"旋转".并且因为用户直接在应用程序窗口中进行这些手势,所以每个手势自然会被连接到某个特定的对象.例如,简单的具有多点触控功能的应用程序,可能会在虚拟桌

Ubuntu下触控板手势调节软件xSwipe

楼主进了一台Thinkpad T450s,触控板支持4点触控,安装了ubuntu14.04 LTS之后,触控板只剩下双指滑动了,略有不爽,各种google,百度. 真找到办法了. 首先得知了touchegg,但是各种安装不上,折腾的我心力焦悴,最后偶然在知乎上有一位伙伴说了他的电脑用xSwipe搞定了. 于是转向xSwipe,在开源项目网站上GitHub上找到了这神器. 传送门,或者复制地址:https://github.com/iberianpig/xSwipe  到地址栏打开,可能打开得很慢

手势与触控

UIImageView *imgView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 75, 75)]; imgView.image=[UIImage imageNamed:@"a"]; imgView.tag=200; [self.view addSubview:imgView]; //设置允许触控和执行手势 imgView.userInteractionEnabled=YES; //创建点击手势 UITapGestu

iOS学习笔记——触控与手势

触控 此部分内容已学良久,恨记之甚晚,忙矣,懒矣!本文简而记焉,恐日后忘也. 在iOS的触控事件中,有触控.事件以及响应者这三个角色,一个触摸则代表了一只手指和屏幕接触这个动作所包含的信息:而事件则包含了若干只手指在整个屏幕触控中整个过程的所有触摸信息,在C#的角度来说很容易会让人误以为是一种方法(或者叫函数)的指针:实际却不然,在这里无论触控和事件都是用于一些存储信息.而响应者则是确确实实的可以对真正的触控事件作相应处理:这三个角色在OC中分别对应着UITouch,UIEvent和UIResp

触控与手势

随着移动设备的广泛应用,对触屏的支持势在必行. H5中新增了Touch API来支持触控,包括: TouchEvent表示触控事件 Touch表示一个触控点 TouchList表示一组触控点 TouchEvent是触控事件对象,比普通事件对象多了touches.targetTouches. changedTouches属性 触控事件类型有touchstart.touchend.touchmove.touchcancel Touch对象包含identifier.screenX.clientX.pa

jquery mobile 对手势触控提供了如下几个事件监听:

复制代码代码如下: tap  当用户点屏幕时触发taphold 当用户点屏幕且保持触摸超过1秒时触发swipe 当页面被垂直或者水平拖动时触发.这个事件有其相关联的属性,分别为scrollSupressionThreshold, durationThreshold, horizontalDistanceThreshold, and verticalDistanceThresholdswipeleft 当页面被拖动到左边方向时触发swiperight 当页面被拖动到右边方向时触发 但是 tap 事