web-dev-qa-db-ja.com

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を使用して矢印を作成する方法は見つかりません。

30
Cristian G

「<line>要素で矢印マーカーを使用する方法」を意味する場合次に、その方法を示します。

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

完全な です。 marker-endはcssプロパティであるため、必要に応じてその部分をスタイルシートに入れることもできます。

マーカーを線で描画したい場合は、マーカー要素の子として必要な線を追加するだけです(マーカーのviewBox属性で定義された座標系を使用してください)。

58
Erik Dahlström