一种智能手机屏幕识别手绘圆形的方法技术

技术编号:27740343 阅读:26 留言:0更新日期:2021-03-19 13:33
本发明专利技术公开一种智能手机屏幕识别手绘圆形的方法,包括存储手势在画布中的所有的点的位置任取3个点求出圆心O的所在的位置,并以该圆心为直角坐标轴的原点,计算出半径R;测量所有点到圆心O的距离,并均与半径R进行做差计算出△Rn;把△Rn大于预设范围,提取出该点并标记为第一类,计算手势绘制出的图形的每相邻两点间的扇形角度a:计算所画图形每两个相邻点与圆心的连线之间的角度,并求和SUM(a)若SUM(a)小于360度,计算初始点(X

【技术实现步骤摘要】
一种智能手机屏幕识别手绘圆形的方法
本专利技术涉及智能手机软件领域,具体涉及一种智能手机屏幕识别手绘圆形的方法。
技术介绍
智能手机越来越强大,屏幕越来越大,基于智能手机的图像软件也愈发成熟,在用手机购物或者玩游戏的过程中,会有一些通过在手机屏幕表面进行手绘实现交互活动。在手机屏幕上绘制图片常用HTML5<canvas>标签通过脚本JavaScript绘制图像,并且同时能够提供了用于在画布上绘图的方法和属性。使用getContext("2d")对象属性和方法,可用于在画布上绘制文本、线条、矩形、圆形等等。而在手势绘画方面,需要在画图形的过程中对如果出现人的触摸轨迹与预设的圆形轨迹误差比较大,需要对用户发出重新绘画的请求,这就导致原来的基于脚本的绘画软件不适应。
技术实现思路
1.所要解决的技术问题:针对上述技术问题,本专利技术提供一种基于智能手机的圆形绘制方法,通过本方法能够对用户在手机界面上绘制的圆进行纠正,有效的减小用户绘制圆的时间,有助于提高用户体验。2.技术方案:一种智能手机屏幕识别手绘圆形的方法,包括以下步骤:步骤一:手机界面显示用来绘制的圆形图线的页面,同时系统在页面上创建透明画布。步骤二:页面监听器检测到手势,即检测到用户沿着步骤一显示的图线在手机显示屏表面绘图,手势TochStart事件获取手指在屏幕上的位置,在画布上绘制相应的点;手势TochMove事件获取手指移动的位置并在画布上绘制线;存储手势在画布中的所有的点的位置坐标为(xn,yn),其中n为大于等于1的整数。步骤三:从存储用来绘制的圆形图线的点上,任取3个点,根据垂径定律以及垂直线函数,求出手势绘制的圆形图线的圆心O的所在的位置,并且以该圆心为直角坐标轴的原点,同时根据三个点的坐标以及圆心,计算出该圆的半径R;更新所有点的坐标为(xn,yn),其中n为大于等于1的整数。步骤四:测量出的手势绘制出的图形中的所有点到圆心O的距离,并均与步骤三计算得出圆形半径R进行做差计算出△Rn;把△Rn大于预设范围,提取出该点并标记为第一类。步骤五:计算手势绘制出的图形的每相邻两点间的扇形角度a:计算公式如下式:a=180*[arctanabs(xm-xm-1)/abs(ym-ym-1)+arctanabs(xm-xm-2)/abs(ym-ym-2)]/π;上式中m为小于等于n的整数,计算所画图形每两个相邻点与圆心的连线之间的角度,并求和SUM(a);若SUM(a)小于预设的小角度则判断该图形为无效图形;若角度和SUM(a)小于360度,计算初始点(X0,Y0)所在的半径与X轴之间夹角为A0,和末点(Xlen,Ylen)所在半径与X轴之间夹角为Alen,并标记为第二类。对手势绘制出的图形进行纠正为圆形;循环手势绘制出的图形所有的点,如果点属于第一类,则清除原来点,重新绘制点(newx,newy),使新的点到圆心的距离为R,新的点所在的半径与X轴的夹角不变;判断第二类是否存在,若存在,创建弧/曲线A0到Alen的弧线,创建弧/曲线的命令为:canvas.arc(xO,yO,R,Min(A0,Alen),Max(A0,Alen)),其中xO,yO为圆心的坐标。进一步地,步骤三中,△Rn大于预设范围具体为-5至5个像素。进一步地,步骤四中的预设的小角度为45度。3.有益效果:本专利技术中根据手势绘制的轨迹随机选取三个点,通过该三个点算出这三个点的所在圆的半径及其圆心,后计算手势图形的其他点与该圆心距离,通过距离的长短能够调节手绘图形的整体形状;通过计算手绘图形所有夹角的大小和是否等于360度,如果没有则对该图形进行补充,提高了手绘圆形图形的成功率,且不会对画布上其他图形造成影响。附图说明图1为具体实施了中的举例的示意图。具体实施方式下面结合附图对本专利技术进行具体的说明。一种智能手机屏幕识别手绘圆形的方法,包括以下步骤:步骤一:手机界面显示用来绘制的圆形图线的页面,同时系统在页面上创建透明画布。步骤二:页面监听器检测到手势,即检测到用户沿着步骤一显示的图线在手机显示屏表面绘图,手势TochStart事件获取手指在屏幕上的位置,在画布上绘制相应的点;手势TochMove事件获取手指移动的位置并在画布上绘制线;存储手势在画布中的所有的点的位置坐标为(xn,yn),其中n为大于等于1的整数。步骤三:从存储用来绘制的圆形图线的点上,任取3个点,根据垂径定律以及垂直线函数,求出手势绘制的圆形图线的圆心O的所在的位置,并且以该圆心为直角坐标轴的原点,同时根据三个点的坐标以及圆心,计算出该圆的半径R;更新所有点的坐标为(xn,yn),其中n为大于等于1的整数。步骤四:测量出的手势绘制出的图形中的所有点到圆心O的距离,并均与步骤三计算得出圆形半径R进行做差计算出△Rn;把△Rn大于预设范围,提取出该点并标记为第一类。步骤五:计算手势绘制出的图形的每相邻两点间的扇形角度a:计算公式如下式:a=180*[arctanabs(xm-xm-1)/abs(ym-ym-1)+arctanabs(xm-xm-2)/abs(ym-ym-2)]/π;上式中m为小于等于n的整数,计算所画图形每两个相邻点与圆心的连线之间的角度,并求和SUM(a);若SUM(a)小于预设的小角度则判断该图形为无效图形;若角度和SUM(a)小于360度,计算初始点(X0,Y0)所在的半径与X轴之间夹角为A0,和末点(Xlen,Ylen)所在半径与X轴之间夹角为Alen,并标记为第二类。步骤六:对手势绘制出的图形进行纠正为圆形;循环手势绘制出的图形所有的点,如果点属于第一类,则清除原来点,重新绘制点(newx,newy),使新的点到圆心的距离为R,新的点所在的半径与X轴的夹角不变;判断第二类是否存在,若存在,创建弧/曲线A0到Alen的弧线,创建弧/曲线的命令为:canvas.arc(xO,yO,R,Min(A0,Alen),Max(A0,Alen)),其中xO,yO为圆心的坐标。进一步地,步骤三中,△Rn大于预设范围具体为-5至5个像素。进一步地,步骤四中的预设的小角度为45度。具体实施例:以附图1所示的圆为例,图中的圆形为需要通过手势进行画的圆形,图中以1、2、3、4、5、6、7七个点为例,7个点为通过手势在手机屏幕上绘的点;其中任取1、2、3三个点,根据垂径定律以及垂直线函数,求出手势绘制的圆形图线的圆心O所在的位置,并将该位置设置为直角坐标轴的原点;4、5点与圆心的距离小于预设的半径长,6、7两个点为大于预设的圆的半径长,4、5、6、7均属于第一类点;将所有手势在手机屏幕上绘制的所有的点如上面的7个点进行分类,分别计算出第一类点、第二类点与预设的半径差的平均值;根据两个平均值的大小即可判断出该手绘图片是否符合手绘的要求,如果不符合则则清除原来点,重新绘制点(new本文档来自技高网...

【技术保护点】
1.一种智能手机屏幕识别手绘圆形的方法,包括以下步骤:/n步骤一:手机界面显示用来绘制的圆形图线的页面,同时系统在页面上创建透明画布;/n步骤二:页面监听器检测到手势,即检测到用户沿着步骤一显示的图线在手机显示屏表面绘图,手势TochStart 事件获取手指在屏幕上的位置,在画布上绘制相应的点;手势TochMove事件获取手指移动的位置并在画布上绘制线;存储手势在画布中的所有的点的位置/n步骤三:从存储用来绘制的圆形图线的点上,任取3个点,根据垂径定律以及垂直线函数,求出手势绘制的圆形图线的圆心O的所在的位置,并且以该圆心为直角坐标轴的原点,同时根据三个点的坐标以及圆心,计算出该圆的半径R;更新所有点的坐标为(x

【技术特征摘要】
1.一种智能手机屏幕识别手绘圆形的方法,包括以下步骤:
步骤一:手机界面显示用来绘制的圆形图线的页面,同时系统在页面上创建透明画布;
步骤二:页面监听器检测到手势,即检测到用户沿着步骤一显示的图线在手机显示屏表面绘图,手势TochStart事件获取手指在屏幕上的位置,在画布上绘制相应的点;手势TochMove事件获取手指移动的位置并在画布上绘制线;存储手势在画布中的所有的点的位置
步骤三:从存储用来绘制的圆形图线的点上,任取3个点,根据垂径定律以及垂直线函数,求出手势绘制的圆形图线的圆心O的所在的位置,并且以该圆心为直角坐标轴的原点,同时根据三个点的坐标以及圆心,计算出该圆的半径R;更新所有点的坐标为(xn,yn),其中n为大于等于1的整数;
步骤四:测量出的手势绘制出的图形中的所有点到圆心O的距离,并均与步骤三计算得出圆形半径R进行做差计算出△Rn;把△Rn大于预设范围,提取出该点并标记为第一类;
步骤五:计算手势绘制出的图形的每相邻两点间的扇形角度a:计算公式如下式:
a=180*[arctanabs(xm-xm-1)/abs(ym-ym-1)+arctanabs(xm-xm-2)/abs...

【专利技术属性】
技术研发人员:庄玲燕陈明杰颜龙朱志鹏
申请(专利权)人:江苏龙虎网信息科技股份有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1