随笔分类 -  矢量图形平台

介绍用C++编写的轻量级通用图形平台,演示各种图形化交互技术点和例子,矢量图形交互技术的应用研究
摘要:本文新版本已转移到开源中国,欢迎前往指导。Inkpad是一款非常优秀的iPad矢量绘图软件,保管你一看见就忘不了。我的感觉是“一览众山小”、“相见甚晚”,以至于我写的TouchVG就是“小巫见大巫”。必须好好学习这款软件的代码,破解其高性能绘图奥秘。另外,在写这篇日志前本想使用Markdown语言写干净的博客,在 http://rhcad.github.io/ 基于Jekyll配置了日志项目,在本地配置了发布平台,无奈要做的事和要学的知识太多,半途停下来了,看来我不是当极客的料。如果你阅读本文觉得哪里写得糟糕,可以提出来交流,如果本文能帮助你一点点就OK了,我也是在学习,本意不是想写漂亮的文章 阅读全文
posted @ 2014-01-06 13:45 张云贵 阅读(1344) 评论(0) 推荐(0)
摘要:Use casesDrawing (sketch, illustrations, cartooning, etc).Diagramming (any sort of chart with object libraries).Prototyping/Wireframing.Animators (step, tweened, ...).Games.Presentation and group collaboration.Document Viewers.Widgets & Wallpapers....FeaturesRotate, scale, move, skew path transf 阅读全文
posted @ 2013-10-27 15:51 张云贵 阅读(496) 评论(0) 推荐(0)
摘要:发布大幅重构优化的 TouchVG 1.0.2,支持SVG、多模块扩展结构,欢迎评阅改进、提交pull request。https://github.com/rhcad/touchvg关于 TouchVGTouchVG 是一个主要由C++开发的轻量级2D矢量绘图框架,可在 iOS、Android、Windows 等多个平台构建矢量绘图应用。作者:张云贵 rhcad@hotmail.com 开源协议:LGPL 2.1,见 LICENSE 文件描述。TouchVG 的功能支持多点触摸或鼠标的交互绘图方式,可以无级放缩或平移显示矢量图形、图像、SVG。除了基本的15余种矢量图形类型外,可使用C++或 阅读全文
posted @ 2013-10-18 16:54 张云贵 阅读(1272) 评论(0) 推荐(0)
摘要:面向移动设备的矢量绘图平台设计与实现Design and Implementation of Mobile Device-oriented Vector Drawing Platform引用本论文:张云贵. 面向移动设备的矢量绘图平台设计与实现[D]. 北京:北京理工大学软件学院, 2013.本论文... 阅读全文
posted @ 2013-07-06 18:30 张云贵 阅读(1680) 评论(10) 推荐(0)
摘要:以下是从2012年5月到12月在TouchVG研究试验出的成果、创新点汇总。论文中只写了少部分,今年准备设计一套更清晰科学的跨平台绘图平台。第一部分 二维图形显示接口----------------------------------------------------------1. iOS图形库渲染原理分析和试验,得出几种双缓存技术、动态显示、调整矢量显示质量等不同显示技术的性能对比结果,提出在使用Quartz 2D图形库时的几个优化方法。2. SWIG在Android原生动态库上的应用,解决了Java与C++相互调用和扩展的难题,并总结了便于Android NDK编译和Java应用代码调 阅读全文
posted @ 2013-06-06 18:01 张云贵 阅读(1075) 评论(5) 推荐(2)
摘要:http://www.swig.org/Doc2.0/Android.html (原文好像被墙,特转) 18 SWIG and Android Overview Android examples Examples introduction Simple C example C++ class example Other examples C++ STL This chapter describes SWIG's support of Android. 18.1 Overview The Android chapter is fairly short as support for And 阅读全文
posted @ 2013-04-04 23:27 张云贵 阅读(1805) 评论(0) 推荐(0)
摘要:http://sourceforge.net/projects/touchvg/files/ShapeEditor.exe.rar/download用了不到4天基于TouchVG框架写的一个Windows矢量绘图软件,功能超多,体积超小,已经投入使用,感兴趣的请下载试试。 阅读全文
posted @ 2013-02-03 09:27 张云贵 阅读(993) 评论(0) 推荐(0)
摘要:外部接口类隐藏JSON细节:#ifndef __GEOMETRY_JSONSTORAGE_H_#define __GEOMETRY_JSONSTORAGE_H_struct MgStorage;//! JSON序列化适配器类/*! \ingroup GEOM_SHAPE*/class MgJsonStorage{public: MgJsonStorage(); ~MgJsonStorage(); //! 给定JSON内容,返回存取接口对象以便开始读取 MgStorage* storageForRead(const char* content); //! 返回存取接... 阅读全文
posted @ 2013-01-07 23:16 张云贵 阅读(2440) 评论(0) 推荐(0)
摘要:简介HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2D immediate mode graphic)的标准。许多开发者现在利用它来实现众多的多媒体项目、可视化醒目以及游戏等等。然而,随着我们构建的应用程序的复杂度的增加,我们难免会遇到所谓的性能问题。已经存在众多优化canvas性能的方法了,但是还没有一篇文章将这些方法系统的整理并加以分析。本文的目的就在于将这些方法整理、巩固以使其曾为 开发者们更容易理解、消化、吸收的资源。本文囊括了适用于所有计算机绘图环境(computer graphics environments 阅读全文
posted @ 2012-11-17 13:08 张云贵 阅读(32589) 评论(0) 推荐(4)
摘要:1. 矢量的概念: 如果一条线段的端点是有次序之分的,我们把这种线段成为有向线段(directed segment)。如果有向线段p1p2的起点p1在坐标原点,我们可以把它称为矢量(vector)p2。2. 矢量加减法: 设二维矢量P = ( x1, y1 ),Q = ( x2 , y2 ),则矢量加法定义为: P + Q = ( x1 + x2 , y1 + y2 ),同样的,矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )。显然有性质 P + Q = Q + P,P - Q = - ( Q - P )。3. 矢量叉积: 计算矢量叉积是与直线和线段相关... 阅读全文
posted @ 2012-08-14 09:47 张云贵 阅读(531) 评论(0) 推荐(0)
摘要:经过10天的努力,TouchVG框架已经完成了在Android平台的矢量图形显示,下一步就可以去实现Android上的触摸手势交互绘图了,哈哈。至此,TouchVG已经实现了Windows、iOS、Android的跨平台矢量图形显示功能。接口文档TouchVG.chm: http://files.cnblogs.com/rhcad/TouchVG.chm.rar 阅读全文
posted @ 2012-08-11 22:36 张云贵 阅读(4298) 评论(2) 推荐(0)
摘要:http://wenku.baidu.com/view/8fb32430a32d7375a417809c.html主要内容:1、矢量、变换矩阵、仿射坐标系、复合变换原理、滚动视图2、曲线、样条、三次参数样条、Bezier曲线、B样条曲线、曲线转换3、矢量绘图原理、交互式绘图软件原理 阅读全文
posted @ 2012-07-20 10:26 张云贵 阅读(613) 评论(0) 推荐(0)
摘要:为了避免明年毕业论文查重出现问题,已删除本文。 阅读全文
posted @ 2012-06-12 10:45 张云贵 阅读(716) 评论(0) 推荐(0)
摘要:TouchVG 是一个通用的轻量级二维矢量图形框架,可用于开发交互式矢量绘图软件。适用于 iPad/iPhone 等多点触摸设备,也适用于鼠标交互的桌面应用,下一步将扩充到 Android 平台(8月11日已实现)。TouchVG 大部分代码是平台无关的C++开发的内核部分,在iOS上使用了少量的ObjC编码编写封装模块。已经可以挂接 GDI、GDI+、Quartz 2D 等图形库,可以扩充挂接 QT Canvas/OpenGL、OpenGL ES、OpenVG、Cocoa 2D 等图形库。TouchVG 框架已经在下列平台测试过:1、MS Windows,VC++ 2005/2008,有演示 阅读全文
posted @ 2012-05-14 09:59 张云贵 阅读(3376) 评论(9) 推荐(0)
摘要:a simple library to Recognise the sketch-based shapes可识别直线,圆,矩形,梯形,五角星,弧线,曲线等14中基本图形和手势http://lrss.codeplex.com/ 阅读全文
posted @ 2012-04-15 18:21 张云贵 阅读(719) 评论(0) 推荐(1)
摘要: 阅读全文
posted @ 2009-12-03 17:54 张云贵 阅读(432) 评论(0) 推荐(0)
摘要:张云贵编写于2004年4月,是在为平面CAD软件设计通用SDK时整理所需知识时编写的文档(Word文档见文库)。第一章 矢量代数1.1 二维矢量1.1.1 矢量表示 矢量的坐标表示为V = (x, y),其中x和y为坐标分量。1.1.2 矢量长度 |V| = sqrt(x*x + y*y)1.1.3 单位矢量 E = V / |V|1.1.4 矢量数乘 矢量V(x, y)和实数n的数量积为: n*V = V*n = ( x * n, y * n ) V / n = ( x / n, y / n )1.1.5 矢量点乘 两个矢量A(x1, y1)和B(x2, y2)的点积为: A·B 阅读全文
posted @ 2009-11-27 10:15 张云贵 阅读(2213) 评论(0) 推荐(0)