Skip to content

Instantly share code, notes, and snippets.

@knowuh
Created August 25, 2010 20:31
Show Gist options
  • Save knowuh/550233 to your computer and use it in GitHub Desktop.
Save knowuh/550233 to your computer and use it in GitHub Desktop.
/**
* Arrow 'plugin' for Raphael
**/
MySystem.arrow_path = function(startx,starty,endx,endy,len,angle) {
var theta = Math.atan2((endy-starty),(endx-startx));
var baseAngleA = theta + angle * Math.PI/180;
var baseAngleB = theta - angle * Math.PI/180;
var tipX = endx + len * Math.cos(theta);
var tipY = endy + len * Math.sin(theta);
var baseAX = endx - len * Math.cos(baseAngleA);
var baseAY = endy - len * Math.sin(baseAngleA);
var baseBX = endx - len * Math.cos(baseAngleB);
var baseBY = endy - len * Math.sin(baseAngleB);
var pathData = " M " + tipX + " " + tipY +
" L " + baseAX + " " + baseAY +
" L " + baseBX + " " + baseBY +
" Z ";
return pathData;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment