У меня есть контейнер с замаскированным растровым изображением. Масштаб и вращение этого контейнера изменяются во время выполнения, и мне нужно нарисовать замаскированное растровое изображение, но я не могу определить соответствующие матричные вычисления для этого.
Мой код работает правильно, чтобы отразить положение, масштаб, смещение для центрирования без вращения. При повороте угол правильный, но расположение неправильное - я считаю, потому что размеры меняются при повороте прямоугольника.
Может кто-нибудь помочь мне понять, как компенсировать это при позиционировании - вот код:
// Adjust the transformation matrix to account for the position of the container
var tMatrix:Matrix = _imgContainer.transform.matrix;
//Offset for container
tMatrix.translate(this.x,this.y);
//Offset for bounds centering
tMatrix.translate(-_imgContainer.width/2,-_imgContainer.height/2);
// Compensate for rotation
// ????
var result_bitmap:BitmapData = new BitmapData(_maskedImg.width,_maskedImg.height,true,0x00FFFFFF);
result_bitmap.lock();
result_bitmap.draw(_maskedImg,tMatrix,null,null,null,true);
result_bitmap.unlock();
Заранее благодарим за любую помощь, которую вы можете оказать -
B
EDIT:
Извините, если я не объясняю это правильно, позвольте мне попробовать еще раз с изображением для поддержки. У меня есть замаскированное растровое изображение в контейнере, который я использую в качестве источника для рисования нового растрового изображения. этот контейнер может быть масштабирован / повернут пользователем во время выполнения до захвата. Для этого я передаю метод draw матрицу преобразования, основанную на матрице контейнера, и корректирую значения tx и ty для учета ненулевого начала (из-за центрирования). До этого момента он работал нормально и отражал то, что я ожидал.
Однако - после того, как этот контейнер повернут, ПОЛОЖЕНИЕ захвата теперь снова отключено - вероятно, из-за изменения размеров, поэтому смещения tx / ty теперь некорректны для новых размеров контейнера. Мне просто нужно компенсировать это, но я не могу понять, как.
Кто-нибудь имеет опыт работы с матрицей преобразования, которая может помочь ?? Еще раз спасибо за усилия!