Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   draw в отрицательных координатах (http://www.flasher.ru/forum/showthread.php?t=137343)

illusion21 11.03.2010 02:15

draw в отрицательных координатах
 
допустим есть мувиклип в котором часть содержимого находится в отрицательных координатах... метод draw для копирования графического содержимого напрочь игнорирует все что находится в этих самых отрицательных координатах...

Так например если у меня в мувиклипе находится круг с центром в точке 0,0
то draw мне выдаст только четверть круга, которая находилась в положительной части...

Как мне скопировать весь круг?

Добавлено через 7 минут
о... только что нашел что оказывается если matrix.translation указать методу draw то он нормально считывает с отрицательных координат... только вот теперь вопрос - как найти самую левую-верхнюю отрицательную точку внутри мувиклипа, чтобы знать на какую величину матриксу указывать tranclation

iNils 11.03.2010 02:24

Допустим у вас есть клип mc с кругом размером 100 на 100, расположенный в центре клипа.
Код AS3:

var bmp:BitmapData = new BitmapData (100,100, true, 0x00000000);
var b:Bitmap = new Bitmap (bmp);
addChild(b);
var m:Matrix = new Matrix ();
m.createBox(1,1,0,50,50);
bmp.draw(mc, m);


illusion21 11.03.2010 03:03

это если знать на какую величину сдвигать... а если эта величина неизвестна?
Вот к примеру в мувиклипе разное количество объектов и часть из них расположена в отрицательных коодинатах... нужно снять копию с этого мувиклипа так чтобы те что в отрицательных тоже туда попали...

логично что нужно узнать величину на которую матриксом делать сдвиг для draw... а вот как эту величину узнать?

iNils 11.03.2010 04:43

Код AS3:

var bmp:BitmapData = new BitmapData (100,100);
var b:Bitmap = new Bitmap (bmp);
addChild(b);
var m:Matrix = new Matrix ();
trace(mc.getBounds(this));
var rect:Rectangle = mc.getBounds(mc);
m.createBox(1,1,0,-rect.x,-rect.y);
bmp.draw(mc, m);


illusion21 11.03.2010 14:01

спасибо :)

random13 13.04.2010 11:40

столкнулся с такой же проблемой...
только мне нужно вырезать именно рабочую область, то что в данный момент отображается, но обрезается не верно

Код AS3:

var bitmaData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false, 0xFB0000);
var matrix:Matrix = new Matrix();
var rect:Rectangle = this.getBounds(this._map);       
matrix.createBox(1,1,0,-rect.x,-rect.y);
var point:Point = this._map.globalToLocal(new Point(0,0));
 
var cropRect:Rectangle = new Rectangle(point.x, point.y, stage.stageWidth, stage.stageHeight)
 
bitmaData.draw(this._map, matrix, null, null, cropRect);

картинку вроде как бирет верно, но мне из нее нужно вырезать кусок именно тот который в данный момент отображется

Tahion 13.04.2010 13:28

matrix, tx, ty координаты икс и игрик можешь использовать их

random13 13.04.2010 13:31

в плане использовать?


Часовой пояс GMT +4, время: 09:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.