Skip to content

Instantly share code, notes, and snippets.

@infinex
Created February 11, 2014 04:38
Show Gist options
  • Save infinex/8929330 to your computer and use it in GitHub Desktop.
Save infinex/8929330 to your computer and use it in GitHub Desktop.
Tributary inlet
{"description":"Tributary inlet","endpoint":"","display":"svg","public":true,"require":[{"name":"d3.js","url":"http://d3js.org/d3.v2.min.js?2.9.5"}],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"d3":{"default":true,"vim":false,"emacs":false,"fontSize":12}},"fullscreen":false,"play":false,"loop":false,"restart":false,"autoinit":true,"pause":true,"loop_type":"pingpong","bv":false,"nclones":15,"clone_opacity":0.4,"duration":3000,"ease":"linear","dt":0.01}
var margin = {top: 20, right: 20, bottom: 20, left: 20},
padding = {top: 60, right: 60, bottom: 60, left: 60},
outerWidth = 960,
outerHeight = 500,
innerWidth = outerWidth - margin.left - margin.right,
innerHeight = outerHeight - margin.top - margin.bottom,
width = innerWidth - padding.left - padding.right,
height = innerHeight - padding.top - padding.bottom;
var x = d3.scale.identity()
.domain([0, width]);
var y = d3.scale.identity()
.domain([0, height]);
var xAxis = d3.svg.axis()
.scale(x)
.orient("bottom");
var yAxis = d3.svg.axis()
.scale(y)
.orient("right");
var svg = d3.select("body").append("svg")
.attr("width", outerWidth)
.attr("height", outerHeight)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var defs = svg.append("defs");
defs.append("marker")
.attr("id", "triangle-start")
.attr("viewBox", "0 0 10 10")
.attr("refX", 10)
.attr("refY", 5)
.attr("markerWidth", -6)
.attr("markerHeight", 6)
.attr("orient", "auto")
.append("path")
.attr("d", "M 0 0 L 10 5 L 0 10 z");
defs.append("marker")
.attr("id", "triangle-end")
.attr("viewBox", "0 0 10 10")
.attr("refX", 10)
.attr("refY", 5)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr("orient", "auto")
.append("path")
.attr("d", "M 0 0 L 10 5 L 0 10 z");
svg.append("rect")
.attr("class", "outer")
.attr("width", innerWidth)
.attr("height", innerHeight);
var g = svg.append("g")
.attr("transform", "translate(" + padding.left + "," + padding.top + ")");
g.append("rect")
.attr("class", "inner")
.attr("width", width)
.attr("height", height);
g.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
g.append("g")
.attr("class", "y axis")
.attr("transform", "translate(" + width + ",0)")
.call(yAxis);
svg.append("line")
.attr("class", "arrow")
.attr("x2", padding.left)
.attr("y2", padding.top)
.attr("marker-end", "url(#triangle-end)");
svg.append("line")
.attr("class", "arrow")
.attr("x1", innerWidth / 2)
.attr("x2", innerWidth / 2)
.attr("y2", padding.top)
.attr("marker-end", "url(#triangle-end)");
svg.append("line")
.attr("class", "arrow")
.attr("x1", innerWidth / 2)
.attr("x2", innerWidth / 2)
.attr("y1", innerHeight - padding.bottom)
.attr("y2", innerHeight)
.attr("marker-start", "url(#triangle-start)");
svg.append("line")
.attr("class", "arrow")
.attr("x2", padding.left)
.attr("y1", innerHeight / 2)
.attr("y2", innerHeight / 2)
.attr("marker-end", "url(#triangle-end)");
svg.append("line")
.attr("class", "arrow")
.attr("x1", innerWidth)
.attr("x2", innerWidth - padding.right)
.attr("y1", innerHeight / 2)
.attr("y2", innerHeight / 2)
.attr("marker-end", "url(#triangle-end)");
svg.append("text")
.text("origin")
.attr("y", -8);
svg.append("circle")
.attr("class", "origin")
.attr("r", 4.5);
g.append("text")
.text("translate(margin.left, margin.top)")
.attr("y", -8);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment