3

基本的に、SVG変換で使用されるMatrix値を出力するPHP関数または方程式を探しています。

私は高低を探しましたが、残念ながら何も見つかりませんでした。

私はrotate()とscale function()をよく知っていますが、これらは私が必要としているものではありません。

x / yスケールデータとともに回転角を度単位で取得し、一連の値をSVG変換形式の行列(a、b、c、d、e、f)で出力できる必要があります。

理想的にはPHPでこれを実行したいのですが、前述のように、標準の数式も役立ちます。

うまくいけば、誰かが私を正しい方向に向けることができます。

4

2 に答える 2

3

単一の変換の行列を乗算することにより、値を計算できます。SVG仕様を調べて、それらの定義を見つけてください。

rot(a)       := matrix(cos(a), sin(a), -sin(a), cos(a), 0, 0)
scale(sx,sy) := matrix(sx, 0, 0, sy, 0, 0)

変換を適用する順序(スケーリング前の回転と回転前のスケーリング)に応じて、異なる行列が得られます。

rot(a)*scale(sx,sy) = matrix(sx*cos(a), sx*sin(a), -sy*sin(a), sy*cos(a), 0, 0)
scale(sx,sy)*rot(a) = matrix(sx*cos(a), sy*sin(a), -sx*sin(a), sy*cos(a), 0, 0)
于 2012-05-01T15:18:30.130 に答える
0
function selectElement(evt) {
        selectedElement = evt.target;
        currentX = evt.clientX;
        currentY = evt.clientY;
        currentMatrix = selectedElement.getAttributeNS(null, "transform").slice(7, -1).split(' ');
        alert(currentMatrix );
    }`<svg><rect class="draggable" x="30" y="30" width="80" height="80" fill="blue" transform="matrix(1 0 0 1 0 0)"
        onmousedown="selectElement(evt)"</svg> />`
于 2013-01-08T06:38:53.630 に答える