HTMLSVGグラフィック
SVGは、ベクトルベースのグラフィックスをXML形式で定義します。
SVGとは?
- SVGはスケーラブルベクターグラフィックスの略です
- SVGはWeb用のグラフィックを定義するために使用されます
HTML<svg>要素
HTML<svg>
要素は、SVGグラフィックのコンテナです。
SVGには、パス、ボックス、円、テキスト、およびグラフィックイメージを描画する方法がいくつかあります。
ブラウザのサポート
表の番号は、<svg>
要素を完全にサポートする最初のブラウザーバージョンを示しています。
要素 |
|||||
---|---|---|---|---|---|
<svg> | 4.0 | 9.0 | 3.0 | 3.2 | 10.1 |
SVGサークル
例
<!DOCTYPE html>
<html>
<body>
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg>
</body>
</html>
SVG長方形
例
<svg width="400" height="100">
<rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
</svg>
SVG角丸長方形
例
<svg width="400" height="180">
<rect x="50" y="20" rx="20" ry="20" width="150" height="150"
style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
</svg>
SVGスター
例
<svg width="300" height="200">
<polygon points="100,10 40,198 190,78 10,78 160,198"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>
SVGロゴ
例
<svg height="130" width="500">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="100" cy="70" rx="85" ry="55" fill="url(#grad1)" />
<text fill="#ffffff" font-size="45" font-family="Verdana" x="50" y="86">SVG</text>
Sorry, your browser does not support inline SVG.
</svg>
SVGとキャンバスの違い
SVGは、2DグラフィックスをXMLで記述するための言語です。
Canvasは、オンザフライで(JavaScriptを使用して)2Dグラフィックスを描画します。
SVGはXMLベースです。つまり、すべての要素がSVGDOM内で利用可能です。要素にJavaScriptイベントハンドラーをアタッチできます。
SVGでは、描画された各形状はオブジェクトとして記憶されます。SVGオブジェクトの属性が変更された場合、ブラウザは形状を自動的に再レンダリングできます。
キャンバスはピクセルごとにレンダリングされます。キャンバスでは、一度グラフィックが描画されると、ブラウザはそれを忘れます。その位置を変更する必要がある場合は、グラフィックで覆われている可能性のあるオブジェクトを含め、シーン全体を再描画する必要があります。
キャンバスとSVGの比較
次の表は、CanvasとSVGの重要な違いを示しています。
キャンバス | SVG |
---|---|
|
|
SVGチュートリアル
SVGについて詳しくは、SVGチュートリアルをお読みください。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。