新手必看!SVG绘图入门教程:从零开始绘制精美图形

2026-11-02 0 阅读

SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种基于可扩展标记语言(XML)的图形图像格式。它能够让你绘制出可以在任何分辨率下缩放而不失真的图形。对于前端开发者来说,SVG是一个非常强大的工具,可以用来创建动画、图表、图标等。本教程将从零开始,带你一步步学习如何使用SVG绘制精美图形。

SVG基础

什么是SVG?

SVG是一种基于XML的图形图像格式,它允许你使用矢量图形绘制各种形状和路径。与位图不同,矢量图形是由数学公式定义的,因此可以无限放大而不失真。

SVG文件的结构

一个SVG文件通常包含以下部分:

  • <?xml version="1.0" encoding="UTF-8"?>:声明文件为XML格式。
  • <svg>:SVG根元素,包含了整个SVG图形的配置信息。
  • <title>:图形的标题。
  • <desc>:图形的描述。
  • <defs>:图形的内部定义,如颜色、渐变等。
  • <rect>、<circle>、<ellipse>、<line>、<polyline>、<polygon>、<path>等:图形元素,用于绘制各种形状和路径。

创建SVG图形

1. 绘制矩形

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <rect x="10" y="10" width="180" height="180" style="fill:blue;stroke:red;stroke-width:5" />
</svg>

这段代码创建了一个宽度为200像素、高度为200像素的蓝色矩形,边框颜色为红色,边框宽度为5像素。

2. 绘制圆形

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <circle cx="100" cy="100" r="50" style="fill:yellow;stroke:green;stroke-width:3" />
</svg>

这段代码创建了一个半径为50像素的黄色圆形,边框颜色为绿色,边框宽度为3像素。

3. 绘制椭圆

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <ellipse cx="100" cy="100" rx="50" ry="25" style="fill:purple;stroke:orange;stroke-width:4" />
</svg>

这段代码创建了一个长轴为50像素、短轴为25像素的紫色椭圆,边框颜色为橙色,边框宽度为4像素。

4. 绘制线条

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <line x1="10" y1="10" x2="190" y2="190" style="stroke:blue;stroke-width:6" />
</svg>

这段代码创建了一条从左上角(10,10)到右下角(190,190)的蓝色线条,边框宽度为6像素。

5. 绘制折线

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <polyline points="10,10 50,50 150,50 190,10" style="stroke:red;stroke-width:5" />
</svg>

这段代码创建了一条从左上角(10,10)开始,依次连接点(50,50)、(150,50)和(190,10)的红色折线。

6. 绘制多边形

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <polygon points="10,10 100,10 50,100 10,10" style="fill:orange;stroke:blue;stroke-width:3" />
</svg>

这段代码创建了一个由四个点(10,10)、(100,10)、(50,100)和(10,10)构成的多边形,填充颜色为橙色,边框颜色为蓝色,边框宽度为3像素。

7. 绘制路径

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <path d="M10 10 L50 50 L150 50 L190 10 Z" style="fill:purple;stroke:red;stroke-width:4" />
</svg>

这段代码创建了一个路径,路径上的点依次为(10,10)、(50,50)、(150,50)和(190,10),填充颜色为紫色,边框颜色为红色,边框宽度为4像素。

SVG属性

SVG图形元素具有许多属性,用于控制图形的外观和行为。以下是一些常用的属性:

  • width和height:图形的宽度和高度。
  • fill:图形的填充颜色。
  • stroke:图形的边框颜色。
  • stroke-width:图形的边框宽度。
  • cx和cy:圆形、椭圆和路径的中心点坐标。
  • r:圆形、椭圆的半径。
  • points:折线和多边形的顶点坐标列表。
  • d:路径的描述。

SVG动画

SVG动画可以使用<animate>元素实现。以下是一个简单的动画示例:

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
  <circle cx="100" cy="100" r="50" style="fill:blue;stroke:red;stroke-width:5">
    <animate attributeName="r" from="50" to="100" dur="2s" fill="freeze" />
  </circle>
</svg>

这段代码创建了一个半径为50像素的蓝色圆形,动画使圆形的半径在2秒内从50像素增加到100像素。

总结

本文从SVG的基础知识开始,介绍了如何使用SVG绘制各种图形,以及SVG动画的制作方法。希望这篇文章能帮助你快速掌握SVG绘图技能,为你的前端开发之路添砖加瓦。

分享到: