![]() |
|
||||||||||
|
|||||
|
Привет.
Есть у меня Bitmap1 внитри Sprite MCBMP, Bitmap1 поворачиваю на любой градус и центрую. есть поверх Sprite еще и один прямоугольник rect1 130x520 надо Составить Matrix так чтобы вырезать BitmapData от Bitmap по размерам Sprite(2) учитывая повороты белеберда получается(
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Да! Точно... Почему так сделали?)спасибо! С поворотом разобрались...
еще вопрос: Есть картинка 800x600 Вырезаем ее с помощью матрицы tx=100 ty=100 и все работает! А вот если картинку повернуть на какой нибудь градус и к матрице добавить rotate угол в радианах - то tx и ty уже надо другие брать? Криво вырезает
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Значит надо сдвинуть потом повернуть? Спасибо большое. Завтра посмотрим)
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Я делал при помощи pixelBounds. Только там веселуха, если обьект не добавлен в дисплей лист, то они ровно в 5 раз больше %)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Ничего не вышло =(((( весь день возился(((
вообще надо просто умножить на sin или cos чего то там угла поворота... Но как именно? или как применить pixelBounds??
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH |
|
|||||
|
Цитата:
вот народ и осторожничает, потому как закаленных людей, что не боятся переломов мозга мало, нет их почти |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Похоже, занимались брутфорс программированием >_<
Поворачиваем спрайт на минус поворот битмапы, с помощью pixelBounds узнаем её размеры и положение, создаем её, может, рендерим в неё, потом поворачиваем обратно спрайт и битмапу (она до того какбэ не повёрнута). Это если верно понял, что надо. Сделайте проектик, где можно понять, что надо и чтоб можно было сделать там же (fla я не открою и не только я). Тогда если он нормальный, то пара строк написать всего надо будет (меньше блин, чем этот пост - точно).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Так)) ну попробую сюда вписать:
//есть у нас лоадер который загружен через fileReferance //и вытаскиваем из него картинку и вставляем на экран var bmp:Bitmap = loader.content as Bitmap; // если мы просто добавим на экран bmp то при rotate - он будет поворачиваться от начала его координат // а мне надо чтобы вращался вокруг своейго цента и поэтому я решил создать Sprite и вставить в него bmp var sprite: Sprite = new Sprite(); bmp.x=-bmp.width/2; bmp.y=-bmp.height/2; sprite.addChild(bmp); this.addChild(sprite); //на sprite вещаем listeners на перемещение зажимая мышкой чтобы перемещать туда сюда... // это сейчас не суть и поэтому упустим этот бытовой стандартный код // теперь нарисуем поверх всего прямоугольник , который означает служит маской вырезания изображения var rect:Sprite=new Sprite(); rect.graphics.lineStyle(1,0xff0000); rect.graphics.drawRect(0,0,130,520); rect.x=srite.width/2-rect.width/2; rect.y=sprite.height/2-rect.height/2;// расположили в центре картинки this.addChild(rect); /// теперь эксперементы... ///----------------------------------------------- ///----------------------------------------------- ///----------------------------------------------- ///----------------------------------------------- var matrix:Matrix=new Matrix(); matrix.tx=-sprite.width/2 +rect.x- sprite.x; matrix.ty=-sprite.height/2+rect.y-sprite.y; //создаем bitmapData и вырезаем в него кусок из картинки bmp маской rect у которого размеры 130x520 var bdata:BitmapData = new BitmapData(130, 520, true, 0xffffff); bdata.draw(bmp,matrix, null, null, new Rectangle(0, 0, 130, 520), true); // вырезается все нормально и правильно //---------------------------- ///----------------------------------------------- ///----------------------------------------------- ///----------------------------------------------- ///----------------------------------------------- ///----------------------------------------------- // а теперь тоже самое но с повернутой картинкой !!!!!!!!!!!!!!!!!!!!!!!!!! sprite.rotation=90; var matrix:Matrix=new Matrix(); matrix.tx=-sprite.width/2 +rect.x- sprite.x; matrix.ty=-sprite.height/2+rect.y-sprite.y; matrix.rotate(sprite.rotation*180/Math.PI) // и в матрице делаем поворот , только перевели в радианы //создаем bitmapData и вырезаем в него кусок из картинки bmp маской rect у которого размеры 130x520 var bdata:BitmapData = new BitmapData(130, 520, true, 0xffffff); bdata.draw(bmp,matrix, null, null, new Rectangle(0, 0, 130, 520), true); // вырезается криво!!!!! Угол поворота задан верно, но tx и ty сбиваются :-( P.s. Писал с ipad, могу быть орфаграфические ошибки
__________________
------------------------------- FLASH FLASH FLASH FLASH FLASH Последний раз редактировалось Azo; 06.07.2011 в 03:06. |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:07. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|