SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种基于可扩展标记语言(XML)的图形图像格式。它允许用户创建高质量、可缩放的矢量图形,非常适合用于网页设计、数据可视化等领域。本教程将从零基础开始,带你一步步掌握SVG绘图,并学会绘制精美的图表。
第一部分:SVG基础
1. SVG简介
SVG是一种基于XML的图形图像格式,它允许用户创建高质量、可缩放的矢量图形。SVG图像可以缩放而不失真,非常适合用于网页设计、数据可视化等领域。
2. SVG基本元素
SVG包含以下基本元素:
<circle>:圆形<ellipse>:椭圆形<line>:直线<polyline>:多边形<polygon>:闭合多边形<rect>:矩形<text>:文本<path>:路径
3. SVG属性
SVG元素具有丰富的属性,以下是一些常用属性:
x、y:元素的位置width、height:元素的尺寸r:圆形的半径cx、cy:椭圆和圆形的中心坐标stroke:边框颜色stroke-width:边框宽度fill:填充颜色
第二部分:绘制基本图形
1. 绘制圆形
以下是一个绘制圆形的示例代码:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<circle cx="100" cy="100" r="50" stroke="black" stroke-width="2" fill="red" />
</svg>
2. 绘制矩形
以下是一个绘制矩形的示例代码:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<rect x="50" y="50" width="100" height="100" stroke="black" stroke-width="2" fill="blue" />
</svg>
3. 绘制路径
以下是一个绘制路径的示例代码:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<path d="M10 10 L 50 10 L 50 50 L 10 50 Z" stroke="black" stroke-width="2" fill="green" />
</svg>
第三部分:绘制图表
1. 绘制柱状图
以下是一个绘制柱状图的示例代码:
<svg width="300" height="200" xmlns="http://www.w3.org/2000/svg">
<rect x="10" y="10" width="50" height="100" fill="red" />
<rect x="70" y="10" width="50" height="100" fill="green" />
<rect x="130" y="10" width="50" height="100" fill="blue" />
<rect x="190" y="10" width="50" height="100" fill="yellow" />
</svg>
2. 绘制折线图
以下是一个绘制折线图的示例代码:
<svg width="300" height="200" xmlns="http://www.w3.org/2000/svg">
<path d="M10 10 L 70 50 L 130 100 L 190 150" stroke="black" stroke-width="2" fill="none" />
<circle cx="10" cy="10" r="5" fill="red" />
<circle cx="70" cy="50" r="5" fill="green" />
<circle cx="130" cy="100" r="5" fill="blue" />
<circle cx="190" cy="150" r="5" fill="yellow" />
</svg>
第四部分:进阶技巧
1. 动画
SVG支持动画,以下是一个简单的动画示例:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="30" fill="blue" />
<animate attributeName="cx" from="50" to="150" dur="2s" repeatCount="indefinite" />
</svg>
2. 交互
SVG支持交互,以下是一个简单的交互示例:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="30" fill="blue" />
<circle cx="100" cy="50" r="30" fill="red" />
<script type="text/ecmascript">
// JavaScript 代码
function toggleCircle(event) {
var circle = event.target;
circle.setAttribute('fill', circle.getAttribute('fill') === 'blue' ? 'red' : 'blue');
}
document.getElementById('svg').addEventListener('click', toggleCircle);
</script>
</svg>
第五部分:总结
通过本教程,你已掌握了SVG绘图的基础知识和绘制精美图表的技巧。在实际应用中,你可以根据需求调整SVG元素属性和动画效果,以实现更丰富的视觉效果。祝你学习愉快!
