TWaver最强大的ShapeNode功能
ShapeNode
TWaver提供了一个特殊的节点twaver.ShapeNode
。这是一个节点扩展,与普通节点(Node)之间主要区别是:普通节点主要通过图片来表示一个物体,而形状节点通过一个任意形状来表示一个物体。形状节点由一系列点组成,这些点连接成一个形状。通过千变万化的形状,可以用来表示很多特殊的数据,比如一个国家或者地区、一个总线等等。
说这个你可能不太懂,但是说起SVG你是不是就懂了,它可以通过一系列的点,绘制成一个图形。ShapeNode的功能类是于svg,通过它,你自己自定义一个属于自己的地图,或者攻略图等。
特殊方法
为了方便节点的操作,在相对于普通节点上提供了常用的方法:
- addPoint() 添加点
- firePointsChange() 派发点的更改事件
- getLineLength() 获取ShapeNode的周长
- getPoints() 获取所有点的集合
- getSegments() 获取所有连线段的集合
- removeAt() 移除参数指定的某个点
- removePoint() 移除指定的点
- setPoint() 设置指定序号上的点
- setPoints() 设置多边形上点的集合
- setSegments() 设置多边形网元上所有连线段的集合
写个代码
多边形网元和折线都是通过一系列的点来绘制的网元,但是不同的是折线它是一条Link,必须有起始和结束节点,而且必须是一条连续的路径。而多边形网元的点之间可以move to,这样可以是一条不连续的路径。
我们可以指定片段的绘制方式(segments),使ShapeNode表现更丰富的效果,如曲线(QuadTo),间断(moveTo)等。绘制方式有三种,移动到(moveTo)、直线(lineTo)和曲线(quadto)。
var shapeNode1 = new twaver.ShapeNode({ name: 'ShapeNode1', }); shapeNode1.s('vector.fill.color', '#61b6d8'); shapeNode1.s('vector.gradient', 'radial.center'); shapeNode1.addPoint({ x: 30, y: 10 }); shapeNode1.addPoint({ x: 80, y: 10 }); shapeNode1.addPoint({ x: 100, y: 90 }); shapeNode1.addPoint({ x: 10, y: 90 }); shapeNode1.addPoint({ x: 30, y: 10 }); box.add(shapeNode1); var shapeNode2 = new twaver.ShapeNode(); shapeNode2.setName('shapeNode2'); shapeNode2.addPoint({ x: 130, y: 110 }); shapeNode2.addPoint({ x: 180, y: 110 }); shapeNode2.addPoint({ x: 200, y: 190 }); shapeNode2.addPoint({ x: 110, y: 190 }); shapeNode2.addPoint({ x: 130, y: 110 }); shapeNode2.s('vector.fill.color', '#ec6c00'); shapeNode2.s('vector.gradient', 'radial.east'); var segments = new twaver.List(); segments.add("moveto"); segments.add("quadto"); segments.add("quadto"); shapeNode2.setSegments(segments); box.add(shapeNode2); var link = new twaver.Link(shapeNode1, shapeNode2); box.add(link);
最终形成的效果
TWaver最强大的ShapeNode功能相关推荐
- 老司机都在用的浏览器,体积小功能齐全,直呼内行
现在市面上的浏览器简直是多不胜数,虽然数量多,但是好用的并不多.尤其是某些大厂的浏览器,无用的功能越来越多,越来越臃肿,体积也越来越大,使用体验还不好,有时候甚至不如一些小众浏览器.今天给大家安利2款 ...
- 如果你的Mac系统开机启动管理,那么Startupizer2这个功能一定要试试 ~
startupizer Mac一款Mac OS平台上的开机启动项管理工具为用户们提供最强大的系统管理功能,简单的操作界面让你快速上手使用,大大减少你的开机时间!用户通过一次配置就可以满足不同场景的需要 ...
- nero linux iso,NeroLINUX下载_NeroLINUX官方下载_NeroLINUX4.0.0.0-华军软件园
Nero Linux 3是Linux 操作系统上权威的刻录应用程序.采用业界领先的Nero Burning ROM引擎,Nero Linux 3成为Linux上最强大而多功能的刻录软件,而且也是唯一一 ...
- 超详细的Java面试题总结(四 )之JavaWeb基础知识总结
系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...
- 《Adobe Photoshop CC经典教程》—第1课1.2节使用工具
本节书摘来自异步社区<Adobe Photoshop CC经典教程>一书中的第1课1.2节使用工具,作者[美]Adobe公司,更多章节内容可以访问云栖社区"异步社区"公 ...
- Delphi XE5 for Android (十)
我觉得Delphi最强大的的功能之一就是开发数据库三层应用的DataSnap,在Android上的实现,首先是完成服务器的设计: (1)利用向导完成DataSnap服务器的框架,如下图: 由于是实验, ...
- Unity3D协程(转)
这篇文章转自:http://blog.csdn.net/huang9012/article/details/38492937 协程介绍 在Unity中,协程(Coroutines)的形式是我最喜欢的功 ...
- 【转】Java学习---Java Web基础面试题整理
[原文]https://www.toutiao.com/i6592359948632457731/ 1.什么是Servlet? 可以从两个方面去看Servlet: a.API:有一个接口servlet ...
- SQL 经典回顾:JOIN 表连接操作不完全指南
也许最强大的SQL功能是JOIN操作.这让所有非关系数据库羡慕不已,因为当你想"合并"两个数据集时,这个概念是如此简单,并且又普遍适用. 简单地说,连接两个表,就是将一个表中的每一 ...
最新文章
- 开工快乐!AI内参邀你继续学习,并送上50元优惠券!
- Google advertiser api开发概述——部分失败
- JAVA入门笔记·我的第一个JAVA程序
- Servlet应用之细节
- Swift 和 Objective-C 混编
- iview组件库 - 穿梭栏设置
- SQL Server删除整个数据库中表数据的方法(不影响表结构)
- DEV控件:gridControl常用属性设置
- Selenium Webdriver 简易教程
- 从键盘上输入一个字符串并保存在str1中,并把str1中下表为偶数的字符保存到str2中
- linux环境下protobuf的安装与使用
- java+构造函数+native_java中native的用法
- Python游戏篇:细节之大型游戏爆炸效果(附代码)
- python创意小作品代码-超全代码详解 Python 制作精美炫酷图表教程
- 为什么街头篮球总提示服务器维护,我玩街头篮球,但这几天它总是说连接不上服务器怎么回事?...
- sql查询语句分支语句
- 如何防御DOS和DDOS攻击
- 小米生态链企业商米科技完成数亿元C+轮融资,蚂蚁金服投资...
- 计算机网络实验八——聊天程序
- itest英语考试bug_iTEST爱考试