Skip to content

Instantly share code, notes, and snippets.

@karlin
Created April 16, 2014 17:01
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 karlin/10907432 to your computer and use it in GitHub Desktop.
Save karlin/10907432 to your computer and use it in GitHub Desktop.
movable point on circle
{"description":"movable point on circle","endpoint":"","display":"svg","public":true,"require":[],"fileconfigs":{"inlet.js":{"default":true,"vim":false,"emacs":false,"fontSize":12},"_.md":{"default":true,"vim":false,"emacs":false,"fontSize":12},"config.json":{"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,"ajax-caching":true}
var svg = d3.select("svg");
var cx = tributary.sw/2,
cy = tributary.sh/2,
r = 200;
var orbit = svg.append("circle")
.attr({
cx: cx,
cy: cy,
r: r,
fill: "none",
stroke: "#5e5e5e",
"stroke-width": 5
});
var point = svg.append("circle")
.attr({
cx: cx + r,
cy: cy,
r: r/20
});
var drag = d3.behavior.drag()
.on("drag", function() {
var mx = d3.mouse(this)[0] - cx;
var my = d3.mouse(this)[1] - cy;
var angle = Math.atan2(mx, my);
var nx = r * Math.sin(angle) + cx;
var ny = r * Math.cos(angle) + cy;
point.attr({
cx: nx,
cy: ny
})
});
point.call(drag);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment