SVGの3次ベジェでスムーズなウェーブパターンを作成する

滑らかな3次ベジェ(S)コマンドを使用して繰り返しの正弦波を構築します。アニメーション背景、セクションデバイダー、ローディングインジケーターに最適です。

Animations

詳細な説明

Sコマンドによるスムーズウェーブ

ウェーブパターンは交互に並ぶ3次ベジェ曲線を連鎖して構築します。S(滑らかな3次)コマンドは、シームレスな流れのためにコントロールポイントを自動的にミラーリングするため、特にエレガントです。

パス

M 0,50 C 16,10 32,10 50,50 S 84,90 100,50
S 134,10 150,50 S 184,90 200,50

仕組み

最初のセグメントはCを使用して、(0,50)からピークへの初期曲線を定義し、(50,50)の中線に戻ります。後続のSコマンドはそれぞれ前のコントロールポイントを反転し、交互のピークとトラフを作成します。

ウェーブのパラメータ

プロパティ 制御するもの
波長 エンドポイント間の水平距離(ここでは50単位)
振幅 コントロールポイントの中線からの垂直距離(40単位)
位相 Mコマンドの開始xオフセット
中線 エンドポイントが共有するy座標(ここでは50)

ウェーブのアニメーション

CSSで水平方向の動きを追加:

.wave-path {
  animation: wave 2s linear infinite;
}
@keyframes wave {
  from { transform: translateX(0); }
  to { transform: translateX(-100px); }
}

ループがシームレスになるよう、ウェーブパスをビューポートの幅の少なくとも2倍に設定します。

塗りつぶしウェーブ(セクションデバイダー)

ウェーブをセクションデバイダーとして使用するには、パスを延長して閉じたシェイプにします:

M 0,50 C 16,10 32,10 50,50 S 84,90 100,50
S 134,10 150,50 S 184,90 200,50 L 200,100 L 0,100 Z

これは底部でパスを閉じ、塗りつぶされたウェーブ領域を作成します。

ユースケース

ウェーブパターンはアニメーションページ背景、コンテンツブロック間のセクションデバイダー、ローディング/プログレスインジケーター、オーディオ波形の装飾、イラストの水/液体エフェクトに使用されます。

試してみる — SVG Path Editor

フルツールを開く