マスクされたビットマップを含むコンテナがあります。このコンテナーのスケールと回転は実行時に変更され、マスクされたビットマップを描画する必要がありますが、適切なマトリックス計算を行うことができません。
私のコードは、回転せずにセンタリングするための位置、スケール、オフセットを反映するように正しく機能します。回転すると、角度は正しいのですが、配置が正しくありません。長方形を回転すると寸法が変わるためだと思います。
誰かがポジショニングでこれを補う方法を理解するのを手伝ってもらえますか-ここにいくつかのコードがあります:
// 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
編集: これを正しく説明していない場合は申し訳ありません。サポートする画像でもう一度試してください。新しいビットマップを描画するためのソースとして使用しているコンテナーに、マスクされたビットマップがあります。このコンテナは、キャプチャする前にユーザーが実行時にスケーリング/回転できます。これを達成するために、描画メソッドにコンテナー マトリックスに基づく変換マトリックスを渡し、tx 値と ty 値を調整してゼロ以外の原点 (センタリングによる) を考慮します。この時点までは問題なく動作し、私が期待するものをキャプチャします.
ただし、このコンテナが回転すると、キャプチャの POSITION が再びオフになります。これは、寸法の変更が原因であると考えられます。したがって、コンテナの新しい寸法に対して tx/ty オフセットが正しくなくなります。これを補う必要があるだけですが、方法がわかりません。
誰でも役立つ変換マトリックスの経験がありますか?? ありがとうございます!