-1

私はsvg-edit自分のプロジェクトで を使用してsvgedit.compiled.jsおり、必要に応じて を変更しています。ここでいくつかの問題が発生してtransformtransform matrixますtransform

transform要素がフォローされている場合に電流を取得する私のコード

var my_selected= selectedElements[0].id;
//alert(my_selected);
var child_sel=$('#'+my_selected).children("g").attr('id');

var child_each=$('#'+my_selected);
    //console.log(child_each);
    child_each.each(function () {
        var child_trans = $(this).attr('transform');
        /* dx_x = x - start_x;
        dy_x = y - start_y; */
        $(this).children('g').each(function() {
        if(this.id!='drag_drop') {
        var test_x = $(this).attr('transform');
        console.log(test_x);
        var ss=this.getCTM();
        console.log(ss);
        }
        });
    });

しかし、次の行と同じconsole.log(test_x);値を取得していますが、使用しmatrix(0, 0.722035, -0.51, 0, 1561, 776.524) て同じ要素を取得していますが、値を下回っている代わりに前の値を取得していませんtransformthis.getCTM()

rotation :  90
scaleX :    0.7220349907875061
scaleY :    0.5099999904632568
skewX :     90
skewY : 90
translateX :    4060
translateY :    2376.5234375

ここで何が間違っていますか?これに関する手がかりはありますか?

4

1 に答える 1

0

私はここで記憶を失っていますが、値がごくわずかにずれていたのは境界線が原因でした. getCTM はボーダー幅を考慮していませんが、変換マトリックスは考慮している、またはその逆のためだと思います。存在する場合は、getScreenCTM または element.clientX を試してください。

さらにヘルプが必要な場合は、問題を示すフィドルを作成してください。

于 2014-11-14T21:21:34.467 に答える