Как раз короткую статью готовлю по трансформациям, но придется поспойлерить.

Код AS3:
private function scaleAround(m:Matrix, p:Point, sx:Number, sy:Number):Matrix
{
var d:Point = m.deltaTransformPoint(p);
var i:Point = new Point(m.a, m.b);
var j:Point = new Point(m.c, m.d);
i.normalize(sx);
j.normalize(sy);
m.a = i.x;
m.b = i.y;
m.c = j.x;
m.d = j.y;
d = d.subtract(m.deltaTransformPoint(p));
m.translate(d.x, d.y);
return m;
}
m - матрица трансформации объекта, p - точка вокруг которой происходит трансформация (в локальных координатах объекта), sx, sy - масштаб по осям.