CN103077025A - 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 - Google Patents
一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 Download PDFInfo
- Publication number
- CN103077025A CN103077025A CN2012105833968A CN201210583396A CN103077025A CN 103077025 A CN103077025 A CN 103077025A CN 2012105833968 A CN2012105833968 A CN 2012105833968A CN 201210583396 A CN201210583396 A CN 201210583396A CN 103077025 A CN103077025 A CN 103077025A
- Authority
- CN
- China
- Prior art keywords
- blackboard eraser
- trajectory
- coordinate
- information
- trace line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,包括:利用QT开发工具创建项目工程,在所述项目工程中创建一画布窗口;并定义板擦的大小、形状类型及计算板擦顶点坐标;绘制轨迹线:获取画布窗口的鼠标按下、按下移动、弹开的坐标信息,绘制一条轨迹线;获取板擦经过的轨迹点:获取画布窗口在板擦模式下鼠标按下、按下移动、弹开的坐标信息;用保存下来的轨迹线信息及板擦经过的轨迹点信息,生成新的轨迹线功能。本发明提供一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,用于解决:无论是什么形状的类型板擦都可以用同一个算法对轨迹线进行擦除,擦除效率高,可扩充性强。
Description
【技术领域】
本发明涉及电子白板技术领域,尤其涉及一种封闭几何图形擦除轨迹线并生成新轨迹线的方法。
【背景技术】
近年来电子白板技术在教学方面得到快速发展,使得不用传统粉笔加黑板进行教育成为现实,让教育的过程变成电子化。各种教程绘图软件一般提供绘制各类几何形状的功能笔,其中尤以随手笔最为常见。教师在实际应用中,又往往需要根据具体需要用规则或者不规则的封闭几何图形对绘制好的随手笔轨迹进行擦除,擦除后要生成新的对象。针对这个功能需求,目前一般的做法是,针对不同几何形状的板擦设计相应的算法用于求轨迹线与板擦的几何形状交点。这大大了增加了算法的复杂度,降低了程序的稳定性,也为日后的软件升级带来很多麻烦。
【发明内容】
本发明要解决的技术问题,在于提供一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,用于解决:无论是什么形状的类型板擦都可以用同一个算法对轨迹线进行擦除,擦除效率高,可扩充性强。
本发明是这样实现的:
一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,其特征在于:包括如下步骤:
步骤10:利用QT开发工具创建项目工程,在所述项目工程中创建一画布窗口;并定义板擦的大小、形状类型及计算板擦顶点坐标;
步骤20:绘制轨迹线:获取画布窗口的鼠标按下、按下移动、弹开的坐标信息,绘制一条轨迹线;
步骤30:获取板擦经过的轨迹点:获取画布窗口在板擦模式下鼠标按下、按下移动、弹开的坐标信息;
步骤40:用保存下来的轨迹线信息及板擦经过的轨迹点信息,生成新的轨迹线功能,具体包括:
步骤401:由得到板擦轨迹点序列,及结合板擦的相对坐标计算得到各个板擦轨迹点处的路径;
步骤402:将步骤401的路径对象跟各个板擦路径进行区域相减运算;
步骤403:解析步骤402的运算结果,从而得到最终的结果信息。
进一步地,所述步骤10具体包括如下步骤:
步骤101:创建项目工程,新建窗口充当画布用;
步骤102:定义板擦的类型及尺寸;所述类型是指板擦的形状,包括矩形板擦、圆形板擦、三角形板擦、轨迹线板擦;所述尺寸是指板擦形状的外围矩形大小;
步骤103:定义板擦顶点坐标;所述顶点坐标是指板擦几何形状各个顶点的坐标。
进一步地,所述步骤20具体步骤包括如下:
步骤201:记录鼠标按下的坐标信息、鼠标按下并移动的坐标系列信息、鼠标弹开的坐标信息;
步骤202:根据获取的坐标信息,调用QT的2D绘图工具将轨迹点连接成轨迹线。
进一步地,所述步骤30具体步骤包括如下:
步骤301:记录鼠标按下的坐标信息;
步骤301:记录鼠标按下的同时移动的坐标系列信息;
步骤302:记录鼠标弹开的坐标信息。
本发明具有如下优点:本发明利用画布窗口封装好的消息处理函数,获取鼠标在所述画布窗口上的操作信息,包括绘制轨迹线轨迹点坐标信息及板擦轨迹点信息;计算板擦的几何形状顶点信息,利用2D图形库中的路径区域计算特点算出区域交集,解析结果达到目的。本发明提供一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,从而解决针对不同形状的几何形状板擦都可以用同一个算法进行擦除的功能。
【附图说明】
图1为本发明方法流程示意图。
图2是本发明具体实施例中板擦的形状及尺寸示意图。
图3是本发明具体实施例中2D绘图库的路径对象示意图。
图4是本发明中封闭几何图形示意图。
【具体实施方式】
请参照图1所示,一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,包括如下步骤:
一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,其特征在于:包括如下步骤:
步骤10:利用QT开发工具创建项目工程,在所述项目工程中创建一画布窗口;并定义板擦的大小、形状类型及计算板擦顶点坐标;
具体包括如下步骤:
步骤101:创建项目工程,新建窗口充当画布用;
步骤102:定义板擦的类型及尺寸;所述类型是指板擦的形状,包括矩形板擦、圆形板擦、三角形板擦、轨迹线板擦;所述尺寸是指板擦形状的外围矩形大小;
例如:如图2所示,定义板擦的大小为长为10,宽也为10的尺寸。意思是板擦几何形状的外围矩形是个10×10的矩形;定义板擦的形状为等腰三角形△BCE,尺寸就是指:AB=BC=CD=DA=10。
步骤103:定义板擦顶点坐标;所述顶点坐标是指板擦几何形状各个顶点的坐标。如果是轨迹线板擦,那么顶点即为各个轨迹点。如图2所示,各个点的相对坐标为:
A(0,0)、B(0,10)、C(10,10)、D(10,0)、E(5,0)
那么板擦的几何形状(等腰三角形△BCE)的顶点相对坐标依次为:B(0,10)、C(10,10)、E(5,0)。
步骤20:绘制轨迹线:获取画布窗口的鼠标按下、按下移动、弹开的坐标信息,绘制一条轨迹线;
具体步骤包括如下:
步骤201:记录鼠标按下的坐标信息、鼠标按下并移动的坐标系列信息、鼠标弹开的坐标信息;
步骤202:根据获取的坐标信息,调用QT的2D绘图工具将轨迹点连接成轨迹线。
步骤30:获取板擦经过的轨迹点:获取画布窗口在板擦模式下鼠标按下、按下移动、弹开的坐标信息;
具体步骤包括如下:
步骤301:记录鼠标按下的坐标信息;
步骤301:记录鼠标按下的同时移动的坐标系列信息;
步骤302:记录鼠标弹开的坐标信息。
步骤40:用保存下来的轨迹线信息及板擦经过的轨迹点信息,生成新的轨迹线功能,具体包括:
步骤401:由得到板擦轨迹点序列,及结合板擦的相对坐标计算得到各个板擦轨迹点处的路径(QpainterPath path1);例如,某段轨迹线的轨迹点为:P1(15,15)、P2(43,50)、P3(80,80)、P4(100,120),如图3。
那么轨迹线路径对象path1即为:
path1.moveTo(P1.x(),P1.y());
path1.lineTo(P2.x(),P2.y());
path1.lineTo(P3.x(),P3.y());
path1.lineTo(P4.x(),P4.y());
步骤402:根据板擦的轨迹点序列(Q1,Q2,…,Qn)并结合板擦个顶点的相对坐标,计算出各个轨迹点处板擦顶点的绝对坐标,例如某个Qi坐标为:(18,18),等腰三角形板擦,△BCE的顶点相对坐标依次为:B(0,10)、C(10,10)、E(5,0),那么顶点的绝对坐标为:
B1(X,Y)=(0+18,10+18)=(18,28)
C1(X,Y)=(10+18,10+18)=(28,28)
E1(X,Y)=(5+18,0+18)=(23,18)
从而得到Qi点处板擦的路径轨迹对象(QpainterPath path2)为:
pth2.moveTo(B1.x(),B1.y());
pth2.lineTo(C1.x(),C1.y());
pth2.lineTo(E1.x(),E1.y());
pth2.lineTo(B1.x(),B1.y());
步骤403:将步骤401的路径对象跟步骤402各个板擦路径进行区域相减运算;
在此步骤中,涉及到一个问题,就是做路径区域运算要求两个路径path1及path2都必须是封闭的,但明显轨迹线路径path1不是封闭,在此本发明做了个技巧性的处理,在图3的基础上添加了一些辅助点,使之成为如图4所示的封闭的几何图形。
这样就构成一个封闭的几何图形P1P2P3P4P41P31P21P11。
其中
P11(X,Y)=P1(X,Y+1)=(15,15+1)=(15,16)
P21(X,Y)=P2(X,Y+1)=(43,50+1)=(43,51)
P31(X,Y)=P3(X,Y+1)=(80,80+1)=(80,81)
P41(X,Y)=P4(X,Y+1)=(100,120+1)=(100,121)
因此path1实际变成:
path1.moveTo(P1.x(),P1.y());
path1.lineTo(P2.x(),P2.y());
path1.lineTo(P3.x(),P3.y());
path1.lineTo(P4.x(),P4.y());
path1.lineTo(P41.x(),P41.y());
path1.lineTo(P31.x(),P31.y());
path1.lineTo(P21.x(),P21.y());
path1.lineTo(P11.x(),P11.y());
path1.lineTo(P1.x(),P1.y());
之后,调用QT的2D绘图库中的路径区域运行中的减法如下:
path=path1.subtracted(path2);
得到path的内容为:
QPainterPath:Element count=15
->MoveTo(x=15,y=15)
->LineTo(x=20.8462,y=22.3077)
->LineTo(x=20.6,y=22.8)
->LineTo(x=15,y=16)
->LineTo(x=15,y=15)
->MoveTo(x=25.4,y=28)
->LineTo(x=43,y=50)
->LineTo(x=24.8824,y=28)
->LineTo(x=25.4,y=28)
->MoveTo(x=43,y=50)
->LineTo(x=80,y=80)
->LineTo(x=100,y=120)
->LineTo(x=100,y=121)
->LineTo(x=80,y=81)
->LineTo(x=43,y=50)
步骤404:解析步骤402的运算结果,从而得到最终的结构信息。具体如下:
从局域相减的结果有MoveTo每段新轨迹线的开头,明显结果可以分为这个曲线段,分别为:
(1)
->MoveTo(x=15,y=15)
->LineTo(x=20.8462,y=22.3077)
->LineTo(x=20.6,y=22.8)
->LineTo(x=15,y=16)
->LineTo(x=15,y=15)
(2)
->MoveTo(x=25.4,y=28)
->LineTo(x=43,y=50)
->LineTo(x=24.8824,y=28)
->LineTo(x=25.4,y=28)
(3)
->MoveTo(x=43,y=50)
->LineTo(x=80,y=80)
->LineTo(x=100,y=120)
->LineTo(x=100,y=121)
->LineTo(x=80,y=81)
->LineTo(x=43,y=50)
从每段的数据结构来看,很明显都是闭合的区域,再者,(2)段里面的轨迹点太过集中,因此直接舍弃,留下(1)、(3)剔除封闭特性,得到最终得到:
第一段新轨迹点:
->MoveTo(x=15,y=15)
->LineTo(x=20.8462,y=22.3077)
即:(15,15)、(20.8462,22.3077)
第二段新轨迹点:
->MoveTo(x=43,y=50)
->LineTo(x=80,y=80)
->LineTo(x=100,y=120)
即:(43,50)、(80,80)、(100,120)
本发明利用画布窗口封装好的消息处理函数,获取鼠标在所述画布窗口上的操作信息,包括绘制轨迹线轨迹点坐标信息及板擦轨迹点信息;计算板擦的几何形状顶点信息,利用2D图形库中的路径区域计算特点算出区域交集,解析结果达到目的。本发明提供一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,从而解决针对不同形状的几何形状板擦都可以用同一个算法进行擦除的功能。
Claims (4)
1.一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,其特征在于:包括如下步骤:
步骤10:利用QT开发工具创建项目工程,在所述项目工程中创建一画布窗口;并定义板擦的大小、形状类型及计算板擦顶点坐标;
步骤20:绘制轨迹线:获取画布窗口的鼠标按下、按下移动、弹开的坐标信息,绘制一条轨迹线;
步骤30:获取板擦经过的轨迹点:获取画布窗口在板擦模式下鼠标按下、按下移动、弹开的坐标信息;
步骤40:用保存下来的轨迹线信息及板擦经过的轨迹点信息,生成新的轨迹线功能,具体包括:
步骤401:由得到板擦轨迹点序列,及结合板擦的相对坐标计算得到各个板擦轨迹点处的路径;
步骤402:将步骤401的路径对象跟各个板擦路径进行区域相减运算;
步骤403:解析步骤402的运算结果,从而得到最终的结果信息。
2.根据权利要求1所述的一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,其特征在于:所述步骤10具体包括如下步骤:
步骤101:创建项目工程,新建窗口充当画布用;
步骤102:定义板擦的类型及尺寸;所述类型是指板擦的形状,包括矩形板擦、圆形板擦、三角形板擦、轨迹线板擦;所述尺寸是指板擦形状的外围矩形大小;
步骤103:定义板擦顶点坐标;所述顶点坐标是指板擦几何形状各个顶点的坐标。
3.根据权利要求1所述的一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,其特征在于:所述步骤20具体步骤包括如下:
步骤201:记录鼠标按下的坐标信息、鼠标按下并移动的坐标系列信息、鼠标弹开的坐标信息;
步骤202:根据获取的坐标信息,调用QT的2D绘图工具将轨迹点连接成轨迹线。
4.根据权利要求1所述的一种封闭几何图形擦除轨迹线并生成新轨迹线的方法,其特征在于:所述步骤30具体步骤包括如下:
步骤301:记录鼠标按下的坐标信息;
步骤301:记录鼠标按下的同时移动的坐标系列信息;
步骤302:记录鼠标弹开的坐标信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210583396.8A CN103077025B (zh) | 2012-12-28 | 2012-12-28 | 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210583396.8A CN103077025B (zh) | 2012-12-28 | 2012-12-28 | 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103077025A true CN103077025A (zh) | 2013-05-01 |
CN103077025B CN103077025B (zh) | 2015-11-18 |
Family
ID=48153563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210583396.8A Active CN103077025B (zh) | 2012-12-28 | 2012-12-28 | 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077025B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104801044A (zh) * | 2015-05-12 | 2015-07-29 | 深圳市腾讯计算机系统有限公司 | 生成轨迹线顶点序列的方法和装置 |
CN106569834A (zh) * | 2016-11-14 | 2017-04-19 | 福建天泉教育科技有限公司 | 基于浏览器的动画制作方法及系统 |
CN107390988A (zh) * | 2017-07-12 | 2017-11-24 | 广州视源电子科技股份有限公司 | 电子白板的擦除方法、装置及电子白板的区域选择方法 |
CN108733293A (zh) * | 2018-06-11 | 2018-11-02 | 广州视源电子科技股份有限公司 | 书写轨迹处理方法及装置 |
CN110989996A (zh) * | 2019-12-02 | 2020-04-10 | 北京电子工程总体研究所 | 一种基于Qt脚本语言的目标轨迹数据产生方法 |
CN112363657A (zh) * | 2016-10-26 | 2021-02-12 | 海信视像科技股份有限公司 | 手势擦除方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003196671A (ja) * | 2001-12-28 | 2003-07-11 | Ricoh Co Ltd | 描画像消去方法、その方法によったプログラム、およびそのプログラムを記憶した記憶媒体 |
CN101477694A (zh) * | 2008-12-02 | 2009-07-08 | 广东威创视讯科技股份有限公司 | 笔迹擦除的方法及装置 |
CN101609560A (zh) * | 2009-07-16 | 2009-12-23 | 广东威创视讯科技股份有限公司 | 一种擦除笔迹的方法 |
JP2010239469A (ja) * | 2009-03-31 | 2010-10-21 | Oki Networks Co Ltd | 手書き入力表示装置及びホワイトボード共用システム |
CN101882032A (zh) * | 2010-07-02 | 2010-11-10 | 廖明忠 | 一种手写输入方法、装置、接收器及系统 |
CN102566862A (zh) * | 2010-12-21 | 2012-07-11 | 汉王科技股份有限公司 | 交互式电子白板中几何图形的擦除方法和装置 |
-
2012
- 2012-12-28 CN CN201210583396.8A patent/CN103077025B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003196671A (ja) * | 2001-12-28 | 2003-07-11 | Ricoh Co Ltd | 描画像消去方法、その方法によったプログラム、およびそのプログラムを記憶した記憶媒体 |
CN101477694A (zh) * | 2008-12-02 | 2009-07-08 | 广东威创视讯科技股份有限公司 | 笔迹擦除的方法及装置 |
JP2010239469A (ja) * | 2009-03-31 | 2010-10-21 | Oki Networks Co Ltd | 手書き入力表示装置及びホワイトボード共用システム |
CN101609560A (zh) * | 2009-07-16 | 2009-12-23 | 广东威创视讯科技股份有限公司 | 一种擦除笔迹的方法 |
CN101882032A (zh) * | 2010-07-02 | 2010-11-10 | 廖明忠 | 一种手写输入方法、装置、接收器及系统 |
CN102566862A (zh) * | 2010-12-21 | 2012-07-11 | 汉王科技股份有限公司 | 交互式电子白板中几何图形的擦除方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104801044A (zh) * | 2015-05-12 | 2015-07-29 | 深圳市腾讯计算机系统有限公司 | 生成轨迹线顶点序列的方法和装置 |
WO2016180218A1 (zh) * | 2015-05-12 | 2016-11-17 | 腾讯科技(深圳)有限公司 | 生成轨迹线顶点序列的方法、终端和服务器 |
CN104801044B (zh) * | 2015-05-12 | 2017-12-12 | 深圳市腾讯计算机系统有限公司 | 生成轨迹线顶点序列的方法和装置 |
CN112363657A (zh) * | 2016-10-26 | 2021-02-12 | 海信视像科技股份有限公司 | 手势擦除方法及装置 |
CN106569834A (zh) * | 2016-11-14 | 2017-04-19 | 福建天泉教育科技有限公司 | 基于浏览器的动画制作方法及系统 |
CN107390988A (zh) * | 2017-07-12 | 2017-11-24 | 广州视源电子科技股份有限公司 | 电子白板的擦除方法、装置及电子白板的区域选择方法 |
CN108733293A (zh) * | 2018-06-11 | 2018-11-02 | 广州视源电子科技股份有限公司 | 书写轨迹处理方法及装置 |
CN110989996A (zh) * | 2019-12-02 | 2020-04-10 | 北京电子工程总体研究所 | 一种基于Qt脚本语言的目标轨迹数据产生方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103077025B (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103077025B (zh) | 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法 | |
US9076261B2 (en) | Virtual drafting tools | |
CN103186235B (zh) | 一种手写输入的处理方法及装置 | |
US8994698B2 (en) | Methods and apparatus for simulation of an erodible tip in a natural media drawing and/or painting simulation | |
CN103077026A (zh) | 一种在操作系统的桌面环境下进行书写的方法 | |
CN101763234B (zh) | 一种模拟各种屏幕分辨率的方法及其装置 | |
CN106325737A (zh) | 一种书写路径擦除方法及设备 | |
CN103019602B (zh) | 一种实现多人分屏操作的方法 | |
US20130229391A1 (en) | Systems and Methods for Particle-Based Digital Airbrushing | |
CN103559732B (zh) | 一种生成毛笔笔迹的方法 | |
US20190096100A1 (en) | Ink space coordinate system for a digital ink stroke | |
WO2021077539A1 (zh) | 图形调整方法、装置、设备及存储介质 | |
CN102262508A (zh) | 通过鼠标轨迹生成度量工具的方法 | |
CN101697234A (zh) | 一种基于笔画分段建模的手写汉字隶书美化方法 | |
CN110362217B (zh) | 一种触摸交互式电子黑板板擦系统及擦除方法 | |
Company et al. | Computer-aided sketching as a tool to promote innovation in the new product development process | |
CN105468208A (zh) | 一种电子白板轨迹跟踪方法和装置 | |
CN102402279A (zh) | 基于手势的人机交互方法及系统 | |
CN113590002B (zh) | 笔迹形成方法、笔迹形成装置及电子设备 | |
CN104238921A (zh) | 一种自定义多边形的绘制方法和装置 | |
CN103294284A (zh) | 一种电子设备以及一种书写装置 | |
CN113849106A (zh) | 翻页笔迹处理方法、设备、电子设备及存储介质 | |
CN104182233A (zh) | Web页面中向量图形可视化编辑的方法 | |
CN103186253A (zh) | 一种双摇杆模拟多点触控的方法、装置及设备 | |
EP4073624B1 (en) | Systems and methods for grid-aligned inking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 350108 6, No. 1 Innovation Park, No. 3 east science and technology road, Minhou street, Minhou, Fuzhou. Patentee after: Returnstar Interactive Technology Group Co., Ltd. Address before: 350000 Building 8, Gulou garden, Citrus Industrial Park, 618 Jinshan Road, Jianxin Town, Cangshan District, Fuzhou, Fujian, China Patentee before: Returnstar Interactive Technology Group Co., Ltd. |