Comment utiliser un marqueur de flèche sur un élément SVG?

Je dois créer une flèche dans d3.js, mais tout ce que je trouve sont des exemples avec des diagrammes de nœuds. Ce dont j'ai besoin, c'est de simplement faire une flèche qui va du point A au point B.

J'ai essayé d'exécution d'une partie du code dans l'exemple suivant: http://bl.ocks.org/1153292

Cette partie spécifique:

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");

Mais comme je l'ai mentionné plus tôt, Je ne trouve pas le moyen de créer la flèche avec un svg:line apprécie beaucoup l'aide que vous pouvez me donner.

30
demandé sur BSMP 2012-10-01 23:59:10

1 réponses

Si vous vouliez dire ' comment puis-je utiliser un marqueur de flèche sur un élément ?"alors voici comment vous faites cela:

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

Voici un exemple complet . Et notez que marker-end est une propriété css, donc vous pouvez également mettre cette partie dans une feuille de style si vous le souhaitez.

Si vous voulez dessiner votre marqueur avec des lignes, ajoutez simplement les lignes dont vous avez besoin en tant qu'enfant de l'élément marker (et assurez-vous d'utiliser le système de coordonnées défini par l'attribut viewBox du marqueur).

58
répondu Erik Dahlström 2012-10-02 08:24:17