Tips

SVGで格子模様を描くコツ

日付2011/07/01
ID76363 (英語原文参照)
バージョンv12
プラットフォームMac/Win

グラフの背景などにSVGでグリッド(方眼)を描画する場合, 無数のライン要素を引くのもひとつの方法ですが, パターンを上手に使用したほうがよりスマートです。

たとえば下記のようなグリッドを描画する場合, 縦と横に10本ずつ, 20本の線を描画することもできますが, 最初に四角形をパターンとして定義し, これを別の四角形の中でペイントサーバーとして参照すれば, 四角形がリサイズされたとしても, それに連動してグリッドも拡大縮小されます。ライン要素を描画した場合, 線の間隔をその都度, 再計算しなければなりません。

$X_L:=0
$Y_L:=0
$X2_L:=200
$Y2_L:=100

For ($Ndx;0;10)
    SVG_New_line ($SVG_T;$X_L+($Ndx*20);$Y_L;$X_L+($Ndx*20);$Y2_L;"blue";0.5)
    SVG_New_line ($SVG_T;$X_L;$Y_L+($Ndx*20);$X2_L;$Y_L+($Ndx*20);"blue";0.5)
End for

$MyPat_T:=SVG_Define_pattern ($SVG_T;"myGrid";20;20;0;0;"userSpaceOnUse")
SVG_New_rect ($MyPat_T;0;0;20;20;0;0;"blue";"none";0.3)

SVG_New_rect ($SVG_T;0;0;200;100;0;0;"";"url(#myGrid)";0.3)