Actionscript растровое рисование с transform.matrix и rectangle.bounds - PullRequest
1 голос
/ 11 октября 2011

Я пытаюсь получить частичное растровое изображение от объекта, но получаю разные значения из:

object.transform.matrix.tx and object.transform.matrix.ty

v / s

object.getBounds(object.parent).x and object.getBounds(object.parent).y

Я не уверен, какие из них использовать при рисовании растровых данных:

bitmapdata.draw(object, <matrix>);

Чтобы добавить a, b, c, d, составляющие матрицы равны 1,0,0,1 (или единица). Так может кто-нибудь объяснить, в каких сценариях matrix.tx и matrix.ty отличаются от координат границ?

1 Ответ

1 голос
/ 11 октября 2011

object.transform.matrix.tx равно object.x, если никакое другое преобразование не применяется (то же самое для y). Если вы рисуете что-то с отрицательными координатами, свойства x и y object не изменяются.

object.x = 300;
object.y = 300;
object.graphics.beginFill(0);
object.graphics.drawCircle(0,0,100); 

Ограничивающий прямоугольник круга, нарисованного в этом примере, начнется с -100,-100, но центр объекта все еще находится в 300,300 в координатном пространстве родителя. Теперь getBounds относится к области объекта. Координаты области преобразуются в пространство родителя и имеют вид 200,200.


Когда отличаются перевод матрицы и границы в координатном пространстве родителя?
Почти всегда они одинаковы, если граница объекта (в своем собственном координатном пространстве) начинается с 0,0.


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

...