2014-10-19 5 views
-1

내 프로젝트의 경우 svg-edit으로 작업 중이며, 내 필요에 따라 svgedit.compiled.js을 변경합니다. 여기에 몇 가지 문제가 있습니다. 선택한 요소를 가져 오려면 transform matrix에있는 transform이 필요합니다. , 나는 svg에서 선택된 요소의 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);

this.getCTM() 그러나 그것을하지 사용하여 동일한 요소를 transform 받고 다음 행 오전에 matrix(0, 0.722035, -0.51, 0, 1561, 776.524) 같은 값을 얻고있다 따라 경우 현재 transform를 얻을 내 코드 이전 값을 가져 오는 대신 값이 낮아짐

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

여기서 잘못된 것은 무엇입니까? 이것에 대한 단서가 있습니까?

+0

죄송합니다. 잡을 수 없습니까? @RobertLongson –

+0

'svg-edit'를 사용합니다 –

+0

SVG 요소 란 무엇입니까? SVG 요소 란 무엇입니까? –

답변

0

나는 여기 메모리에서 벗어나지 만, 값이 아주 소량 떨어져있을 때 그것은 경계 때문이었다. 나는 그것이 getCTM이 경계 넓이를 고려하지 않았기 때문에 그렇다고 믿는다.하지만 변환 행렬은 그렇지 않다. getScreenCTM 또는 element.clientX가 있으면 시도하십시오.

더 많은 도움을 받으려면 문제를 보여주는 피들을 만드십시오.

관련 문제