因为最近手上有个小的需求,设计一个可缩放和可拖拽的树形结构,我便去研读了D3官网给的一个树形的例子。
布局(Layout)
原本我以为理解了基本的选择器、元素操作、Enter、Exit就能去看实例的代码了,后来发现我错了,所以这里需要理解一下D3中布局(Layout)的概念。布局是D3中一个十分重要的概念,从布局衍生出很多图表。例如:饼状图(pie)、力导向图(force),树状图(tree)等等,基本实现了很多开源的可视化工具提供的图表。但是它又和很多可视化工具(如Echarts)有很大的不同。
相对于其它工具来说,D3较底层一点,所以初学者可能会觉得有点困难,但是一旦理解了D3布局的思想,使用起来,会比其它工具更加得心应手
继续阅读 »
一、技术概览
1、Core Data功能初窥
对于处理诸如对象生命周期管理、对象图管理等日常任务,Core Data框架提供了广泛且自动化的解决方案。它有以下特性。
对象图-Object Graph的解释:在面向对象编程中,对象之间有各种关系,例如对象直接引用另外的对象,或是通过引用链间接的引用其他对象,这些关系组成了网状的结构。我们把这些对象(和它们之间的联系)成为对象图。对象图可大可小,有繁有简。只包含单个字符串对象的数组就是一个简单的代表;而包含了application对象,引用windows、menus和相关视图对象、其他对象这样的结构就是复杂对象图的例子,这是在说mainwindow.xib。
继续阅读 »
连连看是一种益智游戏,其核心算法是要在一个M * N的矩阵上找出两个点的“最短路径”,满足:1. 转弯数最少 2. 经过的点最少。谈到图的两点间最短路径,我们会想到用于无权图的广度优先搜索(BFS)和带权图的Dijkstra算法。那么对于连连看的M * N矩阵来说,究竟可以抽象成有权图呢还是无权图?如果有,权重又是什么呢?
继续阅读 »
在开发中经常会有一些需求,比如显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其他的一些形状。但是往往我们手上的图片或者从服务器获取到的图片都是方形的。这时候就需要我们自己进行处理,将图片处理成所需要的形状。正如茴香豆的的“茴”写法大于一种,经过我的研究,画出特殊图片的方法也不是一种,我发现了三种,且听我一一道来。
more
使用Xfermode 两图相交方式
通过查找资料发现android中可以设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式,具体模式见下图,源码可以去android apidemo。(SRC 为我们要画到目标图上的图即原图,DST为目标图)
由上图可以看到,如果我们需要画
继续阅读 »
做了一张思维导图。总结这几个月对 JavaScript 的学习吧,也是一个复习。也是我目前的技能树。
继续阅读 »
通过使用d3.js,可以非常方便地创建力场图(force layout graph)。在力场图的交互中,常会涉及到多种事件,例如:缩放,拖动,点击(单击、双击、右键)等。在有些情况下,事件之间会产生冲突。
继续阅读 »
content
{:toc}
问题描述
当我们点击一个空的、没有任何内容的 div 或者其他块级元素时。在 IE11 以下,是没有反应的。
使用场景
这类问题使用场景还是很普遍的。比如 UI 给了一张大图,要点击图上的某一块位置的时候。可以用一个空的 div 定位到相应的位置,然后对它进行绑定事件。
继续阅读 »
分析:在坐标点构成的图上应用最小生成树算法即可。注意几点:
1)边权是动态计算出来的
2)每对坐标之间都可以有一条边
3)由于图的顶点不再由整数标识,因此用map代替典型算法中的vector
继续阅读 »
没图片太单调,用啥图呢,思考片刻选择了这幅图
数据绑定的本质
实现数据绑定的本质就是Setter+change事件,前者Setter用于在数据模型变化时更新UI,后者change事件,用于在UI变化时更新数据模型,来看个大某:
Demo1
```js
// 数据模型
var data = {
text: 'Hello World'
};
// UI元素
var input = document.getElementById('input'),
label = document.getElementById('lbl');
// Setter
Object.defineProperty(data, 'tex
继续阅读 »