![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 395
|
Здравствуйте, есть такой вопрос: как можно наложить Movie Clip (форма - прямоугольный треугольник с рисунком, 100 х 100 рх) на 3 точки при помощи матриц? Сам разобраться не смог, в поиске ответ не нашел.
Вообще ответ есть на http://flash-ripper.com/archives/000620.php , но исходник пропал с сервера . |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Может кому будет полезно. Сам столкнулся недавно с задачей деформирования мувика по 3 точкам, общие формулы такие:
если заданы 3 точки мувиКлипа (скажем 3 угловых точки) и надо найти преобразование переводящее 3 точки мувиКлипа (p1,p2,p3) в другие произвольные 3 точки (p1',p2',p3') то матрица преобразования будет вот такой ![]() остается только прикрутить полученную матрицу к мувику Последний раз редактировалось undefined; 03.09.2007 в 17:27. |
|
|||||
|
не надо пугать людей такими формулами..
![]() import flash.geom.*;
//растягиваем TL,TR,BL углы мувика
function transf(mc:MovieClip,tl:Point,tr:Point,bl:Point){
//размеры неискаженного мувика
mc.transform.matrix=new Matrix();
var w=mc._width;
var h=mc._height;
//параметры трансформации
var sx=(tr.x - tl.x)/w;
var skx=(bl.x - tl.x)/h;
var sy=(bl.y - tl.y)/h;
var sky=(tr.y - tl.y)/w;
var tx=tl.x;
var ty=tl.y;
mc.transform.matrix=new Matrix(sx,sky,skx,sy,tx,ty);
}
//пример:
transf(mc,new Point(0,10),new Point(300,20),new Point(20,200));
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Цитата:
Насчет страха перед формулами - ну хз,вроде не такие они и страшные, их же запоминать не надо. |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|