![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Mar 2007
Сообщений: 319
|
Я понял в чем проблема, у тебя масштабирование изменяется до указанного, а у меня масштабируется масштабированное.
чтоб работало так же нужно sx и sy указать с учетом текущего масштаба * 1 / scale или private function scaleAround2 (m:Matrix, p:Point, sx:Number, sy:Number):Matrix { sx *= (1 / Math.sqrt(m.a * m.a + m.b * m.b)); sy *= (1 / Math.sqrt(m.d * m.d + m.c * m.c)); 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; } |
|
|||||
|
В итоге у тебя получилось тоже самое. Нормализация векторов {a, b} и {c, d} и смещение на разницу между положением точки p до трансформации и после.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
__________________
משיח לא בא משיח גם לא מטלפן |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:45. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|