Перемещаю акселерометром (это не важно, тоже самое для drag) объект. Нужно чтобы он не выходил за пределы окружности с заданным центром и радиусом. Сейчас вычисляю расстояние до центра.

Код AS3:
private const СX:Number = 200;
private const СY:Number = 200;
private const RADIUS:int = 50;
private var accelerometer:Accelerometer;
private var xSpeed:Number = 0;
private var ySpeed:Number = 0;
if (Accelerometer.isSupported) {
accelerometer = new Accelerometer();
accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
addEventListener(Event.ENTER_FRAME, startDragging);
}
private final function accUpdateHandler(event:AccelerometerEvent):void {
xSpeed -= event.accelerationX * 10;
ySpeed += event.accelerationY * 10;
}
protected function startDragging(event:Event):void {
event.stopPropagation();
var newX:Number = ball.x + xSpeed;
var newY:Number = ball.y + ySpeed;
if (DistanceTwoPoints(newX, СX, newY, СY) > RADIUS){
ball.x = newX; //Вот в этой части никак не соображу как правильно задать координаты шарика
ball.y = newY;
xSpeed = 0;
ySpeed = 0;
} else {
ball.x += xSpeed*20;
ball.y += ySpeed*20;
}
}
protected function DistanceTwoPoints(x1:Number, x2:Number, y1:Number, y2:Number): Number {
var dx:Number = x1-x2;
var dy:Number = y1-y2;
return Math.sqrt(dx * dx + dy * dy);
}