只因小黑子:SVG

news2024/12/24 21:08:06

小黑子的SVG复习

  • SFV画布
    • 1. 初始SVG
    • 2. SVG绘制矩形、圆形和椭圆形
      • 2.1 rect 矩形
      • 2.2 circle 圆形
      • 2.3 ellipse 椭圆
    • 4. SVG绘制线条、多边形和多线条
      • 4.1 line 线条
      • 4.2 polygon 多边形
      • 4.3 polyline 多线条
    • 5. SVG绘制文本 text
    • 6. SVG绘制路径 path
    • 7. SVG描边属性
    • 8. SVG 模糊和阴影效果
      • 8.1 图形模糊效果
      • 8.2 阴影效果
    • 9. SVG 线性渐变和径向渐变
      • 9.1 linearGradient 线性渐变
      • 9.2 radialGradient 径向渐变

SFV画布

1. 初始SVG

SVG:是XML语法的图像格式,英宓全称是Scalable Vedor Graphias

即呵缩放矢量图,是W3C的一项建

用于解决网站图标模糊问题

  • SVG则是属于对图像的形卷描述
  • 所以它本质上是文本宓件。体积较小
  • 且不管放大多少倍都不会失真

与png区别:
PNG图片是基于像素处理的,不能再VSCode里直接编辑,
而svg是用html编写出来的

SVG标签
sVG标签是SVG图形的一个容器,双标签

在这里插入图片描述
在这里插入图片描述

2. SVG绘制矩形、圆形和椭圆形

在这里插入图片描述
任何单标签,都可以在第二个尖叫号前写一个斜杠 /,表示标签闭合了。也就是用闭合标签表示单标签,更加严谨

2.1 rect 矩形

在这里插入图片描述

    <svg width="400" height="110">
        <rect width="300" height="100" fill="red" stroke-width="10" stroke="black" />
    </svg>
    
    <br>
    <svg width="400" height="180">
        <rect x="50" y="20" width="150" height="150" fill="blue" stroke="tomato" stroke-width="5" opacity="0.5"/>
    </svg>

    <br>
    <svg width="400" height="180">
        <rect x="50" y="20" width="150" height="150" fill="red" stroke="black" stroke-width="5" opacity="0.5" rx="20" ry="30" />
    </svg>

在这里插入图片描述

2.2 circle 圆形

在这里插入图片描述

    <svg width="100" height="100">
        <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
    </svg>

在这里插入图片描述

2.3 ellipse 椭圆

在这里插入图片描述

    <svg width="500" height="140">
        <ellipse cx="200" cy="80" rx="100" ry="50" stroke="purple" stroke-width="10" fill="yellow"/>
    </svg>

在这里插入图片描述

    <svg width="500" height="150">
        <ellipse cx="240" cy="100" rx="220" ry="30" stroke="purple" stroke-width="10" fill="yellow"/>
        <ellipse cx="220" cy="70" rx="190" ry="20" stroke="purple" stroke-width="10" fill="lime"/>
        <ellipse cx="210" cy="45" rx="170" ry="15" stroke="purple" stroke-width="10" fill="red"/>
    </svg>
    <br>
    <svg width="500" height="150">
        <ellipse cx="240" cy="50" rx="220" ry="30" stroke="purple" stroke-width="10" fill="yellow"/>
        <ellipse cx="220" cy="50" rx="190" ry="20" stroke="purple" stroke-width="10" fill="whitesmoke"/>
    </svg>

在这里插入图片描述

4. SVG绘制线条、多边形和多线条

4.1 line 线条

在这里插入图片描述

    <svg width="500" height="210">
        <line x1="0" y1="0" x2="200" y2="200" stroke="purple" stroke-width="10" />
    </svg>

在这里插入图片描述

4.2 polygon 多边形

坐标之间用空格隔开,每一对坐标的x和y用逗号隔开
在这里插入图片描述

    <svg width="500" height="210">
        <polygon points="200,20 250,190,160,210" fill="lime" stroke="red" stroke-width="5"/>
    </svg>
    <br>
    <svg width="500" height="250">
        <polygon points="220,20 300,210 170,250 123,234" fill="blue" stroke="red" stroke-width="5"/>
    </svg>
    <br>
    <svg width="500" height="210">
        <polygon points="100,10 40,198 198,78 10,78 160,198" fill="skyblue" stroke="yellow" stroke-width="5"/>
    </svg>

在这里插入图片描述

4.3 polyline 多线条

在这里插入图片描述

    <svg width="500" height="210">
        <polyline points="20,20 40,25 60,40 80,120 120,140 200,180" fill="none" stroke="black" stroke-width="5"/>
    </svg>
    <br>
    <svg width="500" height="180">
        <polyline points="0,40 40,40 40,80 80,80 80,120 120,120 120,160" fill="none" stroke="red" stroke-width="5"/>
    </svg>

在这里插入图片描述

5. SVG绘制文本 text

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
添加使用锚点跳转
在这里插入图片描述

6. SVG绘制路径 path

在这里插入图片描述
在这里插入图片描述
在path中绘制贝塞尔曲线使用q命令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    <svg width="450" height="400">
        <path d="M 100 350 l 150 -300" stroke="red" stroke-width="3" fill="none"></path>
        <path d="M 250 50 l 150 300" stroke="red" stroke-width="3" fill="none"></path>
        <path d="M 175 200 l 150 0" stroke="green" stroke-width="3" fill="none"></path>
        <path d="M 100 350 q 150 -300 300 0" stroke="blue" stroke-width="5" fill="none"></path>

        <g fill="black">
            <circle cx="100" cy="350" r="3"></circle>
            <circle cx="250" cy="50" r="3"></circle>
            <circle cx="400" cy="350" r="3"></circle>
        </g>
        <g font-size="30" fill="black" text-anchor="middle">
            <text x="100" y="350" dx="-30">A</text>
            <text x="250" y="50" dx="-10">B</text>
            <text x="400" y="350" dx="30">C</text>
        </g>
    </svg>

在这里插入图片描述

7. SVG描边属性

所有的描边属性都可以应用到如下
在这里插入图片描述
在这里插入图片描述

8. SVG 模糊和阴影效果

8.1 图形模糊效果

在这里插入图片描述
在这里插入图片描述
模糊效果可以通过feGaussianBlur创建,需要定义在filter标签里面
在这里插入图片描述
在这里插入图片描述

    <svg width="110" height="110">
        <defs>
            <filter x="0" y="0" id="f1">
                <feGaussianBlur stdDeviation="15"/>
            </filter>
        </defs>
        <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f1)"></rect>
    </svg>

在这里插入图片描述

8.2 阴影效果

在这里插入图片描述
在这里插入图片描述

    <svg width="140" height="140">
        <defs>
            <filter x="0" y="0" width="200" height="200" id="f2">
                <feOffset in="SourceAlpha" dx="20" dy="20"/>
                <feGaussianBlur stdDeviation="10"/>
                <feBlend in="SourceGraphic"/>
            </filter>
        </defs>
        <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f2)"></rect>
    </svg>

在这里插入图片描述

9. SVG 线性渐变和径向渐变

9.1 linearGradient 线性渐变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    <svg width="400" height="150">
        <defs>
            <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="grad1">
                <stop offset="0%" stop-color="rgb(255,255,0)"/>
                <stop offset="100%" stop-color="rgb(255,0,0)"/>
            </linearGradient>
        </defs>

        <ellipse cx="200" cy="70" rx="85" ry="55"  fill="url(#grad1)"></ellipse>
        <text fill="white" font-size="45" x="150" y="86">SVG</text>
    </svg>

在这里插入图片描述

9.2 radialGradient 径向渐变

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

    <svg width="500" height="150">
        <defs>
            <radialGradient cx="30%" cy="30%" r="50%" fx="30%" fy="50%" id="grad2">
                <stop offset="0%" stop-color="rgb(255,255,0)"/>
                <stop offset="100%" stop-color="rgb(0,0,255)"/>
            </radialGradient>
        </defs>

        <ellipse cx="200" cy="70" rx="85" ry="55"  fill="url(#grad2)"></ellipse>
        <text fill="white" font-size="45" x="150" y="86">SVG</text>
    </svg>

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL安装配置教程(超级详细、保姆级)

一、 下载MySQL Mysql官网下载地址&#xff1a;https://downloads.mysql.com/archives/installer/ 选择想要安装的版本&#xff0c;点击Download下载 本篇文章选择的是5.7.31版本 二、 安装MySQL 选择设置类型 双击运行mysql-installer-community-5.7.31.0.msi&#xff0c;…

车载以太网 - 测试用例设计 - 时间参数 - 11

前面已经介绍过DoIP相关的时间参数信息,然而对于时间参数信息相关的测试用例该如何设计呢?个人认为这是用例中最好设计的一类,这类的用例只需要按照定义去设计写测试用例即可,难的是自动化脚本开发和手动测试执行。毕竟时间参数一般都是毫秒级的验证,就算是秒级的我们也很…

【项目管理】对管理的认识与思考

在进入职场一段时间后&#xff0c;我们不免会对管理有一些接触&#xff0c;可能会自己带团队、可能会到管理岗位等等&#xff1b;做管理重要的就是对于不同层级的管理。 管理是一门艺术&#xff0c;在谈到管理时&#xff0c;我们首先想到的应该是管人、带团队或者是一个部门或公…

matplotlib学习笔记(持续更新中…)

目录 1. 安装&#xff0c;导入 2. figure&#xff0c;axes&#xff08;图形&#xff0c;坐标图形&#xff09; 2.1 figure对象 2.2 axes对象 2.3 代码演示 2.3 subplot() 方法 3. 图表的导出 3.1 savefig() 方法 3.2 代码演示 1. 安装&#xff0c;导入 pip install m…

Python —— Windows10下配置Pytorch环境(完整流程)

最终效果 配置流程 一、下载安装显卡驱动 1、查看设备管理器显卡是否为NVIDIA&#xff0c;并确定显卡型号 2、根据显卡型号然后NVIDIA官网下载安装显卡驱动 下载完成后&#xff0c;双击一步一步执行即可。 3、安装完成驱动后&#xff0c;打开cmd终端输入"nvidia-smi"…

JVM学习笔记五:运行时数据区之本地方法栈

目录 概述 本地方法&#xff08;Native Method&#xff09; 使用本地方法的原因 本地方法栈 执行流程 概述 如果要了解本地方法栈的作用&#xff0c;首先需要了解本地方法库和本地方法接口。 本地方法接口是Java代码调用其他非Java代码的接口&#xff0c;本地方法库是其他…

观看课程领奖品!Imagination中国区技术总监全面解读 IMG DXT GPU

此前&#xff0c;我们发布了一系列关于 IMG DXT GPU 的介绍&#xff0c;为了让更多读者了解其背后的技术及应用方向&#xff0c;我们特别邀请 Imagination 中国区技术总监艾克录制全新在线课程&#xff0c;为大家全面解读IMG DXT GPU。 点击这里&#xff0c;马上注册观看&…

函数的栈帧的创建和销毁

文章目录本章主题&#xff1a;一.什么是函数栈帧1.什么是栈2.什么是函数栈帧二.理解函数栈帧能解决什么问题呢&#xff1f;三.函数栈帧的创建和销毁解析1.预备知识&#xff08;1&#xff09; 认识相关寄存器和汇编指令&#xff08;2&#xff09;栈帧空间的维护2.解析函数栈帧的…

uniapp 引入彩色symbol和 指令权限

uniapp 引入iconfont图标库彩色symbol 1&#xff0c;先去阿里巴巴矢量图标库登录 然后点击下载至本地 2.下载本地&#xff0c;然后解压文件夹 3.打开终端cmd命令窗口 npm安装全局包npm i -g iconfont-tools 4.终端切换到上面解压的文件夹里面&#xff0c;运行iconfont-too…

原理的学习

序参考的是这个书&#xff1a;Python神经网络编程 (豆瓣) (douban.com)小白&#xff0c;0基础&#xff0c;也看不懂其它更复杂的书……01.正向计算从左到右&#xff0c;根据输入值&#xff0c;得到输出值总览这就是神经元的数学形式&#xff1a;阈值函数sigmoid函数&#xff1a…

TIA博途_通过不定长数组实现冒泡排序的具体方法示例(封装FC全局库)

通过不定长数组实现冒泡排序的具体方法示例(封装FC全局库) 使用这种不定长数组时要注意,低版本的博途可能不支持这种方法(我自己尝试的V15版本时失败了,无法实现),本例中使用的是TIA博途V17版本。 具体步骤可参考如下: 如下图所示,打开博途后新建一个项目,添加一个12…

Java监听器的理解与实现

文章目录初识监听器Listener接口分类ServletContext监听器HttpSession监听器ServletRequest监听器Java代码实现ServletContextListenerServletContextAttributeListenerHttpSessionListenerHttpSessionAttributeListenerHttpSessionActivationListenerHttpSessionBindingListen…

在 4G 内存的机器上,申请 8G 内存会怎么样?

在 4GB 物理内存的机器上&#xff0c;申请 8G 内存会怎么样&#xff1f; 这个问题在没有前置条件下&#xff0c;就说出答案就是耍流氓。这个问题要考虑三个前置条件&#xff1a; 操作系统是 32 位的&#xff0c;还是 64 位的&#xff1f;申请完 8G 内存后会不会被使用&#x…

【机器学习】集成学习

1.什么是集成学习 集成学习的基本思想是结合多个学习器组合成一个性能更好的学习器。这类方法会训练多个弱学习器&#xff08;基学习器&#xff09;并将它们输出的结果以某种策略结合起来组成一个强学习器。 2.集成学习的几种方法 根据个体学习器的生成方式&#xff0c;集成学…

手把手教你用React Hook和TypeScript从零实现虚拟滚动列表组件

前言 k8s 全称 kubernetes&#xff0c;这个名字大家应该都不陌生&#xff0c;k8s是为容器服务而生的一个可移植容器的编排管理工具&#xff0c;集应用的部署和运维&#xff0c;负载均衡&#xff0c;服务发现和扩容&#xff0c;版本回滚于一身&#xff0c;越来越多的公司正在拥…

linux集群技术(二)--keepalived(高可用集群)(二)

案例1--keepalived案例2--keepalived Lvs集群1.案例1--keepalived 1.1 环境 初识keepalived&#xff0c;实现web服务器的高可用集群。 Server1: 192.168.26.144 Server2: 192.168.26.169 VIP: 192.168.26.190 1.2 server1 创建etc下的…

02-04 周六 图解机器学习 SVM 支持向量机分类学习

02-04 周六 图解机器学习 SVM 支持向量机分类学习时间版本修改人描述2023年2月4日11:15:16V0.1宋全恒新建文档 环境搭建 首先搭建jupyter环境&#xff0c;方便可视化 (base) rootnode33-a100:~# docker run --name sqh-learn -d -p 10088:8888 -it 10.101.12.128/framework/ju…

Qt-QProcess-启动子进程-控制台进程隐藏-获取子进程标准输出和返回码

文章目录1.隐藏控制台程序1.1.控制台程序生成即隐藏1.2.调用程序隐藏控制台2.QProcess2.1.基础用法-start和startDetached2.2.获取子进程的标准输出3.代码范例3.1.等待进程执行完毕&#xff0c;获取所有的输出3.2.子进程返回信号3.3.进程是否启动3.4.执行命令行3.5.与子进程交互…

GIT客户端安装

步骤1&#xff1a;运行“Git-2.13.1-64-bit.exe”&#xff0c;并点击“运行”按钮&#xff08;默认&#xff09;步骤2&#xff1a;许可信息页面&#xff0c;点击“Next”&#xff08;默认&#xff09;步骤3&#xff1a;选择安装路径&#xff08;默认&#xff09;步骤4&#xff…

记一次 .NET 某医保平台 CPU 爆高分析

一&#xff1a;背景 1. 讲故事 一直在追这个系列的朋友应该能感受到&#xff0c;我给这个行业中无数的陌生人分析过各种dump&#xff0c;终于在上周有位老同学找到我&#xff0c;还是个大妹子&#xff0c;必须有求必应 &#x1f601;&#x1f601;&#x1f601;。 妹子公司的…