SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种基于可扩展标记语言(XML)的图形文件格式。SVG文件可以缩放而不失真,这使得它们非常适合用于网页设计和移动应用。本教程将带你从零开始,轻松掌握SVG矢量图形绘制技巧。
一、SVG基本概念
1.1 SVG文件结构
一个SVG文件主要由以下几部分组成:
<svg>标签:定义SVG图形的容器。<style>标签:定义SVG图形的样式。- 图形元素:如
<circle>、<rect>、<line>等,用于绘制各种图形。
1.2 坐标系
SVG使用笛卡尔坐标系,其中X轴代表水平方向,Y轴代表垂直方向。默认情况下,SVG的坐标系原点位于左上角。
二、SVG基本图形绘制
2.1 矩形
矩形可以通过<rect>标签绘制,以下是一个简单的例子:
<svg width="200" height="200">
<rect x="10" y="10" width="100" height="100" style="stroke:blue; fill:none;" />
</svg>
上述代码将绘制一个100x100的蓝色矩形。
2.2 圆形
圆形可以通过<circle>标签绘制,以下是一个简单的例子:
<svg width="200" height="200">
<circle cx="50" cy="50" r="40" style="stroke:red; fill:none;" />
</svg>
上述代码将绘制一个半径为40的红色圆形。
2.3 线条
线条可以通过<line>标签绘制,以下是一个简单的例子:
<svg width="200" height="200">
<line x1="10" y1="10" x2="190" y2="190" style="stroke:green; stroke-width:2;" />
</svg>
上述代码将绘制一条从左上角到右下角的绿色线条。
三、SVG图形样式
SVG图形样式可以通过<style>标签定义,以下是一个简单的例子:
<svg width="200" height="200">
<style>
.red {
stroke: red;
fill: none;
}
.blue {
stroke: blue;
fill: none;
}
</style>
<circle cx="50" cy="50" r="40" class="red" />
<rect x="10" y="10" width="100" height="100" class="blue" />
</svg>
上述代码定义了两个类(.red和.blue),分别用于设置红色和蓝色线条,并将样式应用到相应的图形元素上。
四、SVG图形组合
SVG图形可以组合在一起,形成更复杂的图形。以下是一个简单的例子:
<svg width="200" height="200">
<circle cx="50" cy="50" r="40" style="stroke:red; fill:none;" />
<line x1="50" y1="50" x2="100" y2="100" style="stroke:green; stroke-width:2;" />
</svg>
上述代码将绘制一个圆形和一个线条,并将它们组合在一起。
五、SVG动画
SVG支持动画,可以通过<animate>标签实现。以下是一个简单的例子:
<svg width="200" height="200">
<circle cx="50" cy="50" r="40" style="stroke:red; fill:none;">
<animate attributeName="cx" from="50" to="150" dur="2s" repeatCount="indefinite" />
</circle>
</svg>
上述代码将使圆形在2秒内从X轴50的位置移动到150的位置,并无限重复。
六、总结
本教程介绍了SVG绘图的基础知识,包括SVG文件结构、基本图形绘制、图形样式、图形组合以及SVG动画。通过学习本教程,你可以轻松掌握SVG矢量图形绘制技巧,并将其应用到网页设计和移动应用中。
