基于矢量的同步手绘系统.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于矢量的同步手绘系统   摘 要:随着智能手机的普及,人们对手机的功能需求日益提高。同步手绘系统可以在手机上绘制图形,PC同步显示手机上的内容。在手机上增加数位板与投影笔的功能,丰富手机的使用方式,方便用户使用的同时,节约成本。该文介绍了基于矢量的同步手绘系统实现过程。详细介绍了Android系统的移动端与PC端的设计,介绍了保存矢量图形的自定义存储格式,分析了Graham scan算法在形状识别中的应用。   关键词:同步手绘 矢量 形状识别 Android   中图分类号:TP277 文献标识码:A 文章编号:1672-3791(2017)01(b)-0038-02   用户在使用PC电脑进行手绘创作时,普通的鼠标、键盘等输入设备往往不能满足手绘需要的灵活以及精细控制的需求,而移动设备(手机或平板)的输入方式是直接用手指或触摸笔在触摸屏幕上手绘,正好可以满足手绘的需要,但是移动设备的显示屏幕往往太小,为了解决手绘体验的问题,将二者结合起来,PC端作为显示终端,移动端作为输入设备,用手指或触摸笔在移动端直接手绘时,PC端可以实时显示出绘制后的结果。这样就能不用购买其他数位板的情况下得到极佳的手绘体验。   使用同步手绘板可以在利用计算机做图形开发时利用移动设备代替专业的数位板,并提供智能辅助。该系统可以满足计算机图形图像辅助设计的需求。   1 同步手绘系统   1.1 系统总体结构   该系统分为移动端与PC端两个部分,移动端主要由以下六个模块构成:手势解析模块、控件管理模块、命令管理模块、形状修正模块、渲染模块、同步模块。PC端主要用于显示绘制的图形,由图形绘制模块和同步模块两部分构成。   1.2 移动端设计与实现   1.2.1 手势解析模块   手势解析模块主要监听绘图控件上的触摸事件,将其解析成 onDrawStart onDrawMove,onDrawEnd,onCameraChangeStart,onCameraChange onCameraChangeEnd回调上层处理函数。手势解析模块通过解析MotionEvent的属性更新状态来通过构建状态机来更新触摸点状态。   1.2.2 控件管理模块   控件管理模块集中处理所有控件的交互逻辑,设置每一个控件的事件将其分发至命令管理模块或由自己处理。控件响应事件,如果是单纯的界面变化,只由控件管理模块自己处理,当涉及到绘制等具体逻辑时,交由命令管理模块。   1.2.3 命令管理模块   命令管理模块负责所有的模块与模块之间的交互,负责则调用和转发请求。使用handler在线程之间传递信息类。looper的主要功能是为特定单一线程运行一个消息环。一个线程对应一个looper。同样一个looper对应一个线程。looper与线程关联的时候,looper会同时生产一个messageQueue。looper会不停地从messageQuee中取出消息,即message。然后线程就会根据message中的内容进行相应操作。通过handler把message传递给特定的looper,继而传递给特定的线程。创建handler并与相应looper绑定之后,传递message调用handler的sendMessage函数,将message作为参数传递给相应线程。之后这个message就会被塞进looper的messageQueue。然后再被looper取出来交给线程处理。线程从looper收到message之后原来线程所需要做出响应,在自定义的handler类中的handleMessage重构方法中编写。   1.2.4 形状修正模块   形状修正模块负责在开启形状修正模块后修正形状。通过提取出几何形状的特征,例如:形状的最小外接矩形的面积、长度、宽度、形状的凸包的面积、周长、凸包的最大内接四边形的面积、凸包的最大内接三角形的面积、周长。通过他们之间固定的比例(例如:圆形的凸包的周长的平方与凸包面积的比值在4π左右)来识别形状。算法在第三章中详细介绍。   1.2.5 渲染模块   渲染模块将应该显示的内容渲染到手机屏幕上。从Camera中获取到当前的视野框在PathCollection中找到在视野框中出现的线条最后将其渲染渲染出来。Camera的视野指的是通过手机观察到的画板,当视野变大时,因为手机屏幕大小不变所以就有缩小的感觉,移动放大同理。   1.2.6 同步模块   同步模块负责从网络中解析分发电脑端的移动指令和将手机端的绘制移动指令发给PC端。自定义了19个指令,每个指令对应一个包装类。与PC端的通信采用socket方式。   1.3 PC端设计与实现   PC端使用C#.net开发,主要模块为:图形绘制模块和同步模块。

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档