Skip to content

Instantly share code, notes, and snippets.

@roundrobin
Created January 6, 2013 03:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roundrobin/4464996 to your computer and use it in GitHub Desktop.
Save roundrobin/4464996 to your computer and use it in GitHub Desktop.
Path Generator
{"description":"Path Generator","endpoint":"","display":"svg","public":true,"require":[],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"config.json":{"default":true,"vim":false,"emacs":false,"fontSize":12},"_.md":{"default":true,"vim":false,"emacs":false,"fontSize":12}},"tab":"edit","display_percent":0.40312499999999996,"play":false,"loop":false,"restart":false,"autoinit":true,"pause":true,"loop_type":"period","bv":false,"nclones":15,"clone_opacity":0.4,"duration":3000,"ease":"linear","dt":0.01,"hidepanel":false}
var svg = d3.select("svg");
var x = 150;
var y = 80;
svg.append("rect")
.attr("width", 100)
.attr("height", 100)
.attr("x", x)
.attr("y", y)
.style("fill", "#233344")
x += 5;
y += 5;
svg.append("rect")
.attr("width", 100)
.attr("height", 100)
.attr("x", x)
.attr("y", y)
.style("fill", "#0A4380")
x += 5;
y += 5;
svg.append("rect")
.attr("width", 100)
.attr("height", 100)
.attr("x", x)
.attr("y", y)
.style("fill", "#3B6592")
x += 5;
y += 5;
svg.append("rect")
.attr("width", 100)
.attr("height", 100)
.attr("x", x)
.attr("y", y)
.style("fill", "#1E3146")
function Path(canvas){
this.dataPoints = [];
this.path = canvas.append('svg:path')
.attr("stroke","black")
.attr("stroke-width",3)
.attr("fill","none")
}
Path.prototype.el = function(wayPoint){
return this.path;
}
Path.prototype.add = function(wayPoint){
this.dataPoints.push(wayPoint);
this.render();
}
Path.prototype.render = function(){
this.path.attr("d",this.pathWay());
}
Path.prototype.pathWay = function(){
console.log('Hello')
var way = '';
for(var i=0;i < this.dataPoints.length;i++){
var elem = this.dataPoints[i];
console.log('check',elem);
way += elem.join(' ')
}
return way;
}
var path = new Path(svg)
path.el().attr("transform","translate("+[50,46]+")");
path.add(['m',1,0]);
path.add(['l',64,133]);
path.add(['q',-154,169,128,220]);
path.add(['q',21,195,145,154]);
path.add(['c',21,55,79,-50,20,-225]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment