2015-10-19 3 views
1
I want to create a arrowhead in middle of curved path using SVG. Can someone please help me. below is the sample code of SVG 

Здесь я пытаюсь создать четыре изогнутых пути. Я могу создавать кривые. но когда я пытаюсь использовать маркеры, он работает с маркером-стартом и маркером, тогда как маркер-середина не работает, поскольку это единственный путь. Есть ли способ, которым мы можем разместить стрелку в середине дуги.Как создать изогнутый путь со стрелкой в ​​середине в SVG

`<!DOCTYPE html> 
<html> 
<head lang="en"> 
    <meta charset="UTF-8"> 
    <title></title> 
</head> 
<body> 
<?xml version="1.0" standalone="no"?> 
<?xml version="1.0"?> 
<?xml version="1.0" standalone="no"?> 
<svg width="325px" height="325px" version="1.1" xmlns="http://www.w3.org/2000/svg"> 

    <path d="M80 80 
      A 45 45, 0, 0, 0, 125 125 
      " stroke="green" fill="none" /> 
    <path d="M230 80 
      A 45 45, 0, 1, 0, 275 125 
      " stroke="red" fill="none"/> 
    <path d="M80 230 
      A 45 45, 0, 0, 1, 125 275 
      " stroke="purple" fill="none"/> 
    <path d="M230 230 
      A 45 45, 0, 1, 1, 275 275 
      " stroke="blue" fill="none"/> 
</svg> 
</body> 
</html>` 

ответ

1

Как вы видели, маркерный тип не делает этого. Вы можете сделать это самостоятельно через javascript.

Используйте SVG DOM для определения the total path length via getTotalLength, а затем позвоните getPointAtLength с общей длиной пути/2, чтобы узнать положение средней точки.

Наконец-то нарисуйте все, что захотите, в этом положении. Если путь изменится, вам нужно будет обновить положение псевдомаркера.

Смежные вопросы