Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 标记大小在d3中均匀_Javascript_Svg_D3.js - Fatal编程技术网

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
属性,但我仍然看到标记大小在变化。有什么办法防止这种情况发生吗?