一种平面绘图时多边形合并的方法

文档序号:6536415阅读:197来源:国知局
一种平面绘图时多边形合并的方法
【专利摘要】本发明属于移动应用开发【技术领域】,提供了一种平面绘图时多边形合并的方法,包括:记录用户拖拽或者绘制矩形的位置;实时判断该矩形是否和其他绘制的矩形有重叠,是否能够合并;计算重叠矩形的交点;剔除合并后遮挡的点;统计点集合,包括原先矩形的4角点坐标和交点坐标以及遮挡点坐标;在点集合中计算出X、Y轴坐标值及其最小的点;通过最小点推算串联的第二个点,以此类推直到最后点为最小点停止;根据推算出的串联点顺序生成新的多边形对象。本发明能够在触摸屏的安卓操作环境下快速绘制出多个矩形,并且能够将多个矩形合并成多边形,敏感度高、精确度高,绘制更加快捷、方便,适用性更强。
【专利说明】一种平面绘图时多边形合并的方法
【技术领域】
[0001]本发明属于移动应用开发【技术领域】,特别涉及一种平面绘图时多边形合并的方法。
【背景技术】
[0002]安卓是移动开发技术发展历程上的一个里程碑,是现代移动设备开发技术基础上的一个移动应用程序框架。
[0003]现代移动设备中智能手机和平板电脑越来越受到人们的青睐,全球的手机用户数已经超过了 30亿,2013年截止第二季度按照操作系统划分,安卓操作系统依旧是智能手机市场的王者,占据全球智能手机市场份额近80%,现代智能手机日益流行,再加上高速手机数据和WiFi热点也越来越多,这使得市场对高级移动应用程序的需求越来越大。基于安卓系统的平面绘图方法改变了目前PC设备为主的绘制平面图的方法。
[0004]早期的手工绘图,工作人员拿着几个不同粗细的墨笔,丁字尺、三角板和曲线板等工具在手里不停的更换,一旦画错重新来过,修修补补显得图面非常脏乱,有了电脑之后相继出现CAD\CORAIDRAW\Photo ship\CAXA绘图软件,这些绘图软件虽然计算精度和速度是手工绘图无法比拟的,但是只能在装有Windows操作系统上绘制图形,如果对现场图纸进行绘制,要携带笔记本电脑、3G无线上网卡、测量器具等工具,绘图的数据主要依靠手工记录为主,数据的收集不便,靠人工收集数据转换后输入电脑,耗费时间多,携带设备不方便,笔记电池续航能力不足。
[0005]因此,移动应用开发【技术领域】急需一种能够在触摸屏的安卓操作环境下快速绘制出多个矩形,并且能够将多个矩形合并成多边形,敏感度高、精确度高的平面绘图时多边形合并的方法。

【发明内容】

[0006]本发明提供了一种平面绘图时多边形合并的方法,技术方案如下:
[0007]—种平面绘图时多边形合并的方法,其特征在于,包括如下步骤:
[0008]步骤一:记录用户拖拽或者绘制矩形的位置;
[0009]步骤二:实时判断该矩形是否和其他绘制的矩形有重叠,是否能够合并;
[0010]步骤三:计算重叠矩形的交点;
[0011]绘制矩形后得到矩形的四个角坐标、一条对角线长度和四条边的长度,然后根据矩形的4条边进行交点的计算,将计算出来的交点进行保存,具体步骤如下:
[0012]已知两条直线A、B,A的2点坐标为(xl,yl), (x2, y2),B的2点为(x3, y3),(x4, y4);
[0013]则A 的直线方程为:y-yl=(y2_yl) (x_xl)/ (x2_xl),
[0014]B 的直线方程为:y-y3=(y4_y3) (χ-χ3) / (x4_x3);
[0015]将A、B的直线方程联立,解出交点坐标的横坐标、纵坐标分别为:[0016]X= [ (x2~xl) X (χ3-χ4) X (y3-yl) -χ3 X (x2_xl) X (y3-y4) +xl X (y2-yl) X (χ3_x4)]/[(y2-yl) X (χ3_χ4) -(x2_xl) X (y3-y4)];
[0017]y=[ (y2-yl) X (y3-y4) X (x3_xl)_y3X (y2-yl) X (x3_x4)+ylX (x2_xl) X (y3-y4)]/[(y2-yl) X (y3-y4) -(y2-yl) X (x3_x4)];
[0018]步骤四:剔除合并后遮挡的点;
[0019]步骤五:统计点集合,包括原先矩形的4角点坐标和交点坐标以及遮挡点坐标;
[0020]步骤六:在点集合中计算出X、Y轴坐标值及其最小的点;
[0021]步骤七:通过最小点推算串联的第二个点,以此类推直到最后点为最小点停止;
[0022]步骤八:根据推算出的串联点顺序生成新的多边形对象。
[0023]如上所述的一种平面绘图时多边形合并的方法,其中,步骤六是通过常用的冒泡算法嵌套,先求出最小X坐标,再计算出X最小情况下Y最小时的坐标点。
[0024]如上所述的一种平面绘图时多边形合并的方法,其中,步骤七是步骤七是通过基础点的坐标X轴不变,Y轴数值递减,实时判断集合中是否有重合点,如果存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至Y轴递减为O时还未找到重合点时,继续下一步;进一步地,通过基础点的坐标Y轴不变,X轴数值递增,实时判断集合中是否有重合点,如果存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至X轴递增到最大X时还未找到重合点,继续下一步;进一步地,通过基础点的坐标X轴不变,Y轴数值递增,实时判断集合中是否有重合点,存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至Y轴递增到最大Y时还未找到重合点,继续下一步;通过基础点的坐标Y轴不变,X轴数值递减,实时判断集合中是否有重合点,存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至X轴递增到最大X时还未找到重合点,与最小点闭合。
[0025]本发明的有益效果是能够在触摸屏的安卓操作环境下快速绘制出多个矩形,并且能够将多个矩形合并成多边形,敏感度高、精确度高,克服了只能在PC机上的windows环境下绘图的限制,绘制更加快捷、方便,适用性更强。
【专利附图】

【附图说明】
[0026]下面结合附图和【具体实施方式】来详细说明本发明:
[0027]图1是本发明一种平面绘图时多边形合并的方法的结构示意图。
[0028]图2是本发明的步骤七中的推算顺序示意图。
[0029]图3是本发明矩形合并后新形成的多边形。
【具体实施方式】
[0030]为了使本发明技术实现的措施、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0031]本发明提供了一种平面绘图时多边形合并的方法,包括:
[0032]步骤一:记录用户拖拽或者绘制矩形的位置,获取路径如下:[0033]public boolean onTouchEvent(MotionEvent event);
[0034]if (event.getAction()==MotionEvent.ACT10N_D0WN);
[0035]if (event.getAction ()==MotionEvent.ACT10N_M0VE);
[0036]if (event.getAction ()==MotionEvent.ACT10N_UP);
[0037]步骤二:实时判断该矩形是否和其他绘制的矩形有重叠,是否能够合并;
[0038]图1是本发明一种平面绘图时多边形合并的方法的结构示意图,已知两个矩形的四角坐标,利用坐标点判断矩形是否重叠,若矩形的其中一个角满足以下条件之一就视为两个矩形重叠,可以进行合并:
[0039](I) Rect.Left, x ^ Rect1.Anglel.x ^ Rect.Right, x ;
[0040]Rect.Top.y ^ Rect1.Anglel.y ^ Rect.Bottom, y ;
[0041](2) Rect.Left, x ^ Rect1.Angle2.x ^ Rect.Right, x ;
[0042]Rect.Top.y ^ Rect1.Angle2.y ^ Rect.Bottom, y ;
[0043](3) Rect.Left, x ^ Rect1.Angle3.x ^ Rect.Right, x ;
[0044]Rect.Top.y ^ Rect1.Angle3.y ^ Rect.Bottom, y ;
[0045](4) Rect.Left, x ^ Rect1.Angle4.x ^ Rect.Right, x ;
[0046]Rect.Top.y ^ Rect1.Angle4.y ^ Rect.Bottom, y ;
[0047]其中,Rect.Left.X为矩形的X最小坐标,Rect.Right, x为矩形的x最大坐标,Rect.Top.y为矩形的y最大坐标,Rect.Bottom, y为矩形的y最小坐标,RectL Anglel.x为图1中矩形重叠区域内的直角I的X的最小坐标,Rect1.Angle2.x为图1中矩形重叠区域内的直角2的X的最大坐标,Rect1.Angle3.x为图1中矩形重叠区域内的重叠点3的x的最小坐标,Rect1.Angle4.x为图1中矩形重叠区域内的重叠点4的x的最大坐标,Rectl.Anglel.y为图1中矩形重叠区域内的直角I的y的最大坐标,Rect1.Angle2.x为图1中矩形重叠区域内的直角2的y的最小坐标,Rect1.Angle3.X为图1中矩形重叠区域内的重叠点3的y的最小坐标,Rect1.Angle4.x为图1中矩形重叠区域内的重叠点4的y的最大坐标;
[0048]步骤三:计算重叠矩形的交点;
[0049]绘制矩形后得到矩形的四个角坐标、一条对角线长度和四条边的长度,然后根据矩形的4条边进行交点的计算,将计算出来的交点进行保存,具体步骤如下:
[0050]已知两条直线A、B,A的2点坐标为(xl,yl), (x2, y2),B的两点为(x3, y3),(x4, y4);
[0051]则A 的直线方程为:y-yl=(y2_yl) (x_xl)/ (x2_xl),
[0052]B 的直线方程为:y-y3=(y4_y3) (χ-χ3) / (x4_x3);
[0053]将A、B的直线方程联立,解出交点坐标的横坐标、纵坐标分别为:
[0054]X=[(x2~xl) X (χ3-χ4) X (y3-yl)-χ3X (x2_xl) X (y3-y4)+xlX (y2-yl) X (x3_x4)]/[(y2-yl) X (x3_x4) -(x2_xl) X (y3-y4)];
[0055]y= [ (y2-yl) X (y3-y4) X (x3_xl)_y3X (y2-yl) X (x3_x4)+ylX (x2_xl) X (y3-y4)]/[(y2-yl) X (y3-y4) -(y2-yl) X (x3_x4)];
[0056]步骤四:剔除合并后遮挡的点,即为图中中的点I和2 ;
[0057]步骤五:统计点集合,包括原先矩形的4角点坐标和交点坐标以及遮挡点坐标;[0058]步骤六:在点集合中计算出X、Y轴坐标值及其最小的点;
[0059]步骤七:通过最小点推算串联的第二个点,以此类推直到最后点为最小点停止;
[0060]图2是步骤七中的推算顺序示意图,首先,进行5,通过基础点的坐标X轴不变,Y轴数值递减,实时判断集合中是否有重合点,如果存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至Y轴递减为O时还未找到重合点时,继续进行6 ;
[0061]进一步地,通过基础点的坐标Y轴不变,X轴数值递增,实时判断集合中是否有重合点,如果存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点。依次求出多个坐标点,直至X轴递增到最大X时还未找到重合点,继续进行7 ;
[0062]进一步地,通过基础点的坐标X轴不变,Y轴数值递增,实时判断集合中是否有重合点,存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至Y轴递增到最大Y时还未找到重合点,继续进行8 ;
[0063]进一步地,通过基础点的坐标Y轴不变,X轴数值递减,实时判断集合中是否有重合点,存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至X轴递增到最大X时还未找到重合点,与最小点闭合;
[0064]步骤八:根据推算出的串联点顺序生成新的多边形对象,如图3所示。
[0065]在本发明的另一实施例中,步骤六是通过常用的冒泡算法嵌套,先求出最小X坐标,再计算出X最小情况下Y最小时的坐标点。
[0066]本发明的有益效果是能够在触摸屏的安卓操作环境下快速绘制出多个矩形,并且能够将多个矩形合并成多边形,敏感度高、精确度高,克服了只能在PC机上的windows环境下绘图的限制,绘制更加快捷、方便,适用性更强。
[0067]以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
【权利要求】
1.一种平面绘图时多边形合并的方法,其特征在于,包括如下步骤: 步骤一:记录用户拖拽或者绘制矩形的位置; 步骤二:实时判断该矩形是否和其他绘制的矩形有重叠,是否能够合并; 步骤三:计算重叠矩形的交点; 绘制矩形后得到矩形的四个角坐标、一条对角线长度和四条边的长度,然后根据矩形的4条边进行交点的计算,将计算出来的交点进行保存,具体步骤如下: 已知两条直线A、B,A的2点坐标为(xl,yl),(x2, y2),B的2点为(x3, y3),(x4, y4); 则 A 的直线方程为:y-yl=(y2-yl) (χ-χ?)/ (x2_xl), B 的直线方程为:y-y3=(y4-y3) (χ-χ3) / (χ4_χ3); 将A、B的直线方程联立,解出交点坐标的横坐标、纵坐标分别为:
X=[ (x2~xl)X (χ3-χ4) X (y3-yl)-χ3X (x2_xl) X (y3-y4)+xlX (y2-yl) X (x3_x4)]/[(y2-yl) X (x3-x4)-(x2_xl) X (y3-y4)];
y=[(y2-yl) X (y3-y4) X (x3-xl)-y3X (y2-yl) X (x3_x4)+ylX (x2_xl) X (y3-y4)]/[(y2-yl) X (y3-y4)-(y2-yl) X (x3_x4)]; 步骤四:剔除合并后遮挡的点; 步骤五:统计点集合,包括原先矩形的4角点坐标和交点坐标以及遮挡点坐标; 步骤六:在点集合中计算出X、Y轴坐标值及其最小的点; 步骤七:通过最小点推算串联的第二个点,以此类推直到最后点为最小点停止; 步骤八:根据推算出的串联点顺序生成新的多边形对象。
2.根据权利要求1所述的一种平面绘图时多边形合并的方法,其特征在于,该步骤六是通过常用的冒泡算法嵌套,先求出最小X坐标,再计算出X最小情况下Y最小时的坐标点。
3.根据权利要求1所述的一种平面绘图时多边形合并的方法,其特征在于,该步骤七是通过基础点的坐标X轴不变,Y轴数值递减,实时判断集合中是否有重合点,如果存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至Y轴递减为O时还未找到重合点时,继续下一步;进一步地,通过基础点的坐标Y轴不变,X轴数值递增,实时判断集合中是否有重合点,如果存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至X轴递增到最大X时还未找到重合点,继续下一步;进一步地,通过基础点的坐标X轴不变,Y轴数值递增,实时判断集合中是否有重合点,存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至Y轴递增到最大Y时还未找到重合点,继续下一步;通过基础点的坐标Y轴不变,X轴数值递减,实时判断集合中是否有重合点,存在重合点时保存该坐标点,同时从集合中剔除该坐标点,再计算该坐标点的下一个坐标点,依次求出多个坐标点,直至X轴递增到最大X时还未找到重合点,与最小点闭合。
【文档编号】G06F9/44GK103761094SQ201410028041
【公开日】2014年4月30日 申请日期:2014年1月22日 优先权日:2014年1月22日
【发明者】傅东吉, 虞秀华, 徐斌, 禹克庆 申请人:上海诚明融鑫科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1