diff --git a/Makefile b/Makefile index 2350bff738739..9ce15c7d2a358 100644 --- a/Makefile +++ b/Makefile @@ -136,9 +136,12 @@ d3.geom.js: \ tests: \ tests/test-append.test \ tests/test-attr.test \ + tests/test-call.test \ tests/test-format.test \ tests/test-transition.test \ - tests/test-scale-linear.test + tests/test-scale-linear.test \ + tests/test-scale-sqrt.test \ + tests/test-scale-pow.test %.min.js: %.js Makefile @rm -f $@ diff --git a/d3.geo.min.js b/d3.geo.min.js index b63b76cbf575b..2f664135333f2 100644 --- a/d3.geo.min.js +++ b/d3.geo.min.js @@ -1,5 +1,5 @@ -(function(){function v(b){return"m0,"+b+"a"+b+","+b+" 0 1,1 0,"+-2*b+"a"+b+","+b+" 0 1,1 0,"+ +2*b+"z"}function u(){return 0}function q(b,d){return d&&d.type in b?b[d.type](d):""}function w(b,d){b.type in y&&y[b.type](b,d)}function z(b,d){for(var g=b.coordinates,e=0,k=g.length;e50?g:d)(h)}var d=d3.geo.albers(),g=d3.geo.albers().origin([-160,60]).parallels([55,65]),e=d3.geo.albers().origin([-160,20]).parallels([8,18]),k=d3.geo.albers().origin([-60,10]).parallels([8,18]);b.scale=function(h){if(!arguments.length)return d.scale();d.scale(h);g.scale(h*0.6);e.scale(h);k.scale(h*1.5);return b.translate(d.translate())};b.translate=function(h){if(!arguments.length)return d.translate();var i=d.scale()/1E3,l=h[0], p=h[1];d.translate(h);g.translate([l-400*i,p+170*i]);e.translate([l-190*i,p+200*i]);k.translate([l+580*i,p+430*i]);return b};return b.scale(d.scale())};var r=Math.PI/180;d3.geo.mercator=function(){function b(e){return[d*(e[0]/360)+g[0],d*Math.max(-0.5,Math.min(0.5,-180/Math.PI*Math.log(Math.tan(Math.PI/4+e[1]*Math.PI/360))/360))+g[1]]}var d=500,g=[480,250];b.scale=function(e){if(!arguments.length)return d;d=+e;return b};b.translate=function(e){if(!arguments.length)return g;g=[+e[0],+e[1]];return b}; return b};d3.geo.path=function(){function b(a){if(typeof k=="function")h=v(k.apply(this,arguments));return q(l,a)}function d(a){return i(a).join(",")}function g(a){for(var c=Math.abs(d3.geom.polygon(a[0].map(i)).area()),f=0,j=a.length;++f0}function A(c,g,d){return(d[0]-g[0])*(c[1]-g[1])<(d[1]-g[1])*(c[0]-g[0])}function C(c,g,d,a){var f=c[0],b=d[0];c=c[1];var e=d[1];d=g[0]-f;var l=a[0]-b;g=g[1]-c;a=a[1]-e;b=(l*(c-e)-a*(f-b))/(a*d-l*g);return[f+b*d,c+b*g]}function D(c,g){var d={list:c.map(function(h,j){return{index:j,x:h[0],y:h[1]}}).sort(function(h,j){return h.yj.y?1:h.xj.x?1:0}),bottomSite:null}, -a={list:[],leftEnd:null,rightEnd:null,init:function(){a.leftEnd=a.createHalfEdge(null,"l");a.rightEnd=a.createHalfEdge(null,"l");a.leftEnd.r=a.rightEnd;a.rightEnd.l=a.leftEnd;a.list.unshift(a.leftEnd,a.rightEnd)},createHalfEdge:function(h,j){return{edge:h,side:j,vertex:null,l:null,r:null}},insert:function(h,j){j.l=h;j.r=h.r;h.r.l=j;h.r=j},leftBound:function(h){var j=a.leftEnd;do j=j.r;while(j!=a.rightEnd&&f.rightOf(j,h));return j=j.l},del:function(h){h.l.r=h.r;h.r.l=h.l;h.edge=null},right:function(h){return h.r}, -left:function(h){return h.l},leftRegion:function(h){return h.edge==null?d.bottomSite:h.edge.region[h.side]},rightRegion:function(h){return h.edge==null?d.bottomSite:h.edge.region[B[h.side]]}},f={bisect:function(h,j){var i={region:{l:h,r:j},ep:{l:null,r:null}},m=j.x-h.x,r=j.y-h.y,u=m>0?m:-m,v=r>0?r:-r;i.c=h.x*m+h.y*r+(m*m+r*r)*0.5;if(u>v){i.a=1;i.b=r/m;i.c/=m}else{i.b=1;i.a=m/r;i.c/=r}return i},intersect:function(h,j){var i=h.edge,m=j.edge;if(!i||!m||i.region.r==m.region.r)return null;var r=i.a*m.b- -i.b*m.a;if(Math.abs(r)<1.0E-10)return null;var u=(i.c*m.b-m.c*i.b)/r;r=(m.c*i.a-i.c*m.a)/r;var v=i.region.r,y=m.region.r;if(v.y=i.region.r.x)&&v.side=="l"||!i&&v.side=="r")return null;return{x:u,y:r}},rightOf:function(h,j){var i=h.edge,m=i.region.r,r=j.x>m.x;if(r&&h.side=="l")return 1;if(!r&&h.side=="r")return 0;if(i.a==1){var u=j.y-m.y,v=j.x-m.x,y=0,x=0;if(!r&&i.b<0||r&&i.b>=0)x=y=u>=i.b*v;else{x=j.x+j.y*i.b>i.c;if(i.b<0)x=!x;x||(y=1)}if(!y){m= -m.x-i.region.l.x;x=i.b*(v*v-u*u)u*u+m*m}return h.side=="l"?x:!x},endPoint:function(h,j,i){h.ep[j]=i;h.ep[B[j]]&&g(h)},distance:function(h,j){var i=h.x-j.x,m=h.y-j.y;return Math.sqrt(i*i+m*m)}},b={list:[],insert:function(h,j,i){h.vertex=j;h.ystar=j.y+i;i=0;for(var m=b.list,r=m.length;iu.ystar||h.ystar==u.ystar&&j.x>u.vertex.x))break}m.splice(i,0,h)},del:function(h){for(var j=0,i= -b.list,m=i.length;jn.y){k=t;t=n;n=k;k="r"}w=f.bisect(t,n);n=a.createHalfEdge(w, -k);a.insert(p,n);f.endPoint(w,B[k],q);if(q=f.intersect(p,n)){b.del(p);b.insert(p,q,f.distance(q,t))}(q=f.intersect(n,s))&&b.insert(n,q,f.distance(q,t))}}for(k=a.right(a.leftEnd);k!=a.rightEnd;k=a.right(k))g(k.edge)}function z(c,g,d,a,f,b){if(!c(g,d,a,f,b)){var e=(d+f)*0.5,l=(a+b)*0.5;g=g.nodes;g[0]&&z(c,g[0],d,a,e,l);g[1]&&z(c,g[1],e,a,f,l);g[2]&&z(c,g[2],d,l,e,b);g[3]&&z(c,g[3],e,l,f,b)}}d3.geom={};d3.geom.contour=function(c,g){var d;if(!(d=g))a:{for(var a=d=0;;){if(c(d,a)){d=[d,a];break a}if(d== -0){d=a+1;a=0}else{d-=1;a+=1}}d=void 0}d=d;a=[];var f=d[0],b=d[1],e=0,l=0,k=NaN,o=NaN;l=0;do{l=0;if(c(f-1,b-1))l+=1;if(c(f,b-1))l+=2;if(c(f-1,b))l+=4;if(c(f,b))l+=8;if(l==6){e=o==-1?-1:1;l=0}else if(l==9){e=0;l=k==1?-1:1}else{e=F[l];l=G[l]}if(e!=k&&l!=o){a.push([f,b]);k=e;o=l}f+=e;b+=l}while(d[0]!=f||d[1]!=b);return a};var F=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],G=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(c){if(c.length<3)return[];var g=c.length,d=g-1,a=[],f=[],b,e=0,l,k,o,p, -s,n,t;for(b=1;b=o*o+p*p)a[b].index=-1;else{a[s].index=-1;t=a[b].angle;s=b;n=g}}else{t=a[b].angle;s=b;n=g}}f.push(e); -for(g=b=0;b<2;++g)if(a[g].index!=-1){f.push(a[g].index);b++}for(e=f.length;g=0){a=d.ep.r;f=d.ep.l}else{a=d.ep.l;f=d.ep.r}if(d.a==1){b= -a?a.y:-1E6;a=d.c-d.b*b;e=f?f.y:1E6;f=d.c-d.b*e}else{a=a?a.x:-1E6;b=d.c-d.a*a;f=f?f.x:1E6;e=d.c-d.a*f}a=[a,b];f=[f,e];g[d.region.l.index].push(a,f);g[d.region.r.index].push(a,f)});return g.map(function(d,a){var f=c[a][0],b=c[a][1];d.forEach(function(e){e.angle=Math.atan2(e[0]-f,e[1]-b)});return d.sort(function(e,l){return e.angle-l.angle}).filter(function(e,l){return!l||e.angle-d[l-1].angle>1.0E-10})})};var B={l:"r",r:"l"};d3.geom.delaunay=function(c){var g=c.map(function(){return[]}),d=[];D(c,function(a){g[a.region.l.index].push(c[a.region.r.index])}); -g.forEach(function(a,f){var b=c[f],e=b[0],l=b[1];a.forEach(function(p){p.angle=Math.atan2(p[0]-e,p[1]-l)});a.sort(function(p,s){return p.angle-s.angle});for(var k=0,o=a.length-1;k=j,r=n[1]>=i,u=(r<<1)+m;s.leaf=false;s=s.nodes[u]||(s.nodes[u]={leaf:true,nodes:[],point:null});if(m)t=j;else w=j;if(r)q=i;else h=i;g(s,n,t,q,w,h)}for(var a,f=-1,b=c.length,e=Number.POSITIVE_INFINITY,l=e,k=Number.NEGATIVE_INFINITY,o=k;++fk)k=a[0];if(a[1]>o)o=a[1]}a=k-e;f=o-l;if(a>f)o=l+a;else k=e+f;var p={leaf:true,nodes:[],point:null};for(f=-1;++f0}function A(c,g,d){return(d[0]-g[0])*(c[1]-g[1])<(d[1]-g[1])*(c[0]-g[0])}function C(c,g,d,a){var f=c[0],b=d[0];c=c[1];var e=d[1];d=g[0]-f;var l=a[0]-b;g=g[1]-c;a=a[1]-e;b=(l*(c-e)-a*(f-b))/(a*d-l*g);return[f+b*d,c+b*g]}function D(c,g){var d={list:c.map(function(h,i){return{index:i,x:h[0],y:h[1]}}).sort(function(h,i){return h.yi.y?1:h.xi.x?1:0}),bottomSite:null}, +a={list:[],leftEnd:null,rightEnd:null,init:function(){a.leftEnd=a.createHalfEdge(null,"l");a.rightEnd=a.createHalfEdge(null,"l");a.leftEnd.r=a.rightEnd;a.rightEnd.l=a.leftEnd;a.list.unshift(a.leftEnd,a.rightEnd)},createHalfEdge:function(h,i){return{edge:h,side:i,vertex:null,l:null,r:null}},insert:function(h,i){i.l=h;i.r=h.r;h.r.l=i;h.r=i},leftBound:function(h){var i=a.leftEnd;do i=i.r;while(i!=a.rightEnd&&f.rightOf(i,h));return i=i.l},del:function(h){h.l.r=h.r;h.r.l=h.l;h.edge=null},right:function(h){return h.r}, +left:function(h){return h.l},leftRegion:function(h){return h.edge==null?d.bottomSite:h.edge.region[h.side]},rightRegion:function(h){return h.edge==null?d.bottomSite:h.edge.region[B[h.side]]}},f={bisect:function(h,i){var j={region:{l:h,r:i},ep:{l:null,r:null}},m=i.x-h.x,r=i.y-h.y;j.c=h.x*m+h.y*r+(m*m+r*r)*0.5;if((m>0?m:-m)>(r>0?r:-r)){j.a=1;j.b=r/m;j.c/=m}else{j.b=1;j.a=m/r;j.c/=r}return j},intersect:function(h,i){var j=h.edge,m=i.edge;if(!j||!m||j.region.r==m.region.r)return null;var r=j.a*m.b-j.b* +m.a;if(Math.abs(r)<1.0E-10)return null;var u=(j.c*m.b-m.c*j.b)/r;r=(m.c*j.a-j.c*m.a)/r;var w=j.region.r,y=m.region.r;if(w.y=j.region.r.x)&&w.side=="l"||!j&&w.side=="r")return null;return{x:u,y:r}},rightOf:function(h,i){var j=h.edge,m=j.region.r,r=i.x>m.x;if(r&&h.side=="l")return 1;if(!r&&h.side=="r")return 0;if(j.a==1){var u=i.y-m.y,w=i.x-m.x,y=0,x=0;if(!r&&j.b<0||r&&j.b>=0)x=y=u>=j.b*w;else{x=i.x+i.y*j.b>j.c;if(j.b<0)x=!x;x||(y=1)}if(!y){m=m.x-j.region.l.x; +x=j.b*(w*w-u*u)u*u+m*m}return h.side=="l"?x:!x},endPoint:function(h,i,j){h.ep[i]=j;h.ep[B[i]]&&g(h)},distance:function(h,i){var j=h.x-i.x,m=h.y-i.y;return Math.sqrt(j*j+m*m)}},b={list:[],insert:function(h,i,j){h.vertex=i;h.ystar=i.y+j;j=0;for(var m=b.list,r=m.length;ju.ystar||h.ystar==u.ystar&&i.x>u.vertex.x))break}m.splice(j,0,h)},del:function(h){for(var i=0,j=b.list,m=j.length;i< +m&&j[i]!=h;++i);j.splice(i,1)},empty:function(){return b.list.length==0},nextEvent:function(h){for(var i=0,j=b.list,m=j.length;in.y){k=t;t=n;n=k;k="r"}v=f.bisect(t,n);n=a.createHalfEdge(v, +k);a.insert(p,n);f.endPoint(v,B[k],q);if(q=f.intersect(p,n)){b.del(p);b.insert(p,q,f.distance(q,t))}(q=f.intersect(n,s))&&b.insert(n,q,f.distance(q,t))}}for(k=a.right(a.leftEnd);k!=a.rightEnd;k=a.right(k))g(k.edge)}function z(c,g,d,a,f,b){if(!c(g,d,a,f,b)){var e=(d+f)*0.5,l=(a+b)*0.5;g=g.nodes;g[0]&&z(c,g[0],d,a,e,l);g[1]&&z(c,g[1],e,a,f,l);g[2]&&z(c,g[2],d,l,e,b);g[3]&&z(c,g[3],e,l,f,b)}}d3.geom={};d3.geom.contour=function(c,g){var d;if(!(d=g))a:{for(var a=d=0;;){if(c(d,a)){d=[d,a];break a}if(d== +0){d=a+1;a=0}else{d-=1;a+=1}}d=void 0}a=[];var f=d[0],b=d[1],e=0,l=0,k=NaN,o=NaN;l=0;do{l=0;if(c(f-1,b-1))l+=1;if(c(f,b-1))l+=2;if(c(f-1,b))l+=4;if(c(f,b))l+=8;if(l==6){e=o==-1?-1:1;l=0}else if(l==9){e=0;l=k==1?-1:1}else{e=F[l];l=G[l]}if(e!=k&&l!=o){a.push([f,b]);k=e;o=l}f+=e;b+=l}while(d[0]!=f||d[1]!=b);return a};var F=[1,0,1,1,-1,0,-1,1,0,0,0,0,-1,0,-1,NaN],G=[0,-1,0,0,0,-1,0,0,1,-1,1,1,0,-1,0,NaN];d3.geom.hull=function(c){if(c.length<3)return[];var g=c.length,d=g-1,a=[],f=[],b,e=0,l,k,o,p,s,n, +t;for(b=1;b=o*o+p*p)a[b].index=-1;else{a[s].index=-1;t=a[b].angle;s=b;n=g}}else{t=a[b].angle;s=b;n=g}}f.push(e);for(g= +b=0;b<2;++g)if(a[g].index!=-1){f.push(a[g].index);b++}for(e=f.length;g=0){a=d.ep.r;f=d.ep.l}else{a=d.ep.l;f=d.ep.r}if(d.a==1){b=a?a.y: +-1E6;a=d.c-d.b*b;e=f?f.y:1E6;f=d.c-d.b*e}else{a=a?a.x:-1E6;b=d.c-d.a*a;f=f?f.x:1E6;e=d.c-d.a*f}a=[a,b];f=[f,e];g[d.region.l.index].push(a,f);g[d.region.r.index].push(a,f)});return g.map(function(d,a){var f=c[a][0],b=c[a][1];d.forEach(function(e){e.angle=Math.atan2(e[0]-f,e[1]-b)});return d.sort(function(e,l){return e.angle-l.angle}).filter(function(e,l){return!l||e.angle-d[l-1].angle>1.0E-10})})};var B={l:"r",r:"l"};d3.geom.delaunay=function(c){var g=c.map(function(){return[]}),d=[];D(c,function(a){g[a.region.l.index].push(c[a.region.r.index])}); +g.forEach(function(a,f){var b=c[f],e=b[0],l=b[1];a.forEach(function(p){p.angle=Math.atan2(p[0]-e,p[1]-l)});a.sort(function(p,s){return p.angle-s.angle});for(var k=0,o=a.length-1;k=i,r=n[1]>=j,u=(r<<1)+m;s.leaf=false;s=s.nodes[u]||(s.nodes[u]={leaf:true,nodes:[],point:null});if(m)t=i;else v=i;if(r)q=j;else h=j;g(s,n,t,q,v,h)}for(var a,f=-1,b=c.length,e=Number.POSITIVE_INFINITY,l=e,k=Number.NEGATIVE_INFINITY,o=k;++fk)k=a[0];if(a[1]>o)o=a[1]}a=k-e;f=o-l;if(a>f)o=l+a;else k=e+f;var p={leaf:true,nodes:[],point:null};for(f=-1;++f=0?a.substring(b):(b=a.length,""),g=[];b>0;)g.push(a.substring(b-=3,b+3));return g.reverse().join(",")+d}function ga(a){return function(b){return 1- a(1-b)}}function ha(a){return function(b){return 0.5*(b<0.5?a(2*b):2-a(2-2*b))}}function Aa(a){return a}function R(a){return function(b){return Math.pow(b,a)}}function Ba(a){return 1-Math.cos(a*Math.PI/2)}function Ca(a){return a?Math.pow(2,10*(a-1))-0.0010:0}function Da(a){return 1-Math.sqrt(1-a*a)}function Ea(a){return a<1/2.75?7.5625*a*a:a<2/2.75?7.5625*(a-=1.5/2.75)*a+0.75:a<2.5/2.75?7.5625*(a-=2.25/2.75)*a+0.9375:7.5625*(a-=2.625/2.75)*a+0.984375}function J(a,b,d){return{r:a,g:b,b:d,toString:Fa}} function Fa(){return"#"+S(this.r)+S(this.g)+S(this.b)}function S(a){return a<16?"0"+a.toString(16):a.toString(16)}function T(a,b,d){var g=0,e=0,c=0,f,h;if(f=/([a-z]+)\((.*)\)/i.exec(a)){h=f[2].split(",");switch(f[1]){case "hsl":return d(parseFloat(h[0]),parseFloat(h[1])/100,parseFloat(h[2])/100);case "rgb":return b(U(h[0]),U(h[1]),U(h[2]))}}if(d=G[a])return b(d.r,d.g,d.b);if(a!=null&&a.charAt(0)=="#"){if(a.length==4){g=a.charAt(1);g+=g;e=a.charAt(2);e+=e;c=a.charAt(3);c+=c}else if(a.length==7){g= @@ -22,48 +22,48 @@ for(u in e)s[u]=e[u].apply(this,arguments)}t=p(q);for(u in e)s[u].call(this,t);i u(s))}}function q(r,t){var u=n.call(this,r,t,this.getAttributeNS(m.space,m.local));return function(s){this.setAttributeNS(m.space,m.local,u(s))}}e["attr."+m]=m.local?q:l;return d};d.attr=function(m,n){return d.attrTween(m,ka(n))};d.styleTween=function(m,n,l){if(arguments.length<3)l=null;e["style."+m]=function(q,r){var t=n.call(this,q,r,window.getComputedStyle(this,null).getPropertyValue(m));return function(u){this.style.setProperty(m,t(u),l)}};return d};d.style=function(m,n,l){if(arguments.length< 3)l=null;return d.styleTween(m,ka(n),l)};d.select=function(m){var n;m=X(a.select(m)).ease(p);n=-1;m.delay(function(){return k[++n]});n=-1;m.duration(function(){return j[++n]});return m};d.selectAll=function(m){var n;m=X(a.selectAll(m)).ease(p);n=-1;m.delay(function(l,q){return k[q?n:++n]});n=-1;m.duration(function(l,q){return j[q?n:++n]});return m};d.remove=function(){f=true;return d};d.each=function(m,n){h[m].add(n);return d};d.call=ea;return d.delay(0).duration(250)}function ka(a){return typeof a== "function"?function(b,d,g){return d3.interpolate(g,String(a.call(this,b,d)))}:(a=String(a),function(b,d,g){return d3.interpolate(g,a)})}function ja(a,b){var d=Date.now(),g=false,e=d+b,c=F;if(isFinite(b)){for(;c;){if(c.callback==a){c.then=d;c.delay=b;g=true}else{var f=c.then+c.delay;if(fd.delay)d.flush= -d.callback(a);d=d.next}a=null;for(b=F;b;)b=b.flush?a?a.next=b.next:F=b.next:(a=b).next;a||(K=0);K&&la(ma)}function Ma(a){return a.innerRadius}function Na(a){return a.outerRadius}function na(a){return a.startAngle}function oa(a){return a.endAngle}function $(a,b,d,g){var e=[],c=-1,f=b.length,h=typeof d=="function",i=typeof g=="function",k;if(h&&i)for(;++c1){h=b[1];c=a[i];i++;g+="C"+(e[0]+f[0])+","+ -(e[1]+f[1])+","+(c[0]-h[0])+","+(c[1]-h[1])+","+c[0]+","+c[1];for(e=2;eb?1:0};d3.descending=function(a,b){return ba?1:0};d3.min=function(a,b){var d=0,g=a.length,e=a[0],c;if(arguments.length==1)for(;++d(c=a[d]))e=c}else for(e=b(a[0]);++d(c=b(a[d])))e=c;return e};d3.max=function(a,b){var d=0,g=a.length,e=a[0],c;if(arguments.length==1)for(;++d=g.length)return f?f.call(d,h):c?h.sort(c): -h;for(var k=-1,j=h.length,o=g[i++],p,m,n={};++k=g.length)return h;var k=[],j=e[i++],o;for(o in h)k.push({key:o,values:b(h[o],i)});j&&k.sort(function(p,m){return j(p.key,m.key)});return k}var d={},g=[],e=[],c,f;d.map=function(h){return a(h,0)};d.entries=function(h){return b(a(h,0),0)};d.key=function(h){g.push(h);return d};d.sortKeys=function(h){e[g.length-1]=h;return d};d.sortValues=function(h){c= -h;return d};d.rollup=function(h){f=h;return d};return d};d3.keys=function(a){var b=[],d;for(d in a)b.push(d);return b};d3.values=function(a){var b=[],d;for(d in a)b.push(a[d]);return b};d3.entries=function(a){var b=[],d;for(d in a)b.push({key:d,value:a[d]});return b};d3.merge=function(a){return Array.prototype.concat.apply([],a)};d3.split=function(a,b){var d=[],g=[],e,c=-1,f=a.length;if(arguments.length<2)b=ya;for(;++cb;)g.push(c);else for(;(c=a+d*++e)=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,Wa=R(2),Xa=R(3),Ya={linear:function(){return Aa},poly:R,quad:function(){return Wa},cubic:function(){return Xa},sin:function(){return Ba}, -exp:function(){return Ca},circle:function(){return Da},elastic:function(a,b){var d;if(arguments.length<2)b=0.45;if(arguments.length<1){a=1;d=b/4}else d=b/(2*Math.PI)*Math.asin(1/a);return function(g){return 1+a*Math.pow(2,10*-g)*Math.sin((g-d)*2*Math.PI/b)}},back:function(a){a||(a=1.70158);return function(b){return b*b*((a+1)*b-a)}},bounce:function(){return Ea}},Za={"in":function(a){return a},out:ga,"in-out":ha,"out-in":function(a){return ha(ga(a))}};d3.ease=function(a){var b=a.indexOf("-"),d=b>= -0?a.substring(0,b):a;b=b>=0?a.substring(b+1):"in";return Za[b](Ya[d].apply(null,Array.prototype.slice.call(arguments,1)))};d3.event=null;d3.interpolate=function(a,b){if(typeof b=="number")return d3.interpolateNumber(+a,b);if(typeof b=="string")return b in G||/^(#|rgb\(|hsl\()/.test(b)?d3.interpolateRgb(String(a),b):d3.interpolateString(String(a),b);if(b instanceof Array)return d3.interpolateArray(a,b);return d3.interpolateObject(a,b)};d3.interpolateNumber=function(a,b){b-=a;return function(d){return a+ -b*d}};d3.interpolateRound=function(a,b){b-=a;return function(d){return Math.round(a+b*d)}};d3.interpolateString=function(a,b){var d,g,e=0,c=[],f=[],h,i;for(g=0;d=aa.exec(b);++g){d.index&&c.push(b.substring(e,d.index));f.push({i:c.length,x:d[0]});c.push(null);e=aa.lastIndex}e0;j--)f.push(b(h)*j);else{for(;hc;i--);f=f.slice(h,i)}return f};d.tickFormat=function(){return function(c){return c.toPrecision(1)}};return d};d3.scale.pow=function(){function a(i){return h? --Math.pow(-i,c):Math.pow(i,c)}function b(i){return h?-Math.pow(-i,f):Math.pow(i,f)}function d(i){return g(a(i))}var g=d3.scale.linear(),e=d3.scale.linear(),c=1,f=1/c,h=false;d.invert=function(i){return b(g.invert(i))};d.domain=function(i){if(!arguments.length)return g.domain().map(b);h=(i[0]||i[1])<0;g.domain(i.map(a));e.domain(i);return d};d.range=C(d,g.range);d.rangeRound=C(d,g.rangeRound);d.inteprolate=C(d,g.interpolate);d.ticks=e.ticks;d.tickFormat=e.tickFormat;d.exponent=function(i){if(!arguments.length)return c; -var k=d.domain();c=i;f=1/i;return d.domain(k)};return d};d3.scale.sqrt=function(){return d3.scale.pow().exponent(0.5)};d3.scale.ordinal=function(){function a(c){c=c in d?d[c]:d[c]=b.push(c)-1;return g[c%g.length]}var b=[],d={},g=[],e=0;a.domain=function(c){if(!arguments.length)return b;b=c;d={};for(var f=-1,h=-1,i=b.length;++f>1,j=c[k];if(jf)i=k-1;else return k}return i<0?0:i}function d(f){return e[b(f)]}var g=[],e=[],c=[];d.domain=function(f){if(!arguments.length)return g;g=f.filter(function(h){return!isNaN(h)}).sort(d3.ascending);a();return d};d.range=function(f){if(!arguments.length)return e;e=f;a();return d};d.quantiles=function(){return c};return d};d3.scale.quantize=function(){function a(f){return c[Math.max(0, -Math.min(e,Math.floor(g*(f-b))))]}var b=0,d=1,g=2,e=1,c=[0,1];a.domain=function(f){if(!arguments.length)return[b,d];b=f[0];d=f[1];g=c.length/(d-b);return a};a.range=function(f){if(!arguments.length)return c;c=f;g=c.length/(d-b);e=c.length-1;return a};return a};d3.svg={};d3.svg.arc=function(){function a(){var c=b.apply(this,arguments),f=d.apply(this,arguments),h=g.apply(this,arguments)+I,i=e.apply(this,arguments)+I,k=i-h,j=k=eb?c?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+c+"A"+c+","+c+" 0 1,1 0,"+-c+"A"+c+","+c+" 0 1,1 0,"+c+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":c?"M"+f*o+","+f*h+"A"+f+","+f+" 0 "+j+",1 "+f*p+","+f*i+"L"+c*p+","+c*i+"A"+c+","+c+" 0 "+j+",0 "+c*o+","+c*h+"Z":"M"+f*o+","+f*h+"A"+f+","+f+" 0 "+j+",1 "+f*p+","+f*i+"L0,0Z"}var b=Ma,d=Na,g=na,e=oa;a.innerRadius=function(c){if(!arguments.length)return b;b=v(c);return a};a.outerRadius=function(c){if(!arguments.length)return d; -d=v(c);return a};a.startAngle=function(c){if(!arguments.length)return g;g=v(c);return a};a.endAngle=function(c){if(!arguments.length)return e;e=v(c);return a};a.centroid=function(){var c=(b.apply(this,arguments)+d.apply(this,arguments))/2,f=(g.apply(this,arguments)+e.apply(this,arguments))/2+I;return[Math.cos(f)*c,Math.sin(f)*c]};return a};var I=-Math.PI/2,eb=2*Math.PI-1.0E-6;d3.svg.line=function(){function a(f){return f.length<1?null:"M"+e($(this,f,b,d),c)}var b=pa,d=qa,g="linear",e=P[g],c=0.7;a.x= -function(f){if(!arguments.length)return b;b=f;return a};a.y=function(f){if(!arguments.length)return d;d=f;return a};a.interpolate=function(f){if(!arguments.length)return g;e=P[g=f];return a};a.tension=function(f){if(!arguments.length)return c;c=f;return a};return a};var P={linear:H,basis:function(a){if(a.length<3)return H(a);var b=[],d=1,g=a.length,e=a[0],c=e[0],f=e[1],h=[c,c,c,(e=a[1])[0]],i=[f,f,f,e[1]];b.push(c,",",f);for(L(b,h,i);++d1){h=b[1];c=a[i];i++;g+="C"+(e[0]+f[0])+","+(e[1]+f[1])+","+(c[0]-h[0])+","+(c[1]-h[1])+","+c[0]+","+c[1];for(e=2;eb?1:0};d3.descending=function(a,b){return ba?1:0};d3.min=function(a,b){var d=0,g=a.length,e=a[0],c;if(arguments.length==1)for(;++d(c=a[d]))e=c}else for(e=b(a[0]);++d(c=b(a[d])))e=c;return e};d3.max=function(a,b){var d=0,g=a.length,e=a[0],c;if(arguments.length==1)for(;++d=g.length)return f?f.call(d,h):c?h.sort(c):h;for(var k=-1,j=h.length,o=g[i++],p,m,n={};++k=g.length)return h;var k=[],j=e[i++],o;for(o in h)k.push({key:o,values:b(h[o],i)});j&&k.sort(function(p,m){return j(p.key,m.key)});return k}var d={},g=[],e=[],c,f;d.map=function(h){return a(h,0)};d.entries=function(h){return b(a(h, +0),0)};d.key=function(h){g.push(h);return d};d.sortKeys=function(h){e[g.length-1]=h;return d};d.sortValues=function(h){c=h;return d};d.rollup=function(h){f=h;return d};return d};d3.keys=function(a){var b=[],d;for(d in a)b.push(d);return b};d3.values=function(a){var b=[],d;for(d in a)b.push(a[d]);return b};d3.entries=function(a){var b=[],d;for(d in a)b.push({key:d,value:a[d]});return b};d3.merge=function(a){return Array.prototype.concat.apply([],a)};d3.split=function(a,b){var d=[],g=[],e,c=-1,f=a.length; +if(arguments.length<2)b=ya;for(;++cb;)g.push(c);else for(;(c=a+d*++e)=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/, +Ya=R(2),Za=R(3),$a={linear:function(){return Aa},poly:R,quad:function(){return Ya},cubic:function(){return Za},sin:function(){return Ba},exp:function(){return Ca},circle:function(){return Da},elastic:function(a,b){var d;if(arguments.length<2)b=0.45;if(arguments.length<1){a=1;d=b/4}else d=b/(2*Math.PI)*Math.asin(1/a);return function(g){return 1+a*Math.pow(2,10*-g)*Math.sin((g-d)*2*Math.PI/b)}},back:function(a){a||(a=1.70158);return function(b){return b*b*((a+1)*b-a)}},bounce:function(){return Ea}}, +ab={"in":function(a){return a},out:ga,"in-out":ha,"out-in":function(a){return ha(ga(a))}};d3.ease=function(a){var b=a.indexOf("-"),d=b>=0?a.substring(0,b):a;b=b>=0?a.substring(b+1):"in";return ab[b]($a[d].apply(null,Array.prototype.slice.call(arguments,1)))};d3.event=null;d3.interpolate=function(a,b){if(typeof b=="number")return d3.interpolateNumber(+a,b);if(typeof b=="string")return b in G||/^(#|rgb\(|hsl\()/.test(b)?d3.interpolateRgb(String(a),b):d3.interpolateString(String(a),b);if(b instanceof +Array)return d3.interpolateArray(a,b);return d3.interpolateObject(a,b)};d3.interpolateNumber=function(a,b){b-=a;return function(d){return a+b*d}};d3.interpolateRound=function(a,b){b-=a;return function(d){return Math.round(a+b*d)}};d3.interpolateString=function(a,b){var d,g,e=0,c=[],f=[],h,i;for(g=0;d=aa.exec(b);++g){d.index&&c.push(b.substring(e,d.index));f.push({i:c.length,x:d[0]});c.push(null);e=aa.lastIndex}e0;j--)f.push(b(h)*j);else{for(;hc;i--);f=f.slice(h, +i)}return f};d.tickFormat=function(){return function(c){return c.toPrecision(1)}};return d};d3.scale.pow=function(){function a(f){return b(e(f))}var b=d3.scale.linear(),d=d3.scale.linear(),g=1,e=Number,c=e;a.invert=function(f){return c(b.invert(f))};a.domain=function(f){if(!arguments.length)return b.domain().map(c);var h=(f[0]||f[1])<0?Na:Ma;e=h(g);c=h(1/g);b.domain(f.map(e));d.domain(f);return a};a.range=C(a,b.range);a.rangeRound=C(a,b.rangeRound);a.interpolate=C(a,b.interpolate);a.ticks=d.ticks; +a.tickFormat=d.tickFormat;a.exponent=function(f){if(!arguments.length)return g;var h=a.domain();g=f;return a.domain(h)};return a};d3.scale.sqrt=function(){return d3.scale.pow().exponent(0.5)};d3.scale.ordinal=function(){function a(c){c=c in d?d[c]:d[c]=b.push(c)-1;return g[c%g.length]}var b=[],d={},g=[],e=0;a.domain=function(c){if(!arguments.length)return b;b=c;d={};for(var f=-1,h=-1,i=b.length;++f>1,j=c[k];if(jf)i=k-1;else return k}return i<0?0:i}function d(f){return e[b(f)]}var g=[],e=[],c=[];d.domain=function(f){if(!arguments.length)return g;g=f.filter(function(h){return!isNaN(h)}).sort(d3.ascending);a();return d};d.range=function(f){if(!arguments.length)return e;e=f;a();return d}; +d.quantiles=function(){return c};return d};d3.scale.quantize=function(){function a(f){return c[Math.max(0,Math.min(e,Math.floor(g*(f-b))))]}var b=0,d=1,g=2,e=1,c=[0,1];a.domain=function(f){if(!arguments.length)return[b,d];b=f[0];d=f[1];g=c.length/(d-b);return a};a.range=function(f){if(!arguments.length)return c;c=f;g=c.length/(d-b);e=c.length-1;return a};return a};d3.svg={};d3.svg.arc=function(){function a(){var c=b.apply(this,arguments),f=d.apply(this,arguments),h=g.apply(this,arguments)+I,i=e.apply(this, +arguments)+I,k=i-h,j=k=gb?c?"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"M0,"+c+"A"+c+","+c+" 0 1,1 0,"+-c+"A"+c+","+c+" 0 1,1 0,"+c+"Z":"M0,"+f+"A"+f+","+f+" 0 1,1 0,"+-f+"A"+f+","+f+" 0 1,1 0,"+f+"Z":c?"M"+f*o+","+f*h+"A"+f+","+f+" 0 "+j+",1 "+f*p+","+f*i+"L"+c*p+","+c*i+"A"+c+","+c+" 0 "+j+",0 "+c*o+","+c*h+"Z":"M"+f*o+","+f*h+"A"+f+","+f+" 0 "+j+",1 "+f*p+","+f*i+"L0,0Z"}var b=Oa,d=Pa,g=na,e= +oa;a.innerRadius=function(c){if(!arguments.length)return b;b=v(c);return a};a.outerRadius=function(c){if(!arguments.length)return d;d=v(c);return a};a.startAngle=function(c){if(!arguments.length)return g;g=v(c);return a};a.endAngle=function(c){if(!arguments.length)return e;e=v(c);return a};a.centroid=function(){var c=(b.apply(this,arguments)+d.apply(this,arguments))/2,f=(g.apply(this,arguments)+e.apply(this,arguments))/2+I;return[Math.cos(f)*c,Math.sin(f)*c]};return a};var I=-Math.PI/2,gb=2*Math.PI- +1.0E-6;d3.svg.line=function(){function a(f){return f.length<1?null:"M"+e($(this,f,b,d),c)}var b=pa,d=qa,g="linear",e=P[g],c=0.7;a.x=function(f){if(!arguments.length)return b;b=f;return a};a.y=function(f){if(!arguments.length)return d;d=f;return a};a.interpolate=function(f){if(!arguments.length)return g;e=P[g=f];return a};a.tension=function(f){if(!arguments.length)return c;c=f;return a};return a};var P={linear:H,basis:function(a){if(a.length<3)return H(a);var b=[],d=1,g=a.length,e=a[0],c=e[0],f=e[1], +h=[c,c,c,(e=a[1])[0]],i=[f,f,f,e[1]];b.push(c,",",f);for(L(b,h,i);++d ", f(x(-0.5))); +console.log(" 0.0 -> ", f(x(0.0))); +console.log(" 0.5 -> ", f(x(0.5))); +console.log(" 1.0 -> ", f(x(1.0))); +console.log(" 1.5 -> ", f(x(1.5))); +console.log(""); + +var x = d3.scale.pow().exponent(2).domain([1, 2]); +console.log("domain([1, 2]).range([0, 1]):"); +console.log(" 0.5 -> ", f(x(0.5))); +console.log(" 1.0 -> ", f(x(1.0))); +console.log(" 1.5 -> ", f(x(1.5))); +console.log(" 2.0 -> ", f(x(2.0))); +console.log(" 2.5 -> ", f(x(2.5))); +console.log(""); + +var x = d3.scale.pow().exponent(2).domain([new Date(1990, 0, 1), new Date(1991, 0, 1)]); +console.log("domain([01/01/1990, 01/01/1991]).range([0, 1]):"); +console.log(" 10/20/1989 -> ", f(x(new Date(1989, 09, 20)))); +console.log(" 01/01/1990 -> ", f(x(new Date(1990, 00, 01)))); +console.log(" 03/15/1990 -> ", f(x(new Date(1990, 02, 15)))); +console.log(" 05/27/1990 -> ", f(x(new Date(1990, 04, 27)))); +console.log(" 01/01/1991 -> ", f(x(new Date(1991, 00, 01)))); +console.log(" 03/15/1991 -> ", f(x(new Date(1991, 02, 15)))); +console.log(""); + +var x = d3.scale.pow().exponent(2).range(["red", "blue"]); +console.log("domain([0, 1]).range([\"red\", \"blue\"]):"); +console.log(" -0.5 -> ", x(-0.5)); +console.log(" 0.0 -> ", x(0.0)); +console.log(" 0.5 -> ", x(0.5)); +console.log(" 1.0 -> ", x(1.0)); +console.log(" 1.5 -> ", x(1.5)); +console.log(""); + +var x = d3.scale.pow().exponent(2).range(["red", "blue"]).interpolate(d3.interpolateHsl); +console.log("domain([0, 1]).range([\"red\", \"blue\"]).interpolate(hsl):"); +console.log(" -0.50 -> ", x(-0.50)); +console.log(" 0.00 -> ", x(0.00)); +console.log(" 0.50 -> ", x(0.50)); +console.log(" √0.50 -> ", x(Math.SQRT1_2)); +console.log(" 1.00 -> ", x(1.00)); +console.log(" 2.00 -> ", x(2.00)); +console.log(""); diff --git a/tests/test-scale-pow.out b/tests/test-scale-pow.out new file mode 100644 index 0000000000000..df2d1846bd6b3 --- /dev/null +++ b/tests/test-scale-pow.out @@ -0,0 +1,37 @@ +domain([0, 1]).range([0, 1]): + -0.5 -> 0.250 + 0.0 -> 0.000 + 0.5 -> 0.250 + 1.0 -> 1.000 + 1.5 -> 2.250 + +domain([1, 2]).range([0, 1]): + 0.5 -> −0.250 + 1.0 -> 0.000 + 1.5 -> 0.417 + 2.0 -> 1.000 + 2.5 -> 1.750 + +domain([01/01/1990, 01/01/1991]).range([0, 1]): + 10/20/1989 -> −0.194 + 01/01/1990 -> 0.000 + 03/15/1990 -> 0.196 + 05/27/1990 -> 0.394 + 01/01/1991 -> 1.000 + 03/15/1991 -> 1.206 + +domain([0, 1]).range(["red", "blue"]): + -0.5 -> rgb(191,0,64) + 0.0 -> rgb(255,0,0) + 0.5 -> rgb(191,0,64) + 1.0 -> rgb(0,0,255) + 1.5 -> rgb(-319,0,574) + +domain([0, 1]).range(["red", "blue"]).interpolate(hsl): + -0.50 -> #ffff00 + 0.00 -> #ff0000 + 0.50 -> #ffff00 + √0.50 -> #00ff00 + 1.00 -> #0000ff + 2.00 -> #0000ff + diff --git a/tests/test-scale-sqrt.js b/tests/test-scale-sqrt.js new file mode 100644 index 0000000000000..4a5c4623a3f95 --- /dev/null +++ b/tests/test-scale-sqrt.js @@ -0,0 +1,52 @@ +require("./../lib/env-js/envjs/node"); +require("./../lib/sizzle/sizzle"); +require("./../d3"); +require("./../d3.time"); + +var f = d3.format(" .3f"); + +var x = d3.scale.sqrt(); +console.log("domain([0, 1]).range([0, 1]):"); +console.log(" -0.50 -> ", f(x(-0.50))); +console.log(" 0.00 -> ", f(x(0.00))); +console.log(" 0.25 -> ", f(x(0.25))); +console.log(" 0.50 -> ", f(x(0.50))); +console.log(" 1.00 -> ", f(x(1.00))); +console.log(" 4.00 -> ", f(x(4.00))); +console.log(""); + +var x = d3.scale.sqrt().domain([0, -1]); +console.log("domain([0, -1]).range([0, 1]):"); +console.log(" 0.50 -> ", f(x(0.50))); +console.log(" 0.00 -> ", f(x(0.00))); +console.log(" -0.25 -> ", f(x(-0.25))); +console.log(" -0.50 -> ", f(x(-0.50))); +console.log(" -1.00 -> ", f(x(-1.00))); +console.log(" -4.00 -> ", f(x(-4.00))); +console.log(""); + +var x = d3.scale.sqrt().domain([1, 2]); +console.log("domain([1, 2]).range([0, 1]):"); +console.log(" 0.5 -> ", f(x(0.5))); +console.log(" 1.0 -> ", f(x(1.0))); +console.log(" 1.5 -> ", f(x(1.5))); +console.log(" 2.0 -> ", f(x(2.0))); +console.log(" 2.5 -> ", f(x(2.5))); +console.log(""); + +var x = d3.scale.sqrt().range(["red", "blue"]); +console.log("domain([0, 1]).range([\"red\", \"blue\"]):"); +console.log(" 0.00 -> ", x(0.00)); +console.log(" 0.25 -> ", x(0.25)); +console.log(" 1.00 -> ", x(1.00)); +console.log(" 4.00 -> ", x(4.00)); +console.log(""); + +var x = d3.scale.sqrt().domain([1, 0]).range(["red", "blue"]).interpolate(d3.interpolateHsl); +console.log("domain([1, 0]).range([\"red\", \"blue\"]).interpolate(hsl):"); +console.log(" 0.00 -> ", x(0.00)); +console.log(" 0.25 -> ", x(0.25)); +console.log(" 0.50 -> ", x(0.50)); +console.log(" 1.00 -> ", x(1.00)); +console.log(" 4.00 -> ", x(4.00)); +console.log(""); diff --git a/tests/test-scale-sqrt.out b/tests/test-scale-sqrt.out new file mode 100644 index 0000000000000..518782eb962e5 --- /dev/null +++ b/tests/test-scale-sqrt.out @@ -0,0 +1,36 @@ +domain([0, 1]).range([0, 1]): + -0.50 -> NaN + 0.00 -> 0.000 + 0.25 -> 0.500 + 0.50 -> 0.707 + 1.00 -> 1.000 + 4.00 -> 2.000 + +domain([0, -1]).range([0, 1]): + 0.50 -> NaN + 0.00 -> 0.000 + -0.25 -> 0.500 + -0.50 -> 0.707 + -1.00 -> 1.000 + -4.00 -> 2.000 + +domain([1, 2]).range([0, 1]): + 0.5 -> −0.707 + 1.0 -> 0.000 + 1.5 -> 0.543 + 2.0 -> 1.000 + 2.5 -> 1.403 + +domain([0, 1]).range(["red", "blue"]): + 0.00 -> rgb(255,0,0) + 0.25 -> rgb(128,0,128) + 1.00 -> rgb(0,0,255) + 4.00 -> rgb(-255,0,510) + +domain([1, 0]).range(["red", "blue"]).interpolate(hsl): + 0.00 -> #0000ff + 0.25 -> #00ff00 + 0.50 -> #d3ff00 + 1.00 -> #ff0000 + 4.00 -> #00ff00 +