Javascript svg getCTM()未获取准确的值
我正在为我的项目使用Javascript svg getCTM()未获取准确的值,javascript,svg,svg-edit,Javascript,Svg,Svg Edit,我正在为我的项目使用svg编辑,并根据我的需要修改svgedit.compiled.js,这里有一些问题,想要得到变换矩阵中所选元素的变换,我可以得到svg中所选元素的变换 如果元素为follow,则使用My code获取当前的转换 var my_selected= selectedElements[0].id; //alert(my_selected); var child_sel=$('#'+my_selected).children("g").attr('id'); var child_
svg编辑
,并根据我的需要修改svgedit.compiled.js
,这里有一些问题,想要得到变换矩阵
中所选元素的变换
,我可以得到svg中所选元素的变换
如果元素为follow,则使用My code获取当前的转换
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)代码>我获取的值为矩阵(0,0.722035,-0.51,0,15611776.524)
在下一行中,我通过使用this.getCTM()
获得相同的元素transform
,但它没有得到上一个值,而是得到了低于该值的值
rotation : 90
scaleX : 0.7220349907875061
scaleY : 0.5099999904632568
skewX : 90
skewY : 90
translateX : 4060
translateY : 2376.5234375
我做错了什么?这方面有什么线索吗?我这里的内存已经用完了,但是当这些值被关闭的非常小的时候,那是因为边界。我认为这是因为getCTM没有考虑边界宽度,但变换矩阵考虑了边界宽度,反之亦然。如果存在getScreenCTM或element.clientX,请尝试
请创建一个小提琴演示问题以获得更多帮助。对不起,我找不到您@RobertLongson什么是SVG元素,即您在上面调用的SVG文件。文件是svgedit.compiled.js
SVG元素是g
,这对我们大多数人来说毫无意义。请在问题后附上该问题的标记。