学下SVG矢量图形,你也是个小小艺术家!

boyanx5天前技术教程4

SVG 全面教程

1. SVG 简介

SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,可以在不损失质量的情况下任意缩放。

2. 基础语法

<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<rect x="10" y="10" width="100" height="100" fill="red" />
</svg>

[SVG演练场](
https://developer.mozilla.org/en-US/play
)

3. 基本形状

3.1 矩形

<rect x="10" y="10" width="100" height="50" fill="blue" stroke="black" stroke-width="2"/>

3.2 圆形

<circle cx="50" cy="50" r="40" fill="green"/>

4. 路径绘制

<path d="M10 10 L100 10 L100 100 Z" fill="none" stroke="black"/>

5. 渐变效果

<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<rect x="10" y="10" width="200" height="100" fill="url(#grad1)" />

6. 滤镜效果

<defs>
<filter id="blur">
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
</filter>
</defs>
<rect x="10" y="10" width="100" height="100" fill="blue" filter="url(#blur)"/>

7. 动画效果

<rect x="10" y="10" width="50" height="50" fill="red">
<animate attributeName="x" from="10" to="200" dur="3s" repeatCount="indefinite"/>
</rect>

8. 实际应用案例

8.1 简单图标

<svg width="100" height="100">
<circle cx="50" cy="50" r="40" fill="yellow" stroke="black" stroke-width="2"/>
<circle cx="35" cy="40" r="5" fill="black"/>
<circle cx="65" cy="40" r="5" fill="black"/>
<path d="M30 70 Q50 90 70 70" fill="none" stroke="black" stroke-width="2"/>
</svg>

8.2 复杂图形



<svg width="200" height="200">
<path d="M20,20 L180,20 L180,180 L20,180 Z M40,40 L160,40 L160,160 L40,160 Z"
fill="none" stroke="black" stroke-width="2"/>
<circle cx="100" cy="100" r="30" fill="red"/>
<line x1="100" y1="40" x2="100" y2="160" stroke="blue" stroke-width="2"/>
<line x1="40" y1="100" x2="160" y2="100" stroke="blue" stroke-width="2"/>
</svg>

参考资料

  1. MDN SVG参考
  2. Inkscape 绘图软件
  3. SVG演练场
标签: svg路径动画

相关文章

用Python+NiceGUI开发端午节倒计时界面:含知识解析与代码实现

一、界面功能:动态龙舟特效:底部龙舟划过水面留下波纹轨迹(SVG+JS动画实现)计算倒计时:自动计算距离端午的天数,当天自动切换祝福语3D旋转标题:"端午安康"文字持续旋转跳动(CSS...

SVG路径动画解密

SVG路径动画效果现在貌似越来越多网站都使用了,给我的感觉就像是一段时间的流行而已,刚一出来大家都感觉很炫酷,时间久了也就审美疲劳啦!如果还不知道什么是SVG路径动画的童鞋,快来看一个demo吧:ht...

零基础教你学前端——47、SVG绘制路径

在SVG中,使用 path 标签来定义一个路径。它是一个单标签,基本语法为:尖角号 path,斜线尖角号。应用路径,我们可以绘制任意形状的图形。path标签的重要属性 d,用来定义绘制路径的命令,d...

移动前端重构实战系列:5-7章

(本文系来自腾讯imweb团队 结一大大 关于移动端重构经验以及思想的实战系列,推荐点击左下角的阅读原文。)”本系列教程为实战教程,是自己移动端重构经验及思想的一次总结,也是对sheral UI的一次...

【前端必备】Anime.js:用9KB的魔法,让动画“活”起来!

在当今的互联网时代,动画效果已经成为提升用户体验的关键因素之一。如果你还在为复杂的动画效果而烦恼,那么 Anime.js 绝对是你不能错过的选择!什么是 Anime.js?Anime.js 是一款轻量...

【HarmonyOS Next之旅】兼容JS的类Web开发(五) -> Svg

目录1 -> 基础知识1.1 -> 创建Svg组件1.2 -> 设置属性2 -> 绘制图形3 -> 绘制路径4 -> 绘制文本4.1 -> 文本4.2 -&g...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。