一种拖动移向判断的方法和系统的制作方法

文档序号:6332246阅读:225来源:国知局
专利名称:一种拖动移向判断的方法和系统的制作方法
技术领域
本发明涉及拖动移向领域,尤其涉及一种拖动移向判断的方法和系统。
背景技术
当终端平台用户在一个画面上从某点拖动到另一个点来查看这个点区域的具体 画面时,通常需要判断拖动移动方向,根据移动方向和偏移量大小来获取和改变画面。 现有技术中,一般实现4个方向(上、下、左、右)的移动,即坐标轴方向,如图1所 示,现将坐标轴形成的4个夹角做2等分,即直线AB、CD,用虚线表示。用户从O点 拖动移向到另一点落在直线AB和CD所形成的夹角里面。在直线AB与CD所形成的夹 角AOC中,判定拖动移动方向为向上(即射线OE),依次类推,在夹角BOD里判定拖 动移动方向向下(即射线OF),在夹角COB里判定移动方向向左(即射线OG),在夹角 AOD里判定移动方向向右(即射线OH)。这是普遍的做法,显然这种判定方法不够准 确,比较粗略,例如,当用户通过原点O (坐标为(xl,yl))移动到P点(坐标为(x2, y2)),蓝色射线OP所示,该方法把移动方向归为向上移动了,其实该方向更倾向于斜向 右上方向OA(夹角45度)。这种方案在技术上实现,一般采用三角函数来具体判定另一 个落点P所在的区域,通常采用正切函数,通过斜率来判断,可行的一种算法为先大 概判断向X、Y轴移动方向,再比较X和Y坐标的偏移量,比如方向向上的判断条件为 y2 >yl&&|y2_yl| > |x2-xl|,其中y2>yl,限定了移动方向是X轴以上方向,包括夹 角GOC (代表方向向左)、夹角AOC (代表方向向上)、右夹角AOH(代表方向向右), 之后再通过条件|y2-yl| > |x2-xl|判定P点落在夹角AOC中,因为射线OP斜率的绝对值 大于1(临界条件就是P点落在射线OA或OC上,此时斜率绝对值为1,与X轴夹角为 45度或135度)。通过类似方法可以类推其他三个方向的条件。现有技术方案的缺点可用于判断拖动移向的方向数量少,而通常应用中需要判断更多方向,而且方 向越小,移动效果越差,拖动移向误差明显;现有技术的算法的扩展性不强,不具备伸 缩性,在某些终端平台,如JavaME中CLDC 1.0配置下,浮点数运算在特定的配置环境 下不支持,通用性不强。

发明内容
本发明实施例的目的在于提出一种拖动移向判断的方法和系统,旨在解决现有 技术中判断拖动移向的方向的数量少、误差大、刷新慢、不易扩展的问题。本发明实施例是这样实现的,一种拖动移向判断的方法,包括以下步骤自定义正切表赋值;触发拖动移向请求,确定起始点和终点;对所述的每个η等分夹角再进行二等分,形成第二个的η等分夹角;判断拖动移向是否为4个坐标轴方向重合;
如果是,拖动移向的方向为其中的一个坐标轴方向;如果否,确定拖动移向所在象限;根据终点坐标相对于原点坐标偏移量的正切值与自定义正切表中的数值确定拖 动移向的方向。本发明实施例的另一目的在于提出一种判断拖动移向的系统,所述的系统包 括正切表初始模块、坐标处理模块、象限判断模块、移向判断模块;正切表初始模块,与坐标处理模块和移向判断模块相连,用于根据所要判断拖 动移向的方向的数量对正切表赋值,接收移向判断模块获取正切值的请求,并发送符合 条件的正切值到移向判断模块;坐标处理模块,与正切表初始模块和象限判断模块相连,用于触发拖动移向请 求,确定拖动移向起始点和终点坐标;象限判断模块,与坐标处理模块和移向判断模块相连,用于判断坐标处理模块 触发的拖动移向的所在象限,并请求移向判断模块根据拖动移向所在象限进行拖动移向 的判断;移向判断模块,与象限判断模块和正切表初始模块相连,用于接收象限判断模 块发来的拖动移向的所在具体象限的结果,k倍放大终点坐标相对于原点坐标的偏移量的 正切值,与正切表初始模块的各正切值逐个对比确定拖动移向的方向。本发明的有益效果本发明实施例中通过η个方向来判断拖动移向,其中共分为2η个夹角,拖动移 向判断误差在360° /2η夹角内(η可以无限大扩展,η越大,误差越小,),计算终点坐 标偏移量的正切值,再与正切表里取值进行比较,从而确定移动的方向;在不支持浮点 数运算的系统或设备中,把正切值无限放大;本发明支持所有系统和设备,扩展性好, 判断移动方向精确、误差小,准确率较高,刷新快。


图1是现有技术判断拖动移向的方法示意图;图2是本发明实施例一种判断拖动移向的方法流程图;图3是本发明实施例8个方向判断拖动移向的方法示意图;图4是本发明实施例一种判断拖动移向的系统结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施 例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部 分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发 明。本发明通过确定用来判断拖动移向的方向的数量,对自定义正切表进行赋值, 当触发拖动移向请求时,确定起始点和终点,以起始点为原点,确定水平X轴和垂直Y 轴,以原点和水平X轴为一条边开始绕原点均分为η个夹角,共形成η条边,每条边为一 个移向,再对每个夹角进行二等分,形成第二个η等分夹角,根据终点相对起点的偏移量的正切函数和自定义正切表中的数值确定拖动移向的方向。实施例一图2是本发明实施例一种判断拖动移向的方法流程图。所述的方法包括以下步 骤S201,自定义正切表赋值;根据判断拖动移向的方向的数量η (n ^ 2),来确定正切表的赋值,此处为了方便 理解,以8个方向为例说明,如图4所示,tanTable = {k*tan22.5°,k*tan67.5°丨,其中 tanTable为正切表,22.5°为360°分为16等分夹角的度数,67.5°为一个16等分夹角与 一个8等分夹角的和;其中k为正整数,当系统不支持浮点数运算时,k无限大,且每个 正切值的赋值是经调用外部工具生成;同样可以采用余切、正弦、余弦、正割、余割三角函数方法实现余切表、正弦 表、余弦表、正割表、余割表的赋值,具体算法类似,这里不做一一叙述;S202,触发拖动移向请求,确定起始点和终点;以8个方向为例说明,如图3所示,从O向P拖动,形成直线OP,O为起始 点,P为终点,其中OP可以为任何一个方向,此处以图4的OP位置为例,OP所在位置 为第一象限;S203,以起始点为原点,确定水平X轴和垂直Y轴;S204,以水平X轴为一条边开始围绕原点分为η等分夹角,共形成的η条边作为 移动的η个方向;以8个方向为例说明,如图4所示,共形成8等分夹角为ΒΟΑ、Α0Η、 HOG、GOF> FOE、EOD> DOC、COB,其中 8 条边 OA、OH、OG、OF、OE、OD、
OC> OB为拖动移向的方向;S205,对所述的每个η等分夹角再进行二等分,形成第二个的η等分夹角;以8个方向为例说明,如图4所示,共形成第二个8等分夹角为IOJ、J0K、 KOL> LOM、MON、NOQ> QOR、ROI,其中,OP落入第二个8等分夹角后的拖动移 向的方向分别是 0J、01、OR、OQ > ON、OM、OL > OK;S206,判断拖动移向是否为4个坐标轴方向重合;根据Δ X、Δ Y的取值进行判断OP在坐标轴上的拖动移向,其中ΔΧ、ΔΥ为 P点相对于起点O的坐标偏移量;S207,如果是,则拖动移向为其中的一个坐标轴方向;以8个方向为例说明,如图4所示,判断方法为如果Δ X = O且Δ Y > 0,则OP的拖动移向为OH ;如果Δ X = O且Δ Y < 0,则OP的拖动移向为OD ;如果Δ X > O且Δ Y = O 则OP的拖动移向为OB ;如果Δ X < O且Δ Y = 0,则OP的拖动移向为OF ;S208,如果否,确定拖动移向所在象限;S209,根据终点坐标偏移量的正切值与自定义正切表中的数值确定拖动移向的 方向;以8个方向为例说明,如图4所示
如果ΔΧ>0且ΔΥ>0,则OP在第一象限,这时判断条件k* Δ Y/Δ X
<tanTable
是否成立,条件成立则确定OP拖动移向为OB ;否则,判断条件tanTable
Sk* Δ Y/Δ X&&k* Δ Y/ Δ X<tanTable[l]是否成立,
条件成立则确定OP拖动移向为OA ;否则,OP的拖动移向为OH;所述的k为正整数,当系统不支持浮点数运算时,k无限大;如果ΔΧ>0且ΔΥ<0,则OP在第四象限,这时判断条件k* Δ Y/Δ X
>-tanTable
是否成立,条件成立则确定OP拖动移向为OB ;否贝丨J,判断条件-tanTable
> k* Δ Y/ Δ X&&k* Δ Y/ Δ X > _tanTable[l]是否成
立,条件成立则确定OP拖动移向为OC ;否则,OP的拖动移向为OD;所述的k为正整数,当系统不支持浮点数运算时,k无限大;如果ΔΧ<0且ΔΥ>0,则OP在第二象限,这时判断条件k* Δ Y/Δ X
>-tanTable
是否成立,条件成立则确定OP拖动移向为OF ;否贝丨J,判断条件_tanTable
> k* Δ Y/ Δ X&&k* Δ Y/ Δ X > _tanTable[l]是否成
立,条件成立则确定OP拖动移向为OG ;否则,OP的拖动移向为OH;所述的k为正整数,当系统不支持浮点数运算时,k无限大;如果ΔΧ<0且ΔΥ<0,则OP在第三象限,这时判断条件k* Δ Y/Δ X
<tanTable
是否成立,条件成立则确定OP拖动移向为OF ;否则,判断条件tanTable
Sk* Δ Y/Δ X&&k* Δ Y/ Δ X<tanTable[l]是否成立, 条件成立则确定OP拖动移向为OE ;否则,OP的拖动移向为OD;所述的k为正整数,当系统不支持浮点数运算时,k无限大。本发明实施例中通过n(n^2)个方向来判断拖动移向,其中共分为2η个夹角, 拖动移向判断误差在360° /2η夹角内,误差更小,准确率较高,刷新更快,同时,η可 以无限大扩展,η越大,误差越小,拖动移向更精确,此方法还可以采用余切、正弦、余 弦、正割、余割三角函数方法实现。实施例二图4是本发明实施例一种判断拖动移向的系统结构图。所述的系统包括正切表初始模块、坐标处理模块、象限判断模块、移向判断 模块;正切表初始模块,与坐标处理模块和移向判断模块相连,用于根据所要判断拖 动移向的方向的数量对正切表赋值,接收移向判断模块获取正切值的请求,并发送符合 条件的正切值到移向判断模块;此处为了方便理解,以8个方向为例说明,如图4所示,所述根据判断拖动移向 的方向的数量为 8,tanTable = {k*tan22.5°,k*tan67.5° },其中 tanTable 为正切表,
22.5°为360°分为16等分夹角的度数,67.5°为一个16等分夹角与一个8等分夹角的 和;其中k为正整数,当系统不支持浮点数运算时,k无限大,且每个正切值的赋值是经调用外部工具生成;坐标处理模块,与正切表初始模块和象限判断模块相连,用于触发拖动移向请 求,确定拖动移向起始点和终点坐标;象限判断模块,与坐标处理模块和移向判断模块相连,用于判断坐标处理模块 触发的拖动移向的所在象限,并请求移向判断模块根据拖动移向所在象限进行拖动移向 的判断;所述的象限判断是根据拖动移向的终点坐标相对于原点坐标的偏移量的取值来 确定;移向判断模块,与象限判断模块和正切表初始模块相连,用于接收象限判断模 块发来的拖动移向的所在具体象限的结果,k倍放大终点坐标相对于原点坐标的偏移量的 正切值,与正切表初始模块的各正切值逐个对比确定拖动移向的方向;所述拖动移向的方向是以拖动移向的起始坐标为原点以水平X轴为一条边围绕 原点进行判断拖动移向的方向数量的等分形成的夹角的其中一条边的方向;以8个方向为例说明,如图4所示,共形成8等分夹角为BOA、AOH、 HOG、GOF> FOE、EOD> DOC、COB,其中 8 条边 OA、OH、OG、OF、OE、OD、 OC> OB为拖动移向的方向;所述具体象限的结果是指拖动移向所在的是第几象限。所述的正切表同样可以采用余切、正弦、余弦、正割、余割三角函数方法实现 余切表、正弦表、余弦表、正割表、余割表的赋值,具体算法类似,这里不做一一叙 述。所述的判断拖动移向的系统工作过程如下正切表初始模块根据所要进行判断拖动移向的方向的数量来确定正切表的赋 值;坐标处理模块触发拖动移向请求,确定起始点和终点的坐标;象限处理模块判断拖 动移向的方向所在的象限,并发送请求到移向判断模块进行拖动移向的方向判断;移向 判断模块接收到象限处理模块确定的拖动移向具体象限的结果,与正切表初始模块的各 正切值逐个比较确定拖动移向的方向;本发明实施例中正切表的赋值可自定义赋值也可调用外部系统赋值,同时正切 表初始模块可以灵活扩展到余切、正弦、余弦、正割、余割赋值并作为判断条件;赋值 的数量根据判断拖动移向的方向数量来确定,赋值可以无限大倍数扩大,适用不支持浮 点数运算的系统,判断拖动移向的方向数量越多,误差越小,刷新越快。
权利要求
1.一种拖动移向判断的方法,其特征在于,所述方法包括以下步骤 自定义正切表赋值;触发拖动移向请求,确定起始点和终点; 以起始点为原点,确定水平X轴和垂直Y轴; 以水平X轴为一条边开始围绕原点起始点分为η等分夹角; 对所述的每个η等分夹角再进行二等分,形成第二个的η等分夹角; 根据终点坐标偏移量的正切值与自定义正切表中的数值的关系确定起始点和终点的 连线的拖动移向。
2.如权利要求1所述的拖动移向判断方法,其特征在于,所述正切表赋值为 tanTable = {k*tan22.5°,k*tan67.5° };其中tanTable为正切表,22.5°为360°分为16等分夹角的度数,67.5°为一个16等 分夹角与一个8等分夹角的和;其中k为正整数,当系统不支持浮点数运算时,k无限 大,且每个正切值的赋值是经调用外部工具生成。
3.如权利要求1所述的拖动移向判断方法,其特征在于所述“自定义正切表赋值”步骤可替换为“自定义余切/正弦/余弦/正割/余割 表赋值”;所述“根据坐标偏移量的正切值与自定义正切表中的数值的关系确定起始点和终点 的连线的拖动移向”可替换为“根据坐标偏移量的余切/正弦/余弦/正割/余割值与 自定义余切/正弦/余弦/正割/余割表中的数值的关系确定起始点和终点的连线的拖动 移向”。
4.如权利要求1所述的拖动移向判断方法,其特征在于,步骤“根据所述终点坐标偏 移量的正切值与自定义正切表中的数值的关系确定起始点和终点的连线的拖动移向”之 前还包括步骤判断起始点和终点的连线是否与4个坐标轴方向重合;如果是,则根据终点横坐标和纵坐标的偏移量来确定起始点和终点的连线方向; 如果否,判断起始点和终点的连线所在象限;进入步骤“根据终点坐标偏移量的正切值与自定义正切表中的数值的关系确定起始 点和终点的连线的拖动移向”。
5.如权利要求4所述的拖动移向判断方法,其特征在于,步骤“判断起始点和终点的 连线是否与4个坐标轴方向重合”具体为如果ΔΧ = 0且Δ Y > 0,则起始点和终点的连线的拖动移向为Y轴的正方向; 如果ΔΧ = 0且Δ Y < 0,则起始点和终点的连线的拖动移向为Y轴的负方向; 如果ΔΧ>0且ΔΥ = 0:则起始点和终点的连线的拖动移向为X轴的正方向; 如果ΔΧ < 0且Δ Y = 0,则起始点和终点的连线的拖动移向为X轴的负方向; 其中Δ X为终点在X轴上的偏移量,Δ Y是终点在Y轴上的偏移量。
6.如权利要求1所述的拖动移向判断方法,其特征在于,所述“根据终点坐标偏移量 的正切值与自定义正切表中的数值的关系确定起始点和终点的连线的拖动移向”具体包 括如果ΔΧ>0且ΔΥ>0,则起始点和终点的连线在第一象限,这时判断条件k*AY/ΔΧ < tanTable
是否成立,条件成立则确定起始点和终点的连线拖动移向为X轴正方 向;成立则确定起始点和终点的连线拖动移向为第一象限对角线方向; 否则,起始点和终点的连线的拖动移向为Y轴正方向;如果ΔΧ>0且ΔΥ<0,则起始点和终点的连线在第四象限,这时判断条件k*AY/ Δ X > -tanTable
是否成立,条件成立则确定起始点和终点的连线拖动移向为X轴正方 向;件成立则确定起始点和终点的连线拖动移向为第四象限对角线; 否则,起始点和终点的连线的拖动移向为Y轴负方向;如果ΔΧ<0且ΔΥ>0,则起始点和终点的连线在第二象限,这时判断条件k*AY/ Δ X > -tanTable
是否成立,条件成立则确定起始点和终点的连线拖动移向为X轴负方 向;件成立则确定起始点和终点的连线拖动移向为第二象限对角线方向; 否则,起始点和终点的连线的拖动移向为Y轴正方向;如果ΔΧ<0且ΔΥ<0,则起始点和终点的连线在第三象限,这时判断条件k*AY/ ΔΧ < tanTable
是否成立,条件成立则确定起始点和终点的连线拖动移向为X轴负方 向;成立则确定起始点和终点的连线拖动移向为第三象限对角线方向; 否则,起始点和终点的连线的拖动移向为Y轴负方向;其中ΔΧ、ΔΥ为终点相对于起始点在X轴、Y轴上的偏移量;tanTable
、 tanTable[l]表示各夹角的正切值的K倍;&&表示前后两个条件必须都满足;k为正整 数,当系统不支持浮点数运算时,k无限大,且每个正切值的赋值是经调用外部工具生 成。
7.—种拖动移向判断的系统,其特征在于,所述系统包括 正切表初始模块、坐标处理模块、象限判断模块、移向判断模块; 正切表初始模块,与坐标处理模块和移向判断模块相连,用于根据所要判断移向的 方向数的数量对正切表赋值,接收移向判断模块获取正切值的请求,并发送符合条件的 正切值到移向判断模块;坐标处理模块,与正切表初始模块和象限判断模块相连,用于触发拖动移向请求, 确定拖动移向起始点和终点坐标;象限判断模块,与坐标处理模块和移向判断模块相连,用于判断坐标处理模块触发 的拖动移向的所在象限,并请求移向判断模块根据拖动移向所在象限进行拖动移向的判 断;移向判断模块,与象限判断模块和正切表初始模块相连,用于接收象限判断模块发 来的拖动移向的所在具体象限的结果,k倍放大终点坐标相对于原点坐标的偏移量的正切值,与正切表初始模块的各正切值逐个对比确定拖动移向的方向。
8.如权利要求7所述的拖动移向判断系统,其特征在于所述正切表 tanTable = {k*tan22.5°,k*tan67.5° },22.5° 为 360° 分为 16 等分夹 角的度数,67.5°为一个16等分夹角与一个8等分夹角的和;其中k为正整数,当系统 不支持浮点数运算时,k无限大,且每个正切值的赋值是经调用外部工具生成。
9.如权利要求7所述的拖动移向判断系统,其特征在于所述“正切表初始模块”可替换为“余切/正弦/余弦/正割/余割表初始模块”; 所述“正切值”替换为“余切/正弦/余弦/正割/余割值”。
全文摘要
本发明公开一种拖动移向判断的方法和系统,本发明通过n个方向来判断拖动移向,其中共分为2n个夹角,拖动移向判断误差在360°/2n夹角内,n可以无限大扩展,n越大,误差越小,拖动移向更精确;计算坐标偏移量的正切值,再与正切表里取值进行比较,从而确定拖动移动的方向;本发明方法具有良好扩展性和通用性,可准确判断拖动移向的方向。
文档编号G06F3/048GK102012782SQ20101028548
公开日2011年4月13日 申请日期2010年9月17日 优先权日2010年9月17日
发明者宋叶祥 申请人:深圳市融创天下科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1