Javascript 从d3中的节点获取转换

Javascript 从d3中的节点获取转换,javascript,d3.js,Javascript,D3.js,是否可以使用d3以transform形式(从d3 transform)从svg组元素获取当前转换(特别是translate,即由.attr('transform','translate(20,10))设置)?我设法获取属性(select('g').attr('transform')),但需要以某种方式将其转换为transform对象/函数,以链接更多的转换并将其重新应用于节点 作为拖动的一部分,我尝试转换g元素。它不包含x/y属性(与许多其他拖动示例一样)。相反,它指定了正确放置的transfo

是否可以使用d3以
transform
形式(从d3 transform)从svg组元素获取当前转换(特别是translate,即由
.attr('transform','translate(20,10)
)设置)?我设法获取属性(
select('g').attr('transform')
),但需要以某种方式将其转换为
transform
对象/函数,以链接更多的转换并将其重新应用于节点

作为拖动的一部分,我尝试转换
g
元素。它不包含
x
/
y
属性(与许多其他拖动示例一样)。相反,它指定了正确放置的
transform()
属性


我目前的方法是
$g.node().transform.baseVal[0].matrix.e
来获取转换的x值,但我希望使用更“d3集成”的方法。

您可以通过请求元素的转换矩阵来实现:

const matrix = select('g').node().transform.baseVal.consolidate().matrix
const translateX = matrix.e
const translateY = matrix.f
const scale = matrix.d

这是一个.

边界XY问题。。。为了得到一个像样的D3答案,请发布您的代码,并描述您正试图实现的目标,即预期的行为。