SVG前端画图

news/2024/12/27 17:22:06/文章来源:https://www.cnblogs.com/MaoZhuaShi/p/18636308

SVG(Scalable Vector Graphics)是一种基于XML的标记语言,用于描述二维矢量图形,它可以在Web浏览器中进行展示。

SVG优点是:可伸缩、分辨率无损失,不管是电脑还是手机屏幕上都能够清晰地显示,支持互动和动画等特效;

缺点是:不支持复杂的渲染效果,如模糊、阴影和透明度,文件大小比位图格式相对较大,开发者需要掌握一定的SVG绘图基础知识。

SVG可以在任何地方编写哦~

SVG 与 Canvas 区别

不同形状元素

基本通用的属性

  • fill:定义矩形的填充颜色
  • stroke-width:定义边框宽度
  • stroke:定义矩形边框的颜色
  • fill-opacity:定义填充颜色的不透明度(0-1取值范围)
  • stroke-opacity:定义描边颜色的不透明度(0-1取值范围)
  • opacity:整个元素的不透明度

矩形 rect

基础案例

<pre>

arduino

复制代码

//案例矩形 <svg width="100" height="100"> <rect width="100" height="100" fill="red" stroke-width="2" stroke="#ccc"></rect> </svg> </pre>

标签的属性

  • width:定义矩形的宽度
  • height:定义矩形的高度
  • fill:定义矩形的填充颜色
  • stroke-width:定义矩形的边框宽度
  • stroke:定义矩形边框的颜色
  • x:定义矩形左边位置
  • y:定义矩形顶部位置
  • fill-opacity:定义填充颜色的不透明度(0-1取值范围)
  • stroke-opacity:定义描边颜色的不透明度(0-1取值范围)
  • opacity:整个元素的不透明度
  • rx:定义圆角X轴方向的半径长度
  • ry:定义圆角y轴方向的半径长度

圆形 circle

基础案例

<pre>
//案例圆形
<svg width="100" height="100" > <circle cx="50" cy="50" r="40" stroke-width="3" stroke="#000" fill-opacity="0"></circle> </svg> </pre>

 

 

标签的属性

  • cx:定义椭圆中心的X坐标
  • cy:定义椭圆中心的y坐标
  • rx:定义椭圆的水平半径
  • ry:定义椭圆的垂直半径

椭圆 ellipse

基础案例

<pre><svg width="500" height="140" > <ellipse cx="200" cy="80" rx="80" ry="20" stroke-width="3" stroke="#000" fill-opacity="0" /> </svg> </pre>

椭圆xy是不同,这样可以形成椭圆

 

 

标签的属性

  • cx:定义椭圆中心的X坐标
  • cy:定义椭圆中心的y坐标
  • rx:定义椭圆的水平半径
  • ry:定义椭圆的垂直半径

线条 line

基础案例

 

<pre>//线条的案例 
<svg width="500" height="210"> <line x1="0" y1="0" x2="200" y2="200" stroke-width="3" stroke="#000"></line> </svg> </pre>

标签的属性

  • x1:定义x轴上直线的起点坐标
  • y1:定义y轴上直线的起点坐标
  • x2:定义x轴上直线的末端坐标
  • y2:定义y轴上直线的末端坐标

多线条 polyline

多边形 polygon

路径 path

SVG各个小案例

注意事项

我们可以在html文件中去编写我们的SVG标签,方便我们进行练习,可以在浏览器更加直观的去看到我们所写的效果,并且可以编写多个SVG

 

当要使用我们所写的SVG时

如果要使用我们所写的SVG,可以创建SVG文件 在文件中头部添加

<pre>
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> </pre>//并且在SVG标签上添加<pre>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> //里面编写不同形状元素 </svg> </pre>

1.通过矩形和圆形制作添加图案

效果
代码

 

 

<pre>xml复制代码<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="50" cy="50" r="40" stroke-width="3" stroke="#000" fill-opacity="0"></circle> <rect width="60" height="5" fill="#000" x="20" y="46" rx="3" ry="3"></rect> <rect width="5" height="60" fill="#000" x="47" y="20" rx="3" ry="3"></rect> </svg> </pre>

作者:广子头的康
链接:https://juejin.cn/post/7242247549510533176
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859936.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp项目打包为桌面应用的方法步骤

1、在控制台安装electron cnpm install electron -g 2、在控制台安装electron-packager cnpm install electron-packager -g 3、uniapp的manifest.json修改image.png运行的基础路径修改为:./ 不然打包出来会出现白屏,读取不到,因为打包出来的h5默认加载地址为/static/ 去掉启…

dropDownButton使用方法

添加DropDownButton 控件添加PopuMenu控件DropDownButton控件绑定PopuMenu控件

智能问答模型升级,通义灵码新增图片多模态问答模式等新能力,项目秒上手

通义灵码智能问答模型升级 Qwen2.5 Coder、输入交互升级并丰富上下文支持,全新支持多模态图片问答模式等。通义灵码智能问答模型升级 Qwen2.5 Coder、输入交互升级并丰富上下文支持,全新支持多模态图片问答模式等。 1. 智能问答模型升级到最新 Qwen2.5 Coder 智能问答升级到最…

Oracle数据库关于日期TO_DATE的用法

1、在Oracle数据库中,常用的日期格式,比如获取当前时间 SELECT SYSDATE AS 当前时间 FROM DUAL; 2、稽核本月第一天的数据至今,日期获取如下 SELECT TRUNC(SYSDATE, MM) AS 当月第一天 FROM DUAL; 3、日期时间格式 select to_date(2021/7/1 23:59:59,yyyy/mm/dd hh24:mi:ss…

window环境下 IIS负载均衡

目录负载均衡分类DNS轮询 CDN IP负载均衡网络七层协议ARR(Application Request Route)配置IIS集群 负载均衡配置 负载监控 Nginx获取真实客户端IP地址ARR 负载均衡 任何的负载均衡技术都要想办法建立某种一对多的映射机制: 一个请求的入口映射到多个处理请求的节点,从而实现…

小学1-6年级必备:精讲字卡和写字表合集,帮孩子练出一手好字

正文: 小学阶段是孩子语文学习的重要时期,特别是汉字书写的培养尤为关键。为了帮助孩子掌握规范的汉字笔画、拼音、组词以及书写结构,这里特别推荐一套小学1-6年级同步精讲字卡与写字表合集。 这套内容覆盖了小学阶段所有的重点字词,家长和老师可以轻松打印,作为学习和练字…

4.链接标签

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>链接标签学习</title></head><body> <!--使用name作为标记名称--> <a name="top"/>顶部</…

DL00768-基于YOLO深度学习的电瓶车佩戴头盔检测系统python实现

DL00768-基于YOLO深度学习的电瓶车佩戴头盔检测系统python实现 可支持发票随着城市交通拥堵问题的加剧和共享电动车的普及,电动车安全问题引起了广泛关注,尤其是骑行者佩戴头盔的问题。佩戴头盔是确保骑行安全的关键措施,但由于部分骑行者未按规定佩戴头盔,导致了大量交通事…

vs code 合并分支,界面操作

简单描述: 如其他分支合并到dev 里面,切换到dev分支,然后用终端 git pull 一下,再“分支”--"合并" 选择要合并的其他分支,最后推送 界面如下: 点击切换分支,git pull 选择要合并的其他分支,合并 点击“合并”后,弹出分支后,选择要合并的分支,如feature_…

GO 学习笔记之零 (三)常见问题处理集锦

1、Golang如何解决case-insensitive import collision问题 1.1 现象1.2 解决方法该问题产生说明在所有go文件中引入包时,存在 ShipModel/Radar 和 ShipModel/radar 两种写法,需要统一。对于VSCODE工具,可以在 全局文件中搜索 ShipModel/Radar 查看 写法是不是一样,然后 进行…

UML之属性与参数的多重性

在UML中,多重性是指一个条目潜在的数量范围。多重性可被用于属性、操作参数、关联关系。UML元模型也使用多重性对元模型元素之间的关系进行约束。多重性总是包含基数值,它是相关条目在现实世界中的确切数量。本文将说明类属性和类操作参数的多重性。 一、属性的多重性 假设我…