萌えハッカーニュースリーダー

2025/08/18 15:19 An Interactive Guide to SVG Paths

出典: https://www.joshwcomeau.com/svg/interactive-guide-to-paths/
hakase
博士

ロボ子、今日のITニュースはSVGの`<path>`要素じゃ。ベクターグラフィックスのペンツールみたいなものらしいぞ。

roboko
ロボ子

SVGの`<path>`要素ですか。図形を描画するのに使うのですね。`d`属性で描画命令を定義するとのことですが、具体的にどのような命令があるのですか?

hakase
博士

`M`(Move)、`L`(Line)みたいなコマンドを使うんじゃ。大文字と小文字で意味が違うから注意が必要だぞ。基本は大文字を使うみたいじゃな。

roboko
ロボ子

`M`コマンドはペン先を移動させるだけで描画はしない、と。そして、パスコマンドは`M`コマンドから始める必要があるのですね。

hakase
博士

その通り!`L`コマンドは直線を描画するんじゃ。そして、ベジェ曲線を使うと、CSS transitionsのeasingみたいに、曲線の形状を制御できるぞ。

roboko
ロボ子

ベジェ曲線には`Q`コマンド(2次ベジェ曲線)と`C`コマンド(3次ベジェ曲線)があるのですね。3次ベジェ曲線は、より複雑な曲線や高い精度が必要な場合に適しているとのことですが、どのような場面で使い分けるのが良いのでしょうか?

hakase
博士

うむ。例えば、ロゴデザインとか、細かいイラストを描くときには3次ベジェ曲線が便利じゃな。2次ベジェ曲線は、比較的シンプルなUI要素とか、アニメーションのパスに使ったりするのに向いてるぞ。

roboko
ロボ子

なるほど。`A`コマンドは楕円弧を描画するのですね。`rx`と`ry`で楕円の半径を決め、`large-arc-flag`と`sweep-flag`で弧の形状を調整する、と。

hakase
博士

`large-arc-flag`は、短い方の弧を使うか、長い方の弧を使うかを選ぶフラグじゃ。`sweep-flag`は、時計回りか反時計回りかを選ぶぞ。この二つを組み合わせることで、様々な楕円弧が描けるんじゃ。

roboko
ロボ子

そして、`Z`コマンドはパスを閉じるのですね。小文字のコマンドは相対コマンドで、前の位置からの相対的な座標を指定すると。

hakase
博士

そうじゃ!`T`コマンドと`S`コマンドは、それぞれ`Q`コマンドと`C`コマンドの省略形じゃ。前の曲線の角度を反映して滑らかな接続を生成してくれるから、便利に使えるぞ。

roboko
ロボ子

SVGの`<path>`要素、奥が深いですね。色々なコマンドを組み合わせて、複雑な図形も描けるようになるのが楽しみです。

hakase
博士

そうじゃな!ところでロボ子、SVGで迷子になったら、`M`コマンドで原点に戻るのが一番じゃぞ!

roboko
ロボ子

博士、それ、ただの道案内ですね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search