一种模拟转盘及其生成方法与流程

文档序号:13421486阅读:1745来源:国知局
一种模拟转盘及其生成方法与流程

本发明涉及互联网技术领域,尤其是一种模拟转盘及其生成方法。



背景技术:

抽奖、抓阄、娱乐是人们常见的活动,而这种活动中,特别是抽奖人们常用到转盘。传统的转盘通常体积较大,携带搬运非常不方便;而且转盘上内容需要定制,一旦定制完毕,修改非常不方便;传统的转盘由于其材质不均匀,让使用者觉得有造假的可能,降低参与者的信任度。

目前随着互联网的发展,网上也出现了一些模拟转盘,用来进行线上抽奖;但这种转盘通常是通过点击按钮开始旋转,而且旋转的速度无规律可循,和物理世界的转盘差异巨大,通常可以通过算法改变最终的结果,使人们难以信任其公平性。



技术实现要素:

本发明的发明目的在于:针对上述存在的问题,提供一种模拟现实转盘的模拟转盘,具有真正的随机性、公平性,其部署方便、配置简单,内容丰富,独特的转动音效和手势操作增加了用户的参与感;可部署于web、pc及手机等智能设备,可用来进行抽奖,抓阄,娱乐等。

本发明采用的技术方案如下:

本发明一种模拟转盘的生成方法,包括:建立转盘初始数据,对初始数据进行配置;绘制转盘界面;建立手势移动和转盘转动的联动关系,手势触发转盘转动;设定转盘停止转动的触发条件,控制转盘停止转动;计算转盘转动的结果。

进一步,所述数据配置的方法,包括:

s11后台可通过txt、excel、xml配置初始数据;

s12转盘程序启动后加载s11中的配置数据,写入数据库文件;

s13转盘程序运行过程中,可动态修改数据库文件。

进一步,所述绘制转盘界面的方法,包括:在画布上分别绘制转盘框架背景和转盘上方箭头指针,以及分割线和文字。

进一步,所述绘制分割线和文字的方法,包括:

s231根据配置数据,确定转盘均分的份数f;

s232计算每份所占度数d=360°/f;

s233确定转盘框架背景中心所在的坐标点p0;

s234确定转盘框架背景最右方所在的坐标点p1;

s235在画布上沿着坐标点p0到p1绘制出分割线;

s236将画布顺时针旋转度数d/2;

s237在抽奖内容中取一份文字,绘制在坐标p1点附近;

s238将画布顺时针旋转度数d/2;

s239重复步骤s235~s238,直到绘制出完整分割线和文字。

进一步,所述手势移动和转盘转动的联动方法,包括:

s31设定重绘最小移动距离δt;设置当前旋转角度α,并初始化为0;

s32获取步骤s233的中心点坐标p0;

s33记录手指按下时坐标p1;

s34记录手指移动后坐标p2;

s35计算变换的角度δα;

s36界面重绘,为当前旋转角度α重新赋值,α1=α+δα,将画布旋转新的α1值;

s37在步骤s35求出δα后,将p2点的值复制给p1点,重复s34~s36步骤。

进一步,所述转盘停止转动的控制方法,包括:

s41设定停止时速率v,设定当前速率s;

s42手指离开转盘后,计算初始速率v,并将初始速率v赋值给当前速率s;

s43根据公式α2=α+s,将α2加上当前速率s,重新给当前角度α2赋值,将画布旋转新的α2值;

s44重新计算当前速率s1,设定衰减系数c,所述衰减系数c大于0并且小于1,将s和衰减系数c求积,当前速率s1=s*c,将当前速率s1赋值给s;

s45判断当前速率s1是否小于等于v,若小于等于v则触发停止事件,若大于,则重复步骤s43~s45。

进一步,所述计算转盘转动结果的方法,包括:

s51当s45触发停止事件后,将步骤s43得到的当前角度α2转换为360°以内的角度a,a=α2%360;

s52当a为负时,a加上360°为最终的度数a;

s53根据步骤s232的每份所占度数d与每项转盘内容之间的关系,求得最终的度数a对应的转盘内容。

进一步,还包括在转盘转动中,进行音效播放,所述音效播放的方法,包括:

s61给上次旋转度数pα赋值为0;

s62每次界面重绘时,计算α-pα是否大于步骤s232中得到的d;

s63若步骤s62得到的值大于d则播放音效,且将α的值复制给pα;

s64循环步骤s62~s63,直到步骤s45触发停止事件。

进一步,所述手势移动和转盘转动的联动中,手势触发转盘的方法包括传感器触发,传感器触发转动的方法,包括:

s71设定传感器触发转动的阀值f;

s72当传感器的检测值大于f时,将传感器的检测值复制给步骤s42的初速度s,然后继续步骤s42~s45。

本发明一种模拟转盘,包括:转盘框架、转盘指针、转盘内容自动生成模块、手势联动模块、转盘停止转动模块、转动结果计算模块和传感器;所述转盘框架上安装有转盘指针;所述转盘内容自动生成模块,用于将输入的字符自动等分成若干份,每份中显示对应的文字;所述手势联动模块,用于将手势移动和转盘转动关联,当手势移动,转盘会相应的转动;所述转盘停止转动模块,根据设定的停止转动事件的触发条件,用于控制转盘停止转动;所述转动结果计算模块,用于计算转盘停止后指针指向的转盘内容;所述传感器,用于检测手指的按压和移动;还包括音效播放模块,所述音效播放模块,用于在转动中播放音效。

工作原理:程序化模拟现实世界的转盘;在画布上绘制转盘框架、转盘指针;根据输入的文字,通过等分线自动将转盘框架等分成若干份数,每份中显示对应的文字用来生成转盘内容界面;通过手势移动和转盘转动联动,采用手势、鼠标滑动或传感器数据模拟手势转动转盘;其中,转盘的转动方向和手势相同,转盘转动的起始速度和手势滑动的速度成正比;转盘转动后基于算法平滑停止转盘;根据肉眼或算法计算出最终转动结果。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、能够实现转盘结果的随机性和公平性;转盘是基于手势的移动速度,逐渐的衰减,随机的停止,只能计算结果,不能通过算法控制结果,同时不受转盘材质的影响,达到比现实转盘更好的随机性。

2、手势操作,增加体感,更接近现实世界的转盘,现有的模拟转盘只是采用点击触发,然后通过算法控制转盘转动,没有达到手势控制转盘转动的效果,同时像现实转盘一样基于速度的变化控制转盘转动停止。

3、在转动中实现的音效播放,能够增加了用户的参与感。

4、用户可自动设置转盘内容,自由更换转盘内容,可重复使用,设置方便,内容丰富。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明一种模拟转盘的生成方法的流程图。

图2是实施例二模拟转盘的生成方法流程图。

图3是本发明中计算变换的角度δα的方法示意图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书(包括任何附加权利要求、摘要)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

实施例一:

如图1,本发明一种模拟转盘的生成方法,包括:建立转盘初始数据,对初始数据进行配置;绘制转盘界面;建立手势移动和转盘转动的联动关系,手势触发转盘转动;设定转盘停止转动的触发条件,控制转盘停止转动;计算转盘转动的结果。

实施例二:

如图2,先进行抽奖数据的配置,然后在画布上绘制转盘界面;检测手指是否按下和移动;当手指移动后,检测手指是否离开转盘,若手指没有离开转盘,检测手指移动的距离是否大于最小距离,若大于,旋转画布重绘界面;若手指离开转盘,判断转盘速率是否大于最小速率;若是,对当前角度重新赋值,旋转画布重绘界面;判断当前的角度是否大于上次角度;若是,播放音效,衰减当前速率;若否,直接衰减当前速率;衰减当前速率后,判断当前的速率是否大于停止速率,若否,回到对当前角度重新赋值步骤,若是,进行抽奖结果计算。

抽奖数据配置

1.1后台可通过txt、excel、xml等配置初始数据;

1.2程序启动后加载1.1配置数据,写入数据库文件;

1.3程序运行过程中,可以动态修改数据库文件。

界面绘制

2.1绘制转盘框架背景在画布上;

2.2绘制转盘上方箭头指针在画布上;

2.3绘制分割线和文字;

2.3.1根据1.2或1.3的数据,确定转盘均分份数f;

2.3.2每份所占度数d=360°/f;

2.3.3计算出转盘框架背景中心所在的坐标点p0;

2.3.4计算出转盘框架背景最右方所在的坐标点p1;

2.3.5沿着坐标点p0到p1绘制出分割线在画布上;

2.3.6将画布顺时针旋转度数d/2

2.3.6在抽奖内容中取一份文字绘制在坐标p1点附近;

2.3.7将画布顺时针旋转度数d/2;

2.3.8重复步骤2.3.5~2.3.7,直到绘制出完整分割线和文字。

手势联动

手势联动就是实现手势的移动就像在真实的转盘上移动一样,转盘会跟随手指的移动而同方向、同速度转动;

3.1设定重绘最小移动距离δt,防止因为手势微小移动而出现界面抖动,设置变量当前旋转角度α并初始化为0;

3.2获取2.3.3的中心点坐标p0;

3.3记录手指按下时坐标p1;

3.4记录手指移动后坐标p2;

3.5计算变换的角度δα;

如图3,3.5.1若p2的x轴-p1的x轴的绝对值大于δt或者p2的y轴-p1的y轴的绝对值大于δt,则可计算出变化的角度δα;

3.5.2δα的计算公式

3.5.2.1先求p2(x2,y2)所在的点与转盘中心点p0(x0,y0)构成的边相对于x轴的弧度,将所得弧度转换为角度;

3.5.2.2再求p1(x1,y1)所在的点与转盘中心点p0(x0,y0)构成的边相对于x轴的弧度,将所得弧度转换为角度;

3.5.2.3.将步骤3.5.2.1的角度减去步骤3.5.2.2的角度即为变化的角度δα;

3.6界面重绘,为当前旋转角度α重新赋值,α1=α+δα,然后将画布旋转新的α1值,这样就达到了转动的效果。

3.7在步骤3.5.2.4求出δα后,将p2点的值复制给p1点,然后重复3.4~3.6步骤,这样就达到了手势联动效果。

在手势联动中,模拟手势触发转盘转动的方法包括检测手指的移动、鼠标滑动或设置传感器来接收其他变化信息,触发转盘转动,如晃动手机,摇一摇。

转动效果与停止转动事件的触发

4.1设定停止时速率v;

4.2求出初始速率v,当手指离开转盘后,可根据手指移动的距离和时间,计算出初始速率v;并将初始速率v赋值给当前速率s;

4.3给当前角度α2重新赋值,我们可以将α加上当前速率s,重新给α2赋值,公式为α2=α+s将画布旋转新的α2值,这样就达到了转动的效果;

4.4重新计算当前速率s1,约定衰减系数c(系数需大于0并且小于1,系数越大衰减越快),将s和衰减系数求积,公式为s1=s*c;

4.5判断s1是否小于等于v,如果小于等于v则触发停止事件,如果没有,则重复步骤4.3~4.5。

结果计算

5.1当4.5触发停止事件后,我们可以由步骤4.3得到当前角度α1;

5.2求出将α1转换为360°以内的角度a,由于α是累加得出,我们对α求余即可,公式为a=α%360,%为求余数;

5.3由于我们可以顺时针和逆时针旋转,固由5.2求出的a可能为负,当为负时,我们可以根据数学原理加上360°即可求出最终的度数a;

5.4由步骤2.3.2我们可以知道每份所占度数d,那么我们就知道了的每个奖项对应的度数,若我们一共设置了3个奖项,那么d为120°,第一个奖项的范围为大于等于0且小于120,第二个为大于等于120且小于240,第三个为大于等于240且小于360,当奖项数不一样时。

音效播放

在转盘转动中,步骤4.3后,若当前的角度大于上次角度进行音效播放,所述音效播放的方法,包括:

6.1给上次旋转度数pα赋值为0;

6.2每次界面重绘时,计算α-pα是否大于2.3.2得到的d;

6.3如果步骤6.2得到的值大于d则播放音效,且将α的值复制给pα;

6.4循环步骤6.2~6.3直到步骤4.5触发停止事件。

传感器使用

7.1设传感器触发转动的阀值f;

7.2在智能移动设备上一般配有加速度传感器,晃动设备时,当传感器的值大于f时,我们触发将传感器的值复制给步骤4.2的初速度s,然后继续步骤4.2~4.5。

实施例三:

本发明一种模拟转盘,包括:转盘框架、转盘指针、转盘内容自动生成模块、手势联动模块、转盘停止转动模块、转动结果计算模块和传感器;所述转盘框架上安装有转盘指针;所述转盘内容自动生成模块,用于将输入的字符自动等分成若干份,每份中显示对应的文字;所述手势联动模块,用于将手势移动和转盘转动关联,当手势移动,转盘会相应的转动;所述转盘停止转动模块,根据设定的停止转动事件的触发条件,用于控制转盘停止转动;所述转动结果计算模块,用于计算转盘停止后指针指向的转盘内容;所述传感器,用于检测手指的按压和移动;还包括音效播放模块,所述音效播放模块,用于在转动中播放音效。

本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1