SVGで円弧を描く

SVGで円弧を描くには、タグを使用する。

<path>タグの仕様

■基本形

<path d="M x1 y1
           A rx ry
           katamuki
           f1 f2
           x2 y2"
           fill="none" stroke="black" />
パラメータ 意味 備考
x1,y1 円弧の開始座標
x2,y2 円弧の終了座標
rx,ry 円のx軸半径とy軸半径
katamuki 傾き(度数)
f1 0)180度未満の円弧 1)180度以上の円弧 二点間を通る楕円は二種類存在するため、円弧のどの部分を描画するかをf1,f2で指定する。
f2 0)半時計回りの円弧 1)時計回りの円弧

■サンプルコード

<!DOCTYPE html>
<html>
  <meta charset="UTF-8" />
  <title>SVG -パス</title>
<style>
#chart {
  background: #ffbbff;
}
</style>
  <body>
    <svg id="chart" width="300" height="230">
      <path d="M90 70
               A80 60
               0 0 0
               190 160
               " fill="none" stroke="darkgreen" />
      <path d="M90 70
               A80 60
               0 0 1
               190 160
               " fill="none" stroke="red" />
      <path d="M90 70
               A80 60
               0 1 0
               190 160
               " fill="none" stroke="blue" />
      <path d="M90 70
               A80 60
               0 1 1
               190 160
               " fill="none" stroke="white" />
    </svg>
  </body>
</html>

(実行結果)

描画色 f1(円弧の長さ) f2(描画の向き)
0(短い方) 0(反時計回り)
0(短い方) 1(時計回り)
1(長い方) 0(反時計回り)
1(長い方) 1(時計回り)

参考サイト

SVGによる円弧の描画サンプル|山本ワールド

参考文献

PythonとJavaScriptではじめるデータビジュアライゼーション