Snapsvg - 相对于当前位置旋转

Snapsvg - rotate relative to its current position

我无法让元素在被拖动后相对于其位置旋转。

我有一个从 0 到 360 的滑块,当更改值时调用以下内容:

var origTransform = activeElement.transform().local
if( origTransform ) {
    var rSplit = origTransform.split('r');
    if( rSplit.length !== 0 ) {
        origTransform = rSplit[0] + "r" + degrease + ",20,20"
    }
} else {
    origTransform = "r" + degrease + ",20,20"
}
activeElement.attr({
    transform: origTransform
});

有人知道我哪里出错了吗?

非常感谢

感谢@ian 让我到达那里:

http://jsfiddle.net/4eL3gstp/17/

(function(){
    var canvas = Snap( '#svg' );
    var text = null;
    var setRotation = function(degrease){

        var data = text.data('origionalData');
        var matrix = new Snap.Matrix(1,0,0,1,data.dx,data.dy);
        matrix.rotate(degrease,0,0);

        text.attr({
            transform: matrix,
        });

    };
    canvas.attr({ width : 200, height : 200 });
    text = canvas.text(100,100, 'texttext' ).attr({
        'text-anchor' : 'middle',
        'font-size' : 50,
        transform: 't50,50'
    }); 

    text.drag();
    text.data('origionalData', text.transform().localMatrix.split());
    text.attr({
        transform : 't' + text.data('origionalData').dx + ',' + text.data('origionalData').dy,
        x : 0,
        y : 0
    });

    eve.on("snap.drag.end", function () {
        text.data('origionalData', text.transform().localMatrix.split());
    });    

    var interval = null;
    $('#textRotate').bind( 'mousedown', function(){
        var slider = $(this);
        interval = setInterval(function(){
            setRotation(slider.val());
        }, 50);
    }).bind( 'mouseup.builder', function(){

        clearInterval(interval);
    })
    .bind( 'change', function(){
        setRotation($(this).val());
    });
})();