Подтвердить что ты не робот

Как использовать маркер стрелки на элементе svg <line>?

Мне нужно создать стрелку в d3.js, но все, что я нахожу, это примеры с диаграммами узлов, мне нужно просто сделать стрелку, идущую от точки A до точки B.

Я попытался реализовать часть кода в следующем примере: http://bl.ocks.org/1153292

эта конкретная часть:

svg.append("svg:defs").selectAll("marker")
    .data(["suit", "licensing", "resolved"])
  .enter().append("svg:marker")
    .attr("id", String)
    .attr("viewBox", "0 -5 10 10")
    .attr("refX", 15)
    .attr("refY", -1.5)
    .attr("markerWidth", 6)
    .attr("markerHeight", 6)
    .attr("orient", "auto")
  .append("svg:path")
    .attr("d", "M0,-5L10,0L0,5");

Но, как я упоминал ранее, я не нашел способ создать стрелку с помощью svg:line

очень ценю помощь, которую вы можете мне дать.

4b9b3361

Ответ 1

Если вы имели в виду "как использовать маркер стрелки в элементе < line"? то вот как вы это делаете:

<line x1="100" y1="230" x2="300" y2="230" 
 marker-end="url(#yourMarkerId)" stroke="black" stroke-width="10"/>

Вот полный пример. Обратите внимание, что marker-end - это свойство css, поэтому вы можете также поместить эту часть в таблицу стилей, если хотите.

Если вы имели в виду, что хотите нарисовать маркер с помощью строк, просто добавьте все строки, которые вам нужны, в качестве дочернего элемента маркера (и обязательно используйте систему координат, определенную атрибутом viewBox маркера).