作家
登录

HTML5中手势原理分析与数学知识的实践

作者: 来源: 2017-08-16 09:10:15 阅读 我要评论

引言

在这触控屏的时代,人道化的手势操作已经深刻了我们生活的每个部分。现代应用越来越看重与用户的交互及体验棘手势是最直接且最为有效的交互方法,一个好的手势交互,能降低用户的应用成本和流程,大年夜大年夜进步了用户的体验。

近期,公司的多个项目中都敌势铀匦着较高的需求,已有的手势库无法完全cover,是以便撸了一个轻量、便于应用的移动端手势库。这篇博文主如果解析了移动端常用手势的道理,及早年端的角度进修过程中所应用的数学常识。欲望能对大年夜家有一点点的启发生发火用,也等待大年夜神们指出不足甚至缺点,感恩。

Tips :

因为 tap 及 swipe 很多基本库中包含,为了简便,是以并没有包含,但如不雅须要,可进行扩大;

a = -1i + 2j = -1(1,0) + 2(0,1) = (-1+0,0+2) = (-1,2);

然后经由过程共线定理我们可以断定出扭转的偏向,函数定义为:

实现道理

众所周知,所有的手势都是基于浏览器原闹事宜touchstart, touchmove, touchend, touchcancel进行的上层封装,是以封装的思路是经由过程一个个互相自力的事宜回调仓库handleBus,然后在原生touch事宜中相符前提的机会触发并传出计算后的参数值,完成手势的操作。实现道理较为简单清楚,先不急,我们先来理清一些应用到的数学概念并结合代码,将数学应用到实际问题中,数学部分可能会比较逝世板,但欲望大年夜家保持读完,信赖会收益良多。

基本数学常识函数

Tips: fire函数即遍历履行drag事宜对应的回调仓库即可;

我们常见的坐标系属于线性空间,或称向量空间(Vector Space)。这个空间是一个由点(Point) 和 向量(Vector) 所构成集合;

点(Point)

可以懂得为我们的坐标点,例如原点O(0,0),A(-1,2),经由过程原闹事宜对象的touches可以获取触摸点的坐标,参数index代表第几接触点;

向量(Vector)

是坐标系一一种 既有大年夜小也有偏向的线段,例如由原点O(0,0)指向点A(1,1)的箭头线段,称为向量a,则a=(1-0,1-0)=(1,1);

如下图所示,个中i与j向量称为该坐标系的单位向量,也称为基向量,我们常见的坐标系单位为1,即i=(1,0);j=(0,1);

获取向量的函数:

向量模

代表 向量的长度,记为|a|,是一个标量,只有大年夜小,没有偏向;

几何意义代表的是以x,y为直角边的直角三角形的斜边,经由过程勾股定理进行计算;

是以,我们必须要有个办法,来将matrix翻译成我们更为熟悉的translate/rotate/scale方法,在懂得了其道理后,我们便可以着手开端表演咯~

getLength函数:

向量的数量积

向量同样也具有可以运算的属性,它可以进行加、减、乘、数量积和向量积等运算,接下来就介绍下我们应用到的数量积这个概念,也称为点积,被定义为公式:

当a=(x1,y1),b=(x2,y2),则a·b=|a|·|b|·cosθ=x1·x2+y1·y2;

共线定理

共线,即两个向量处于 平行 的状况,当a=(x1,y1),b=(x2,y2),则存在独一的一个实数λ,使得a=λb,代入坐标点后,可以获得 x1·y2= y1·x2;

是以当x1·y2-x2·y1>0 时,既斜率 ka > kb ,所以此时b向量相对于a向量是属于顺时针扭转,反之,则为逆时针;

扭转角度

经由过程数量积公式我们可以推到求出两个向量的夹角:

cosθ=(x1·x2+y1·y2)/(|a|·|b|);

而矩阵是若何描述活动的呢?

矩阵与变换

因为空间最本质的特点就是其可以容纳活动,是以在线性空间中,

我们用向量来描述对象,而矩阵就是用来描述对象的活动;

我们知道,经由过程一个坐标系基向量便可以肯定一个向量,例如 a=(-1,2),我们平日商定的基向量是 i = (1,0) 与 j = (0,1); 是以:

而矩阵变换的,其实就是经由过程矩阵转换了基向量,大年夜而完成了向量的变换;

例如膳绫擎的栗子,把a向量经由过程矩阵(1,2,3,0)进行变换,此时基向量i由 (1,0)变换成(1,-2)与j由(0,1)变换成(3,0),沿用膳绫擎的推导,则

a = -1i + 2j = -1(-1,2) + 2(3,0) = (5,-2);

如下图所示:

A图表示变换之前的坐标系,此时a=(-1,2),经由过程矩阵变换后,基向量i,j的变换引起了坐标系的变换,变成了下图B,是以a向量由(-1,2)变换成了(5,-2);

其实向量与坐标系的接洽关系不变(a = -1i+2j),是基向量引起坐标系变更,然后坐标系沿用接洽关系导致了向量的变更;

 1/5    1 2 3 4 5 下一页 尾页

  推荐阅读

  机械键盘到底怎么选?300块钱买把真值吗?

国外的Techpowerup网站针对网友做了一项问卷查询拜访,标题是你愿意购买若干钱的键盘,至8月1日投票截止共获得8689张投票。在问卷查询拜访的5个选项中,50美元以下的选项占据了最多,然则>>>详细阅读


本文标题:HTML5中手势原理分析与数学知识的实践

地址:http://www.17bianji.com/lsqh/36718.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)