Skip to content

Instantly share code, notes, and snippets.

@grafuls
Created September 24, 2013 15:06
Show Gist options
  • Save grafuls/6686158 to your computer and use it in GitHub Desktop.
Save grafuls/6686158 to your computer and use it in GitHub Desktop.
JavaScript InfoVis Toolkit › How to use a dotted / dashed lines?
'dashed': function(adj, canvas) {
var data = adj.data, econfig = this.edge;
var orn = this.getOrientation(adj);
var nodeFrom = adj.nodeFrom, nodeTo = adj.nodeTo;
var begin = this.viz.geom.getEdge(nodeFrom._depth <
nodeTo._depth?
nodeFrom:nodeTo, 'begin', orn);
var end = this.viz.geom.getEdge(nodeFrom._depth <
nodeTo._depth?
nodeTo:nodeFrom, 'end', orn);
var cond = econfig.overridable && data;
var dim = cond && data.$dim || econfig.dim;
var dim = 5;
switch(orn) {
case "left":
canvas.path('stroke', function(ctx) {
for (i=begin.x;i<=end.x;i=i+(dim*2)){
ctx.moveTo(i, begin.y);
ctx.lineTo(i + dim, begin.y);
}
});
break;
case "right":
canvas.path('stroke', function(ctx) {
for (i=begin.x;i>=end.x;i=i-(dim*2)){
ctx.moveTo(i, begin.y);
ctx.lineTo(i - dim, begin.y);
}
});
break;
case "top":
canvas.path('stroke', function(ctx) {
for (i=begin.y;i<=end.y;i=i+(dim*2)){
ctx.moveTo(begin.x, i);
ctx.lineTo(begin.x, i + dim);
}
});
break;
case "bottom":
canvas.path('stroke', function(ctx) {
for (i=begin.y;i>=end.y;i=i-(dim*2)){
ctx.moveTo(begin.x, i);
ctx.lineTo(begin.x, i - dim);
}
});
break;
}
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment