文档章节

TouchVG答疑

云贵高原
 云贵高原
发布于 2014/08/25 10:11
字数 942
阅读 346
收藏 0

Q: TouchVG是否针对绘制效率做了优化?

A: TouchVG针对绘制效率做的优化有: a、包络框检查:在视图外的图形不显示 b、九宫格剪裁:对直线段、折线、多边形进行剪裁显示 c、后台异步显示:regenAll重新生成所有图形时,在单独的CALayer和GCD线程中绘制,绘制完后再显示到视图,不阻塞主线程交互和显示。例如重绘10000条曲线在后台绘制1秒后显示到视图,在此过程中视图不会白屏或黑屏。 d、动态拖曳显示是在单独的视图中,可以快速拖动图形或亮显图形,不影响主视图上的静态图形显示内容。(如果在同一个视图连续移动10000个曲线图形会引起不断重绘肯定很卡,如果将这些图形放在主视图显示,拖动的100个图形放在另一个视图显示则很流畅)

Q: TouchVG是否适用于移动平台的大数据量绘制? A: 在iPad3上显示10000条曲线绘制小于3秒,是使用addShapesForTest函数添加的随机图形,iPhone5上更快。如果是折线图形则更快,显示20-50万条随机直线段约1秒。我在毕业论文33-37页做过性能分析实验,显示参数设置不当会引起性能大幅降低。 如果需要显示10万条以上、50万顶点以上的复杂图形,不要全部重新绘制,有以下建议: a、可以进行分区块多线程绘制; b、可以针对不同放缩级别显示不同细节程度; c、可以逐步渲染例如将填充作为最后一个渲染步骤。 d、针对动态平移和放缩,采取截图放缩或外框显示。 更专业的显示可以使用OpenGL ES,相应的参考开源项目有MonkVG、Inkpad,但其开发难度很高,对开发人员技术要求很高,不适合短期内实现。

Q: TouchVG的兼容性具体情况如何?是否针对iOS6,iOS7及诸多Android版本做过兼容性测试?是否能够兼容后续系统? TouchVG 兼容 iOS 4.3-7.0,对多个版本做过兼容性测试,包括编译设置、代码格式、GCD和内存技术兼容测试。由于没有使用特殊的API,所以具有向前兼容性,应该适合iOS 8等新版本。

Q: TouchVG与系统控件等的兼容性如何?是否可以简单融合,是否会出现显示上的问题?(如遮盖及偏移等) A: TouchVG使用UIKit、CoreGraphics渲染图形,是在普通UIView中显示图形的,这和iOS自身的显示规律是相同的,可以与系统控件密切融合。可以在自定义控件内显示图形,也可以在图形视图上显示按钮、进行任意的界面布局。同时基于TouchVG的模块还支持CoreAnimation动画特效。

Q: 请问我可以通过何种途径获得文档?如果暂无此文档,之后使用TouchVG的话,是否有足够精力提供技术支持? A: vgios-demo、iOSColorPad等项目里有较多使用例子,vgios里也有不少注释,可以通过阅读实现和示例、动手尝试获取更多内容。QQ群中也有一些高手,可以相互讨论学习。如果能积极分享知识、心得、参与开源项目(报告BUG、建议、提交PR)则还能获得更多绘图项目的邀请。使用TouchVG,通常能够得到一周内的免费响应支持,但不做责任保证。

© 著作权归作者所有

云贵高原

云贵高原

粉丝 83
博文 38
码字总数 21429
作品 12
海淀
技术主管
私信 提问
加载中

评论(3)

芸芸水中一滴水
貌似有几个bug(Android):
1、创建SurfaceView绘图视图时,点击HOME键再回到绘图界面无法绘制(图形被隐藏了);
2、创建SurfaceView绘图视图时,使用erase工具有时会卡住;
3、创建GraphView绘图视图时,以上问题不存在,但是图形会有锯齿,绘制完成之后才会恢复。
希望博主可以指导一下,不胜感激!
云贵高原
云贵高原 博主

引用来自“TianPad”的评论

使用中发现了一个小Bug,已经提交到github/touchvg/vgcore的issues中。
已修复此BUG,感谢报告!
TianPad
TianPad
使用中发现了一个小Bug,已经提交到github/touchvg/vgcore的issues中。
TouchVG 1.0.4 支持矢量动画了

TouchVG 1.0.4 在iOS和Android上支持矢量图形的动画显示效果了,目前已完成动画原型,还有更多好玩的要做,欢迎讨论。 TouchVG 是一个通用的轻量级二维矢量图形框架,可用于开发交互式矢量绘...

云贵高原
2013/11/04
1K
6
TouchVG 1.1.0 支持Undo/redo,增加高性能绘图视图

TouchVG发布一个大版本,新增下列功能: 1、无限步Undo/redo操作。自动监控图形的改变情况,异步增量记录改变数据,不影响绘图命令。 2、在Android上增加双层SurfaceView,即使在高清屏低配平...

云贵高原
2014/01/31
1K
1
iOS绘图例1:使用StoryBoard

使用 Single View Wizard 等向导创建工程 在 Podfile 文件中导入TouchVG: 然后运行下载TouchVG代码。后续可运行 加快下载速度,不用每次检查最新版本。 然后打开 *.xcworkspace 进入 Xcode。...

云贵高原
2014/09/25
173
0
为1900个JNI函数添加日志

Android Native库的调试一直是个复杂的事,通常调试方法有输出日志和使用ADT等插件方法,前者较简单,TouchVG就使用日志输出方式来调试定位: 在CPP文件中 ,在要调试的函数中调用 2. 在 Ec...

云贵高原
2014/05/20
317
0
请问我下载的ios版本touchvg 编译通过了,但是没有运行起来是什么原因啊?

请问我下载的ios版本touchvg 编译通过了,但是没有运行起来是什么原因啊?

夏柳柳
2013/02/20
181
1

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部