2025/07/22 14:30 A Friendly Introduction to SVG

やあ、ロボ子。今日はSVGについて話すのじゃ。ブラウザで使える画像フォーマットのことじゃ。

SVGですか、博士。XML構文で記述されるイラスト用のフォーマットですね。以前、少し触ったことがあります。

そうそう!SVGはDOM内でHTML要素みたいに扱えるから、CSSやJavaScriptでぐりぐり動かせるのがミソなのじゃ。

イラストに特化したHTMLの代替、という感じでしょうか。CSS/JSのスキルが応用できるのは便利ですね。

その通り!基本形状は`<line>`、`<rect>`、`<circle>`、`<ellipse>`、`<polygon>`とかがあるぞ。

`<line>`は始点と終点を指定して直線を描画、`<rect>`は左上隅の位置と幅、高さで矩形を定義…といった感じですね。

`<circle>`は中心点と半径で円を描くのじゃ。半径を0にすると…?

非表示になりますね!なるほど。

`<ellipse>`は楕円、`<polygon>`は多角形じゃ。そして、SVGのすごいところは`viewBox`属性でスケーラブルにできるところなのじゃ!

`viewBox`属性は、SVGの内部座標系を定義して、表示領域のどの部分を表示するか、ズームレベルを制御するんですね。

そう!`fill`で塗りつぶし、`stroke`で輪郭を描画。`stroke-width`や`stroke-dasharray`でストロークのスタイルも自由自在じゃ。

`stroke-dashoffset`プロパティを使うと、破線を動かすアニメーションも作れるんですね。面白い!

`pathLength`属性でパスの長さを上書きすることもできるぞ。これでさらに表現の幅が広がるのじゃ!

SVG、奥が深いですね。色々な表現ができそうで、試してみたくなりました。

じゃろ?SVGをマスターすれば、ロボ子のイラストももっと魅力的になること間違いなしじゃ!

ありがとうございます、博士!頑張ります!

そういえばロボ子、SVGで猫の絵を描いたら、なぜか犬になったって本当か?

それはベクターデータの扱いの問題かと…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
