绘制基本形状

全面介绍SVG基本形状的绑制方法,包括矩形、圆形、椭圆、直线、折线、多边形和路径。通过实际案例掌握各种SVG图形元素的用法,适合前端开发者学习SVG图形绑制。 SVG 提供了丰富的图形元素,可以绑制各种基本形状。掌握这些基本形状是学习 SVG 的第一步。

形状元素概览

SVG 有 7 种基本形状元素:

元素用途特点
<rect>矩形可设置圆角
<circle>圆形基于圆心和半径
<ellipse>椭圆可设置不同的水平和垂直半径
<line>直线两点之间的线段
<polyline>折线多个点连接的开放路径
<polygon>多边形多个点连接的闭合路径
<path>路径最强大的形状元素
rect circle ellipse line

形状的共同属性

所有形状元素都支持这些通用属性:

样式属性

  • fill:填充颜色
  • stroke:描边颜色
  • stroke-width:描边宽度
  • opacity:整体透明度
填充 描边 填充+描边 透明度

交互属性

  • id:唯一标识符
  • class:CSS 类名
  • style:内联样式
<rect id="myRect" class="box" style="fill: #3498db;" 
      x="10" y="10" width="100" height="50"/>

选择合适的形状

不同场景选择不同的形状:

场景推荐形状原因
按钮背景rect可以设置圆角
图标圆点circle简单易用
进度指示ellipse可以做椭圆形
分隔线line简单直接
折线图polyline连接数据点
三角形polygon自动闭合
复杂图形path灵活强大

形状的组织

多个形状可以用 <g> 元素分组:

<g fill="#3498db" stroke="#2980b9" stroke-width="2">
  <rect x="20" y="20" width="40" height="40" rx="5"/>
  <circle cx="100" cy="40" r="20"/>
  <rect x="140" y="20" width="40" height="40" rx="5"/>
</g>

分组的好处:

  • 统一设置样式
  • 统一应用变换
  • 方便整体操作

学习路径

接下来我们会详细学习每种形状:

  1. 矩形 rect:最常用的形状,支持圆角
  2. 圆形 circle:基于圆心和半径
  3. 椭圆 ellipse:圆形的扩展,支持不同半径
  4. 直线 line:两点之间的线段
  5. 折线 polyline:开放的多点连线
  6. 多边形 polygon:闭合的多点连线
  7. 路径 path:最强大的形状元素

实用技巧

1. 坐标计算

形状的位置由坐标决定,要注意坐标原点在左上角:

(0,0) ────────► x
  │
  │
  │
  ▼
  y

2. 尺寸单位

SVG 支持多种单位,但通常使用无单位数值:

<rect x="10" y="10" width="100" height="50"/>
<rect x="10px" y="10px" width="100px" height="50px"/>

3. 负值使用

某些属性支持负值:

<rect x="-10" y="-10" width="120" height="70"/>

这会让矩形部分超出视口。

常见问题

Q: 形状不显示怎么办?

A: 检查以下几点:

  • 坐标是否在视口范围内
  • 填充或描边是否设置
  • 尺寸是否为正值

Q: 如何居中形状?

A: 计算视口中心,然后调整形状坐标:

中心 x = viewBox 宽度 / 2
中心 y = viewBox 高度 / 2

Q: 形状重叠如何控制?

A: 后绘制的形状会覆盖先绘制的。可以使用 z-index(CSS)或调整元素顺序。

小结

基本形状是 SVG 的基础,掌握它们可以绑制大部分常见图形。每种形状都有其特点和适用场景,选择合适的形状可以让代码更简洁、性能更好。