Skip to content

Instantly share code, notes, and snippets.

@bmander
Created April 13, 2012 00:39
Show Gist options
  • Save bmander/2372365 to your computer and use it in GitHub Desktop.
Save bmander/2372365 to your computer and use it in GitHub Desktop.
circle
//demo of the interactive pointer
function translate(tx, ty, func){
return function(x,y){
var xprime = x-tx;
var yprime = y-ty;
return func(xprime,yprime);
}
}
function dist(x,y){
return Math.pow(x*x+y*y,0.5);
}
function makecircle(r){
return function(x,y){
return Math.pow(x,2) + Math.pow(y,2) < Math.pow(r,2);
}
}
function maketranscircle( p1,p2 ){
var r = dist(p1[0]-p2[0],p1[1]-p2[1])*1.3;
return translate(p1[0],p1[1],makecircle(r) );
}
function xor(func1, func2){
return function(x,y){
var f1 = func1(x,y);
var f2 = func2(x,y);
return (f1 || f2) && !(f1 && f2)
}
}
function or(func1,func2){
return function(x,y){
var f1 = func1(x,y);
var f2 = func2(x,y);
return (f1 || f2);
}
}
var meetup=[206,175];
emit(
xor(
xor(
maketranscircle([122,201],meetup),
maketranscircle([221,82],meetup)
),
maketranscircle([299,202],meetup)
)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment