SVGマスターへの道

パスを極める - 自由自在な線と形 <path>

前のページでは基本的な図形要素を学びましたが、それだけでは表現できない複雑な線や、有機的な形を描きたい時がありますよね。そんな時に登場するのが、SVGで最も強力かつ柔軟な図形要素、<path>(パス)です!

<path> 要素は、まるでペンを持って紙に絵を描くように、連続した線や曲線、円弧などを組み合わせて、どんな形でも作り出すことができます。その秘密は、d という属性にあります。

<path> 要素と d 属性

パスは、<path> タグを使い、その形状を d (dataの略) 属性に一連のコマンドと座標値で記述します。

<svg width="200" height="200" viewBox="0 0 100 100">
  <path d="M10 10 L90 10 L50 90 Z" fill="orange" stroke="black" />
  <!-- この d="..." の部分がパスの形状を定義します -->
</svg>

上の例では、M10 10 で (10,10) の点にペンを移動し、L90 10 で (90,10) へ直線を、L50 90 で (50,90) へ直線を、そして Z でパスを閉じて三角形を描いています。

パスコマンドには、大文字と小文字の2種類があります。

それでは、主要なパスコマンドを一つずつ見ていきましょう!

移動と直線コマンド

まずは基本の移動と直線です。

直線コマンド デモ (M, L, H, V, Z)

下のコントロールで各点の座標やコマンドを変更して、パスがどう変わるか試してみましょう。

X: Y:
X: Y:
X:
Y:

生成される d 属性: M 10 10 L 90 50 H 150 V 150

{/* width/height removed, controlled by CSS */}

3次ベジェ曲線コマンド

滑らかな曲線を描くための代表的なコマンドがベジェ曲線です。3次ベジェ曲線は、始点、終点、そして2つの制御点で定義されます。制御点は、曲線の曲がり具合をコントロールします。下のデモでは、黒い点が始点と終点、灰色の点が制御点です。これらの点をドラッグできます。

3次ベジェ曲線 (C) デモ (ドラッグ可能)

X: Y:
X: Y:
X: Y:
X: Y:

生成される d 属性:

灰色の丸は制御点、黒い丸は始点と終点、点線は制御ハンドルです。制御点をドラッグするかスライダーを操作して、曲線がどう変わるか見てみましょう。

2次ベジェ曲線コマンド

2次ベジェ曲線は、始点、終点、そして1つの制御点で定義されます。3次ベジェ曲線よりシンプルですが、表現力は少し劣ります。下のデモでは、黒い点が始点と終点、灰色の点が制御点です。これらの点をドラッグできます。

2次ベジェ曲線 (Q) デモ (ドラッグ可能)

X: Y:
X: Y:
X: Y:

生成される d 属性:

円弧コマンド

A コマンドは楕円の弧を描きます。これは最も複雑なコマンドで、多くのパラメータを持ちます。

始点と終点が同じでも、large-arc-flagsweep-flag の組み合わせで4種類の異なる弧が描けます(rx, ry が十分大きい場合)。

円弧 (A) デモ

始点 M(50,100) から下のコントロールで指定する終点への弧を描きます。

生成される d 属性:

d属性の書き方のコツ

豆知識 (English/日本語)

Did you know? Bézier curves, fundamental to vector graphics, were independently developed by two French engineers in the early 1960s: Pierre Bézier at Renault and Paul de Casteljau at Citroën. They were both working on methods for computer-aided design of car bodies. Bézier's work was published first, which is why the curves bear his name.

知っていましたか?ベクターグラフィックの基礎であるベジェ曲線は、1960年代初頭に2人のフランス人エンジニアによってそれぞれ独立して開発されました。ルノー社のピエール・ベジェ氏とシトロエン社のポール・ド・カステリョ氏です。彼らはどちらも自動車のボディデザインのためのコンピューター支援設計手法に取り組んでいました。ベジェ氏の研究が先に発表されたため、曲線は彼の名前を冠しています。

まとめ

<path> 要素は、SVGで最も表現力豊かな描画ツールです。移動、直線、ベジェ曲線、円弧といったコマンドを組み合わせることで、想像できるほぼすべての形を描き出すことができます。各コマンドの動作と、特にベジェ曲線の制御点の役割を理解することが、パスを自在に操るための鍵となります。

インタラクティブデモで制御点をドラッグしたり、スライダーを操作したりして、パスの挙動を身体で覚えてみてください。最初は複雑に感じるかもしれませんが、慣れれば非常に強力な武器になります。

次は、「色とスタイル - 見た目を飾ろう」で、これらのパスや図形に美しい見た目を与える方法を探求しましょう!

このページの要約

日本語

SVGの <path> 要素は、d 属性に記述された一連のコマンドを使って複雑な図形を描画します。主なコマンドには、M(移動)、L(直線)、H(水平線)、V(垂直線)、C(3次ベジェ曲線)、S(滑らかな3次ベジェ曲線)、Q(2次ベジェ曲線)、T(滑らかな2次ベジェ曲線)、A(円弧)、Z(パスを閉じる)があります。コマンドには絶対座標(大文字)と相対座標(小文字)があり、これらを組み合わせることで自由な形状を作成できます。ベジェ曲線の制御点を操作することで、曲線の形状を調整できます。

English

The SVG <path> element draws complex shapes using a series of commands written in its d attribute. Key commands include M (moveto), L (lineto), H (horizontal lineto), V (vertical lineto), C (cubic Bézier curveto), S (smooth cubic Bézier curveto), Q (quadratic Bézier curveto), T (smooth quadratic Bézier curveto), A (elliptical arc), and Z (closepath). Commands can use absolute (uppercase) or relative (lowercase) coordinates, allowing for versatile shape creation. The shape of Bézier curves can be adjusted by manipulating their control points.

Español

El elemento <path> de SVG dibuja formas complejas usando una serie de comandos escritos en su atributo d. Los comandos clave incluyen M (mover a), L (línea a), H (línea horizontal a), V (línea vertical a), C (curva Bézier cúbica a), S (curva Bézier cúbica suave a), Q (curva Bézier cuadrática a), T (curva Bézier cuadrática suave a), A (arco elíptico) y Z (cerrar ruta). Los comandos pueden usar coordenadas absolutas (mayúsculas) o relativas (minúsculas), permitiendo la creación versátil de formas. La forma de las curvas Bézier se puede ajustar manipulando sus puntos de control.

中文

SVG的<path>元素通过在其d属性中写入的一系列命令来绘制复杂形状。关键命令包括M(移动到)、L(绘制直线到)、H(绘制水平线到)、V(绘制垂直线到)、C(绘制三次贝塞尔曲线到)、S(绘制平滑三次贝塞尔曲线到)、Q(绘制二次贝塞尔曲线到)、T(绘制平滑二次贝塞尔曲线到)、A(绘制椭圆弧)和Z(闭合路径)。命令可以使用绝对坐标(大写)或相对坐标(小写),从而可以灵活创建各种形状。可以通过操纵贝塞尔曲线的控制点来调整其形状。