HTML5 では、キャンバス要素に変換機能を実装したいので、ユーザーはキャンバス要素をtranslate
(移動)、scale
(ズームイン/アウト)できrotate
ます。このような各変換は、異なる変換起点で実行できます。
最初の変換は簡単です:
function transform(el, value, origin) {
el.style.Transform = value;
el.style.MozTransform = value;
el.style.msTransform = value;
el.style.OTransform = value;
el.style.webkitTransform = value;
el.style.TransformOrigin = origin;
el.style.MozTransformOrigin = origin;
el.style.msTransformOrigin = origin;
el.style.OTransformOrigin = origin;
el.style.webkitTransformOrigin = origin;
}
transform(myCanvas, 'translate('+ dx +'px, ' + dy + 'px) ' +
'scale(' + zoom + ', ' + zoom + ') ' +
'rotate(' + angle + 'deg)',
cx + 'px ' + cy + 'px');
ユーザーは一度にすべてではなく、要素を移動、ズーム、または回転するため、変換の一部のパラメーターはデフォルトのままになります(dx = 0、dy = 0、ズーム = 1、角度 = 0)。
このような変換の後、ユーザーが別の変換 (および別の変換など) を行いたい場合、(dx1, dy1, zoom1, angle1, cx1, cy1)と(dx2, dy2, zoom2, angle2 , cx2) をどのように組み合わせることができますか? 、cy2)後で新しい変換パラメーターと組み合わせることができる最終値を取得するには? transform
異なる可能性があるため、パラメーターに別の変換を追加することはできませんtranform-origin
。変換を異なる変換原点と組み合わせる方法はありますか?