Показать сообщение отдельно
Старый 11.10.2010, 17:56
kutuzov вне форума Посмотреть профиль Отправить личное сообщение для kutuzov Найти все сообщения от kutuzov
  № 6  
Ответить с цитированием
kutuzov
 
Аватар для kutuzov

Регистрация: Jul 2005
Сообщений: 135
дописал код от AS3Coder, прооптимизировал чуть-чуть и добавил возможность задавать внутренний радиус
Код AS3:
package utils {
 
	import flash.display.Graphics;
	import flash.geom.Point;
 
	public function drawCircleSector(g:Graphics, centerX:Number, centerY:Number, radius:Number, angle:Number, innerRadius:Number = 0):void {
		var p:Point, i:uint;
		const rad:Number = Math.PI / 180;
		const pi2:Number = Math.PI / 2;
 
		g.moveTo(centerX, 0);
		for (i=0; i<=angle; ++i) {
			p = Point.polar(radius, i * rad - pi2);
			g.lineTo(centerX + p.x, centerY + p.y);
		}
 
		if (innerRadius != 0 && innerRadius < radius) {
			for (i=angle; i>=0; --i) {
				p = Point.polar(innerRadius, i * rad - pi2);
				g.lineTo(centerX + p.x, centerY + p.y);
			}
		}
	}
 
}
использовать так:
Код AS3:
import utils.drawCircleSector;
const sh:Shape = new Shape();
sh.graphics.beginFill(0xFFFFFF);
drawCircleSector(sh.graphics, 10, 10, 10, 235, 8);
sh.graphics.endFill();
__________________
хоумпага


Последний раз редактировалось kutuzov; 11.10.2010 в 19:27.