HTML5 キャンバスにズームとトリミングを実装しました。Zoom は実際には Canvas の高さと幅を拡大しているため、ズームされているように見えます。トリミングについては、マウスを使用して長方形の領域を選択してからトリミングするアルゴリズムを作成しました。ここで、画像がズームインまたはズームアウトされているときにトリミングする場合、トリミング領域を選択するときに、ズームによって発生する上と左の位置のずれを考慮する必要があります。これは正常に機能します。
だから私は今、回転を実装しています (css3 変換: 回転を使用)。問題は、画像を特定の角度で回転させると、選択範囲が実際のマウスの位置から少し離れて表示されることです。これは以前はズーム効果でも発生していましたが、x と y の位置から追加された左と上の距離を差し引いていたので、画像がズームされていても選択範囲を描画できました。回転した画像に対してどのようにすればよいかわかりません!
次の画像は、私の問題をもう少し明確に理解するのに役立つかもしれません:
キャンバスを反映して、キャンバスの周りに div があります。キャンバスと同じ幅、高さ、上、左のプロパティを持ちます。キャンバスの子として絶対的な選択を追加できないため、これは意図的に行われます。このカバーを FireBug で選択すると、幅と高さが増し、上と左の位置が変更された長方形として表示されます。
すでにズームで行っているように変位を計算する必要があることは理解していますが、その方法がわかりません! 私は、ピタゴラス アルゴリズムや回転行列などを試すのに多くの時間を費やしました。
私を助けてください!