Merge branch 'master' into axis

This commit is contained in:
Mike Bostock 2011-08-22 16:20:54 -07:00
Родитель eecd123ecc c421f90dc0
Коммит 9dc97e87fe
14 изменённых файлов: 86 добавлений и 48 удалений

Просмотреть файл

@ -17,7 +17,8 @@ d3.behavior.zoom = function() {
.on("mousemove.zoom", d3_behavior_zoomMousemove)
.on("mouseup.zoom", d3_behavior_zoomMouseup)
.on("touchmove.zoom", d3_behavior_zoomTouchmove)
.on("touchend.zoom", d3_behavior_zoomTouchup);
.on("touchend.zoom", d3_behavior_zoomTouchup)
.on("click.zoom", d3_behavior_zoomClick, true);
}
// snapshot the local context for subsequent dispatch
@ -31,6 +32,7 @@ d3.behavior.zoom = function() {
function mousedown() {
start.apply(this, arguments);
d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
d3_behavior_zoomMoved = false;
d3.event.preventDefault();
window.focus();
}
@ -76,7 +78,8 @@ var d3_behavior_zoomDiv,
d3_behavior_zoomXyz,
d3_behavior_zoomDispatch,
d3_behavior_zoomTarget,
d3_behavior_zoomArguments;
d3_behavior_zoomArguments,
d3_behavior_zoomStopClick;
function d3_behavior_zoomLocation(point) {
return [
@ -155,16 +158,28 @@ function d3_behavior_zoomTouchmove() {
function d3_behavior_zoomMousemove() {
d3_behavior_zoomZooming = null;
if (d3_behavior_zoomPanning) d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
if (d3_behavior_zoomPanning) {
d3_behavior_zoomMoved = true;
d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
}
}
function d3_behavior_zoomMouseup() {
if (d3_behavior_zoomPanning) {
if (d3_behavior_zoomMoved) d3_behavior_zoomStopClick = true;
d3_behavior_zoomMousemove();
d3_behavior_zoomPanning = null;
}
}
function d3_behavior_zoomClick() {
if (d3_behavior_zoomStopClick) {
d3.event.stopPropagation();
d3.event.preventDefault();
d3_behavior_zoomStopClick = false;
}
}
function d3_behavior_zoomTo(z, x0, x1) {
var K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
x = d3_behavior_zoomXyz[0] = x0[0] - K * x1[0],

2
d3.behavior.min.js поставляемый
Просмотреть файл

@ -1 +1 @@
(function(){function p(a,b,c){function m(a,b){var c=a.__domain||(a.__domain=a.domain()),d=a.range().map(function(a){return(a-b)/l});a.domain(c).domain(d.map(a.invert))}var d=Math.pow(2,(f[2]=a)-c[2]),e=f[0]=b[0]-d*c[0],j=f[1]=b[1]-d*c[1],k=d3.event,l=Math.pow(2,a);d3.event={scale:l,translate:[e,j],transform:function(a,b){a&&m(a,e),b&&m(b,j)}};try{g.apply(h,i)}finally{d3.event=k}k.preventDefault()}function o(){b&&(n(),b=null)}function n(){c=null,b&&p(f[2],d3.svg.mouse(h),b)}function m(){var a=d3.svg.touches(h);switch(a.length){case 1:var b=a[0];p(f[2],b,d[b.identifier]);break;case 2:var c=a[0],e=a[1],g=[(c[0]+e[0])/2,(c[1]+e[1])/2],i=d[c.identifier],j=d[e.identifier],k=[(i[0]+j[0])/2,(i[1]+j[1])/2,i[2]];p(Math.log(d3.event.scale)/Math.LN2+i[2],g,k)}}function l(){var a=d3.svg.touches(h),b=-1,c=a.length,e;while(++b<c)d[(e=a[b]).identifier]=j(e);return a}function k(){a||(a=d3.select("body").append("div").style("visibility","hidden").style("top",0).style("height",0).style("width",0).style("overflow-y","scroll").append("div").style("height","2000px").node().parentNode);var b=d3.event,c;try{a.scrollTop=1e3,a.dispatchEvent(b),c=1e3-a.scrollTop}catch(d){c=b.wheelDelta||-b.detail}return c*.005}function j(a){return[a[0]-f[0],a[1]-f[1],f[2]]}d3.behavior={},d3.behavior.zoom=function(){function w(){s.apply(this,arguments);var b=l(),c,f=Date.now();b.length===1&&f-e<300&&p(1+Math.floor(a[2]),c=b[0],d[c.identifier]),e=f}function v(){s.apply(this,arguments);var b=d3.svg.mouse(h);p(d3.event.shiftKey?Math.ceil(a[2]-1):Math.floor(a[2]+1),b,j(b))}function u(){s.apply(this,arguments),c||(c=j(d3.svg.mouse(h))),p(k()+a[2],d3.svg.mouse(h),c)}function t(){s.apply(this,arguments),b=j(d3.svg.mouse(h)),d3.event.preventDefault(),window.focus()}function s(){f=a,g=q.zoom.dispatch,h=this,i=arguments}function r(){this.on("mousedown.zoom",t).on("mousewheel.zoom",u).on("DOMMouseScroll.zoom",v).on("dblclick.zoom",v).on("touchstart.zoom",w),d3.select(window).on("mousemove.zoom",n).on("mouseup.zoom",o).on("touchmove.zoom",m).on("touchend.zoom",l)}var a=[0,0,0],q=d3.dispatch("zoom");r.on=function(a,b){q[a].add(b);return r};return r};var a,b,c,d={},e=0,f,g,h,i})()
(function(){function r(a,b,c){function m(a,b){var c=a.__domain||(a.__domain=a.domain()),d=a.range().map(function(a){return(a-b)/l});a.domain(c).domain(d.map(a.invert))}var d=Math.pow(2,(f[2]=a)-c[2]),e=f[0]=b[0]-d*c[0],j=f[1]=b[1]-d*c[1],k=d3.event,l=Math.pow(2,a);d3.event={scale:l,translate:[e,j],transform:function(a,b){a&&m(a,e),b&&m(b,j)}};try{g.apply(h,i)}finally{d3.event=k}k.preventDefault()}function q(){j&&(d3.event.stopPropagation(),d3.event.preventDefault(),j=!1)}function p(){b&&(d3_behavior_zoomMoved&&(j=!0),o(),b=null)}function o(){c=null,b&&(d3_behavior_zoomMoved=!0,r(f[2],d3.svg.mouse(h),b))}function n(){var a=d3.svg.touches(h);switch(a.length){case 1:var b=a[0];r(f[2],b,d[b.identifier]);break;case 2:var c=a[0],e=a[1],g=[(c[0]+e[0])/2,(c[1]+e[1])/2],i=d[c.identifier],j=d[e.identifier],k=[(i[0]+j[0])/2,(i[1]+j[1])/2,i[2]];r(Math.log(d3.event.scale)/Math.LN2+i[2],g,k)}}function m(){var a=d3.svg.touches(h),b=-1,c=a.length,e;while(++b<c)d[(e=a[b]).identifier]=k(e);return a}function l(){a||(a=d3.select("body").append("div").style("visibility","hidden").style("top",0).style("height",0).style("width",0).style("overflow-y","scroll").append("div").style("height","2000px").node().parentNode);var b=d3.event,c;try{a.scrollTop=1e3,a.dispatchEvent(b),c=1e3-a.scrollTop}catch(d){c=b.wheelDelta||-b.detail}return c*.005}function k(a){return[a[0]-f[0],a[1]-f[1],f[2]]}d3.behavior={},d3.behavior.zoom=function(){function x(){t.apply(this,arguments);var b=m(),c,f=Date.now();b.length===1&&f-e<300&&r(1+Math.floor(a[2]),c=b[0],d[c.identifier]),e=f}function w(){t.apply(this,arguments);var b=d3.svg.mouse(h);r(d3.event.shiftKey?Math.ceil(a[2]-1):Math.floor(a[2]+1),b,k(b))}function v(){t.apply(this,arguments),c||(c=k(d3.svg.mouse(h))),r(l()+a[2],d3.svg.mouse(h),c)}function u(){t.apply(this,arguments),b=k(d3.svg.mouse(h)),d3_behavior_zoomMoved=!1,d3.event.preventDefault(),window.focus()}function t(){f=a,g=j.zoom.dispatch,h=this,i=arguments}function s(){this.on("mousedown.zoom",u).on("mousewheel.zoom",v).on("DOMMouseScroll.zoom",w).on("dblclick.zoom",w).on("touchstart.zoom",x),d3.select(window).on("mousemove.zoom",o).on("mouseup.zoom",p).on("touchmove.zoom",n).on("touchend.zoom",m).on("click.zoom",q,!0)}var a=[0,0,0],j=d3.dispatch("zoom");s.on=function(a,b){j[a].add(b);return s};return s};var a,b,c,d={},e=0,f,g,h,i,j})()

12
d3.js поставляемый
Просмотреть файл

@ -1,4 +1,4 @@
(function(){d3 = {version: "1.29.6"}; // semver
(function(){d3 = {version: "1.29.7"}; // semver
if (!Date.now) Date.now = function() {
return +new Date;
};
@ -9,14 +9,14 @@ if (!Object.create) Object.create = function(o) {
};
var d3_array = d3_arraySlice; // conversion for NodeLists
function d3_arrayCopy(psuedoarray) {
var i = -1, n = psuedoarray.length, array = [];
while (++i < n) array.push(psuedoarray[i]);
function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}
function d3_arraySlice(psuedoarray) {
return Array.prototype.slice.call(psuedoarray);
function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}
try {

Просмотреть файл

@ -143,7 +143,7 @@ d3.layout.chord = function() {
if (source.value || target.value) {
chords.push(source.value < target.value
? {source: target, target: source}
: {source: source, target: target})
: {source: source, target: target});
}
}
}
@ -269,10 +269,10 @@ d3.layout.force = function() {
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
x *= l;
y *= l;
t.x -= x;
t.y -= y;
s.x += x;
s.y += y;
t.x -= x / t.weight;
t.y -= y / t.weight;
s.x += x / s.weight;
s.y += y / s.weight;
}
}
@ -387,6 +387,7 @@ d3.layout.force = function() {
for (i = 0; i < n; ++i) {
(o = nodes[i]).index = i;
o.weight = 0;
}
distances = [];
@ -397,6 +398,8 @@ d3.layout.force = function() {
if (typeof o.target == "number") o.target = nodes[o.target];
distances[i] = linkDistance.call(this, o, i);
strengths[i] = linkStrength.call(this, o, i);
++o.source.weight;
++o.target.weight;
}
for (i = 0; i < n; ++i) {
@ -468,7 +471,7 @@ d3.layout.force = function() {
function dragdown(d, i) {
var m = d3_layout_forcePoint(this.parentNode);
(d3_layout_forceDragNode = d).fixed = true;
(d3_layout_forceDragNode = d).fixed |= 2;
d3_layout_forceDragMoved = false;
d3_layout_forceDragElement = this;
d3_layout_forceDragForce = force;
@ -487,13 +490,11 @@ var d3_layout_forceDragForce,
d3_layout_forceDragElement;
function d3_layout_forceDragOver(d) {
d.fixed = true;
d.fixed |= 2;
}
function d3_layout_forceDragOut(d) {
if (d !== d3_layout_forceDragNode) {
d.fixed = false;
}
if (d !== d3_layout_forceDragNode) d.fixed &= 1;
}
function d3_layout_forcePoint(container) {
@ -508,7 +509,7 @@ function d3_layout_forceDragMove() {
// O NOES! The drag element was removed from the DOM.
if (!parent) {
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode.fixed &= 1;
d3_layout_forceDragOffset = d3_layout_forceDragNode = d3_layout_forceDragElement = null;
return;
}
@ -534,7 +535,7 @@ function d3_layout_forceDragUp() {
if (d3.event.type === "mouseup") d3_layout_forceDragMove();
}
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode.fixed &= 1;
d3_layout_forceDragForce =
d3_layout_forceDragOffset =
d3_layout_forceDragNode =

2
d3.layout.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

2
d3.min.js поставляемый

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Просмотреть файл

@ -9,8 +9,7 @@ var vis = d3.select("#chart")
d3.json("miserables.json", function(json) {
var force = d3.layout.force()
.charge(-120)
.linkDistance(30)
.charge(-60)
.nodes(json.nodes)
.links(json.links)
.size([w, h])

Просмотреть файл

@ -18,7 +18,7 @@ body {
Sizzle.js disabled.
<script type="text/javascript">
// The :first psuedo-class is a custom Sizzle extension.
// The :first pseudo-class is a custom Sizzle extension.
d3.select("body:first")
.html("Sizzle.js enabled!");

Просмотреть файл

@ -47,6 +47,13 @@ svg.append("svg:rect")
.attr("stroke", stroke)
.attr("fill", "none");
svg.append("svg:a")
.attr("xlink:href", "http://mbostock.github.com/d3/")
.append("svg:text")
.style("font-size", "3em")
.attr("transform", "translate(110.5, 110.5)")
.text("D3.js");
redraw();
function redraw() {

Просмотреть файл

@ -16,7 +16,8 @@ d3.behavior.zoom = function() {
.on("mousemove.zoom", d3_behavior_zoomMousemove)
.on("mouseup.zoom", d3_behavior_zoomMouseup)
.on("touchmove.zoom", d3_behavior_zoomTouchmove)
.on("touchend.zoom", d3_behavior_zoomTouchup);
.on("touchend.zoom", d3_behavior_zoomTouchup)
.on("click.zoom", d3_behavior_zoomClick, true);
}
// snapshot the local context for subsequent dispatch
@ -30,6 +31,7 @@ d3.behavior.zoom = function() {
function mousedown() {
start.apply(this, arguments);
d3_behavior_zoomPanning = d3_behavior_zoomLocation(d3.svg.mouse(d3_behavior_zoomTarget));
d3_behavior_zoomMoved = false;
d3.event.preventDefault();
window.focus();
}
@ -75,7 +77,8 @@ var d3_behavior_zoomDiv,
d3_behavior_zoomXyz,
d3_behavior_zoomDispatch,
d3_behavior_zoomTarget,
d3_behavior_zoomArguments;
d3_behavior_zoomArguments,
d3_behavior_zoomStopClick;
function d3_behavior_zoomLocation(point) {
return [
@ -154,16 +157,28 @@ function d3_behavior_zoomTouchmove() {
function d3_behavior_zoomMousemove() {
d3_behavior_zoomZooming = null;
if (d3_behavior_zoomPanning) d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
if (d3_behavior_zoomPanning) {
d3_behavior_zoomMoved = true;
d3_behavior_zoomTo(d3_behavior_zoomXyz[2], d3.svg.mouse(d3_behavior_zoomTarget), d3_behavior_zoomPanning);
}
}
function d3_behavior_zoomMouseup() {
if (d3_behavior_zoomPanning) {
if (d3_behavior_zoomMoved) d3_behavior_zoomStopClick = true;
d3_behavior_zoomMousemove();
d3_behavior_zoomPanning = null;
}
}
function d3_behavior_zoomClick() {
if (d3_behavior_zoomStopClick) {
d3.event.stopPropagation();
d3.event.preventDefault();
d3_behavior_zoomStopClick = false;
}
}
function d3_behavior_zoomTo(z, x0, x1) {
var K = Math.pow(2, (d3_behavior_zoomXyz[2] = z) - x1[2]),
x = d3_behavior_zoomXyz[0] = x0[0] - K * x1[0],

Просмотреть файл

@ -1,13 +1,13 @@
var d3_array = d3_arraySlice; // conversion for NodeLists
function d3_arrayCopy(psuedoarray) {
var i = -1, n = psuedoarray.length, array = [];
while (++i < n) array.push(psuedoarray[i]);
function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}
function d3_arraySlice(psuedoarray) {
return Array.prototype.slice.call(psuedoarray);
function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}
try {

Просмотреть файл

@ -1 +1 @@
d3 = {version: "1.29.6"}; // semver
d3 = {version: "1.29.7"}; // semver

Просмотреть файл

@ -85,7 +85,7 @@ d3.layout.chord = function() {
if (source.value || target.value) {
chords.push(source.value < target.value
? {source: target, target: source}
: {source: source, target: target})
: {source: source, target: target});
}
}
}

Просмотреть файл

@ -63,10 +63,10 @@ d3.layout.force = function() {
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
x *= l;
y *= l;
t.x -= x;
t.y -= y;
s.x += x;
s.y += y;
t.x -= x / t.weight;
t.y -= y / t.weight;
s.x += x / s.weight;
s.y += y / s.weight;
}
}
@ -181,6 +181,7 @@ d3.layout.force = function() {
for (i = 0; i < n; ++i) {
(o = nodes[i]).index = i;
o.weight = 0;
}
distances = [];
@ -191,6 +192,8 @@ d3.layout.force = function() {
if (typeof o.target == "number") o.target = nodes[o.target];
distances[i] = linkDistance.call(this, o, i);
strengths[i] = linkStrength.call(this, o, i);
++o.source.weight;
++o.target.weight;
}
for (i = 0; i < n; ++i) {
@ -262,7 +265,7 @@ d3.layout.force = function() {
function dragdown(d, i) {
var m = d3_layout_forcePoint(this.parentNode);
(d3_layout_forceDragNode = d).fixed = true;
(d3_layout_forceDragNode = d).fixed |= 2;
d3_layout_forceDragMoved = false;
d3_layout_forceDragElement = this;
d3_layout_forceDragForce = force;
@ -281,13 +284,11 @@ var d3_layout_forceDragForce,
d3_layout_forceDragElement;
function d3_layout_forceDragOver(d) {
d.fixed = true;
d.fixed |= 2;
}
function d3_layout_forceDragOut(d) {
if (d !== d3_layout_forceDragNode) {
d.fixed = false;
}
if (d !== d3_layout_forceDragNode) d.fixed &= 1;
}
function d3_layout_forcePoint(container) {
@ -302,7 +303,7 @@ function d3_layout_forceDragMove() {
// O NOES! The drag element was removed from the DOM.
if (!parent) {
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode.fixed &= 1;
d3_layout_forceDragOffset = d3_layout_forceDragNode = d3_layout_forceDragElement = null;
return;
}
@ -328,7 +329,7 @@ function d3_layout_forceDragUp() {
if (d3.event.type === "mouseup") d3_layout_forceDragMove();
}
d3_layout_forceDragNode.fixed = false;
d3_layout_forceDragNode.fixed &= 1;
d3_layout_forceDragForce =
d3_layout_forceDragOffset =
d3_layout_forceDragNode =