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 SVG.js线条标记mid_Javascript_Svg_Svg.js - Fatal编程技术网

Javascript SVG.js线条标记mid

Javascript SVG.js线条标记mid,javascript,svg,svg.js,Javascript,Svg,Svg.js,我试图将标记mid放在line元素上,我使用SVG.js。例如,我使用以下代码: var draw = SVG('yourdivid'); var line = draw.line( 100, 100, 0, 0).move(20, 20); line.stroke({ color: '#000', width: 2}; 现在,我如何使用marker mid将marker放置在这条线的中间? 我读了svg.js的文档,还有这个“ 他们说你也可以使用marker mid元素和line,我知道这

我试图将标记mid放在line元素上,我使用SVG.js。例如,我使用以下代码:

var draw = SVG('yourdivid');
var line = draw.line( 100, 100, 0, 0).move(20, 20); 
line.stroke({ color: '#000', width: 2};
现在,我如何使用marker mid将marker放置在这条线的中间? 我读了svg.js的文档,还有这个“ 他们说你也可以使用marker mid元素和line,我知道这个marker和path元素一起工作,但是我需要用一条line,你能帮我吗?
谢谢您的帮助

您可以自己算出直线的中点,然后在该点上画一个圆

var start = [100, 100];
var end = [0, 0];

function midPoint(start, end) {
    return [
          (start[0] + end[0]) / 2,
          (start[1] + end[1]) / 2
    ];
}

var lineGroup = svg.group();
lineGroup.line(start[0][0], start[0][1], end[0][0], end[0][1]);

var dot = lineGroup.circle(3);
var mid = midPoint(start, end);
dot.cx(mid[0]);
dot.cy(mid[1]);

标记mid
在行上不起作用。要有开始和结束标记,此代码将执行以下操作:

var draw = SVG('yourdivid');

draw.line( 100, 100, 0, 0)
    .move(20, 20)
    .stroke({ color: '#000', width: 2})
    .marker('start', 10, 10, function(add){
        add.circle(10).center(5,5) 
    })

但是,要在一条线的中间有标记,请参见p0wdr.com的答案

那里没有中间,一条线有一个起点,只有一个终点“中间”指的是多段路径的中点。第二到第二到最后一分。由于
只有起点和终点,因此没有可放置标记的中点。谢谢您的回答,我如何解决此问题?因为我使用svg.draw.js来画线,然后我需要在上面画一个中间标记,还有其他方法吗?@Paul LeBeau在上面的评论中写道;'“中点”是指多段路径的中点。。。由于a只有起点和终点,因此没有可放置标记的中点'