Tutorials, extensions, and source files for ActionScript, Flash, and other Adobe products.

 

senocular.com ActionScript Library

circleSegmentTo.as

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MovieClip.prototype.circleSegmentTo = function(x, y, a1, a2, r, dir) {
	dir = (dir == "CCW") ? -1 : 1;
	var diff = Math.abs(a2-a1);
	var divs = Math.floor(diff/(Math.PI/4))+1;
	var span = dir * diff/(2*divs);
	var rc = r/Math.cos(span);
	this.moveTo(x+Math.cos(a1)*r, y+Math.sin(a1)*r);
	for (var i=0; i<divs; ++i) {
		a2 = a1+span; a1 = a2+span;
		this.curveTo(
			x+Math.cos(a2)*rc,
			y+Math.sin(a2)*rc,
			x+Math.cos(a1)*r,
			y+Math.sin(a1)*r
		);
	};
	return this;
};