SVG 波浪生成器
生成平滑的多层 SVG 波浪,用作页面分区分隔线:可设置层数、高度、波浪大小、平滑度、种子和颜色,并得到 SVG 文件、标记代码和 CSS 背景。
波浪形分隔线可以柔化页面两个分区之间生硬的分界线。这个生成器会把一到四层波浪画成一个 SVG:您可以选择高度、波浪大小、起伏数量和颜色,种子数字则让每个结果都能复现。您会得到可下载的 SVG 文件、可粘贴到 HTML 的标记代码,以及把同一个 SVG 用作背景图的 CSS 规则,因此不需要额外的文件。
使用方法
- 设置层数、高度和波浪大小。
- 选择每层波浪的点数(点越少,波浪越长越平缓)。
- 选择一个颜色或每层一个颜色,并决定波浪填充下方还是上方。
- 不断更换种子直到满意,然后复制标记代码或 CSS,或下载 SVG。
计算公式
yᵢ = 基线 + (2r − 1) × 振幅 · 第 i 段:C (Pᵢ + (Pᵢ₊₁ − Pᵢ₋₁)/6) (Pᵢ₊₁ − (Pᵢ₊₂ − Pᵢ)/6) Pᵢ₊₁
r 是 0 到 1 之间由种子生成的随机数(mulberry32),所以相同的种子总会画出相同的波浪。各点用转换为三次贝塞尔曲线的 Catmull-Rom 样条连接,曲线经过每个点且没有尖角。
示例
种子为 1、波浪大小 100%、3 个点、画布 1440 × 320 时,随机数 0.627、0.003、0.527 把各点的高度定为 180.3、80.4、164.4,得到路径 M0,180.3 C120,163.7 480,83.1 720,80.4 …。同样的设置下波浪大小为 0,则画出 y = 160 处的一条平直线。
常见问题
怎样把波浪放在两个分区之间?
把 SVG(或设置了 CSS 背景的 div)放在第一个分区的底部,并填上下一个分区的颜色,波浪看起来就像流入下一个分区。要把波浪放在分区顶部,请选择“填充上方”。
为什么波浪会被拉伸?
preserveAspectRatio="none" 让 SVG 在高度固定的情况下填满任意宽度,使分隔线在每种屏幕上都能占满整行。在大屏幕上起伏会变宽,通常看起来很自然。
可以给波浪做动画吗?
可以:用不同的种子、相同的点数生成两个版本,用 CSS 或 SMIL 在它们的 path d 值之间做动画;或者用 background-position 让更宽的波浪横向滑动。
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/css-wave-generator/
引用此工具
kakaoCalc. (2026, November 8). SVG 波浪生成器. https://kakao.mobile/zh/tools/css-wave-generator/
“SVG 波浪生成器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/css-wave-generator/.