Показать сообщение отдельно
Старый 14.01.2015, 01:55
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 9  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
alatar неправильно
нужна не нормализация, а умножение. так как нужна интерполяция положения точек, а не приведение их к длине
простой вариант:
Код AS3:
		private function scaleAround (m:Matrix, p:Point, sx:Number, sy:Number):Matrix
		{
			var a:Number = m.a * sx;
			var b:Number = m.b * sx;
			var c:Number = m.c * sy;
			var d:Number = m.d * sy;
			m.tx += (m.a - a) * p.x + (m.c - c) * p.y;
			m.ty += (m.b - b) * p.x + (m.d - d) * p.y;
			m.a = a;
			m.b = b;
			m.c = c;
			m.d = d;
			return m;
		}