Javascript 标记大小在d3中均匀
我正在力定向图上创建标记。在我的力定向图中,我有不同厚度或笔划的线或链接。正因为如此,创建的标记具有不同的大小。我想要的是有统一大小的记号笔。 以下是我的标记代码:Javascript 标记大小在d3中均匀,javascript,svg,d3.js,Javascript,Svg,D3.js,我正在力定向图上创建标记。在我的力定向图中,我有不同厚度或笔划的线或链接。正因为如此,创建的标记具有不同的大小。我想要的是有统一大小的记号笔。 以下是我的标记代码: `svg.append('defs').append('svg:marker') .classed("arrowhead",true) .attr('id', 'arrowhead') .attr('viewBox', '0 -5 40 40') .attr('refX', "25")
`svg.append('defs').append('svg:marker')
.classed("arrowhead",true)
.attr('id', 'arrowhead')
.attr('viewBox', '0 -5 40 40')
.attr('refX', "25")
.attr('markerWidth', 8)
.attr('markerHeight', 8)
.attr('orient', 'auto')
.append('svg:path')
.attr('d', 'M0,-5L10,0L0,5')
.attr('fill', 'black');`
我怎样才能有统一尺寸的马克笔??
提前感谢。默认情况下,标记相对于笔划宽度(请参见),但您可以在标记元素上设置
markerUnits=“userSpaceOnUse”
,使标记大小不相对于笔划宽度
要澄清的是,这并不会使标记大小保持静态,并且对于使用标记的所有元素都是相同的。渲染标记仍受使用该标记的元素上的变换集的约束。但它确实使大小与笔划宽度无关。您是否尝试过在标记定义上设置笔划宽度?以何种方式不统一?在您的示例中只有一条路径,所以它怎么可能不同,它没有什么不同。可能与您在标记定义中如何实现markerUnits=“userSpaceOnUse”重复。我是d3新手,我也需要将其应用于我的标记。我是这样应用的:svg.append('defs')。append('svg:marker')。classed('arrowhead',true)。attr('id','arrowhead')。attr('viewBox','0-5 40')。attr('refX','26')。attr('markerWidth',8)。attr('markerHeight',8)。attr('orient','auto')。append('svg:path')。attr('d','M0,-5L10,0L0,5').attr('fill','black').attr('markerUnits','userSpaceOnUse'));但这对我来说不起作用me@erik-dahlström:那么这是否意味着你不可能拥有大小一致的标记?我遇到了同样的问题,我添加了你提到的
makersUnits
属性,但我仍然看到标记大小在变化。有什么办法防止这种情况发生吗?