09——svg中path的使用

一、path 是 svg 中最强大的图形

  • 用于定义一个 路径
  • 所有命令均允许小写字母。大写 表示绝对定位小写 表示 相对定位 (相对于上一个结束的坐标)
  • d 属性中包含所有路径的点,可根据命令缩写 自由组合
     命令            名称                                参数
      M           moveto  移动到                        (x y)+
      Z          closepath  关闭路径                    (none)
      L           lineto  画线到                        (x y)+
      H          horizontal lineto  水平线到              x+
      V          vertical lineto  垂直线到                y+
      A        elliptical arc椭圆弧                    (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+
      C        curveto 三次贝塞尔曲线到                 (x1 y1 x2 y2 x y)+
      S     smooth curveto光滑三次贝塞尔曲线到          (x2 y2 x y)+
      Q        Bézier curveto二次贝塞尔曲线到           (x1 y1 x y)+
      T     smooth Bézier curveto光滑二次贝塞尔曲线到     (x y)+

二、M、L、H、V 简单使用总结

  • M 作为起点,Z 作为结束
  • + 表示一次或多次
  • M 移动画笔,若有多个参数,会当做是 L 命令处理(画线)
  • L 画直线;H 移动水平位置;V 移动垂直位置
  • L 绘制直线到指定位置; l 从当前绘制直线移动多少多少
  • H 绘制水平线到指定位置;h 从当前绘制长度为多少的水平线
  • V 绘制竖直线到指定位置;v 从当前绘制长度为多少的竖直线
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="1000" height="1000">
    <path d="M 150 0 L 0 150 L 300 150 Z" fill="pink" />
    <path d="M 150 0 l 0 150 H 300 Z" fill="pink" />
</svg>

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

三、圆弧

  • A rx ry x-axis-rotation large-arc-flag sweep-flag x y
  • 最复杂的命令
  • rx ry 表示 x轴半径y轴半径
  • x-axis-rotation 表示 x轴旋转角度
  • large-arc-flag 表示弧线 是否大于180度 (1 是大弧线,0 是小弧线)
  • sweep-flag 表示 弧线方向 ( 0为沿逆时针,1为沿顺时针 )
  • x y 最终坐标
  <!-- x转旋转角度 -->
  <svg width="1000" height="400">
    <path d="M 200 200 A 150 100 0  1 1 300 300" stroke="red" fill="none"> </path>
  </svg>
  <svg width="1000" height="400">
    <path d="M 200 200 A 150 100 10 1 1 300 300" stroke="red" fill="none"> </path>
  </svg>
  <svg width="1000" height="400">
    <path d="M 200 200 A 150 100 100 1 1 300 300" stroke="red" fill="none"> </path>
  </svg>
  <svg width="1000" height="400">
    <path d="M 200 200 A 150 100 200 1 1 300 300" stroke="red" fill="none"> </path>
  </svg>
  <svg width="1000" height="400">
    <path d="M 200 200 A 150 100 300 1 1 300 300" stroke="red" fill="none"> </path>
  </svg>

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

<!-- 可自行修改  large-arc-flag、sweep-flag查看  -->
<svg width="1000" height="400">
  <path d="M 200 200 A 150 100, 0, 1, 1, 300 300" fill="green" />
</svg>

在这里插入图片描述

四、贝塞尔曲线

  • 首先是理解贝塞尔曲线的原理,然后套用使用参数即可
  • 由于数学原理相对复杂,这里不做过多介绍,放上两张图便于理解
  • 二次贝塞尔曲线 ,一个起点、一个终点、一个控制点

在这里插入图片描述

  • 三次贝塞尔曲线 ,一个起点、一个终点、两个控制点

在这里插入图片描述

  • 可依次解开代码查看,效果如下
<svg width="1000" height="400">

      <!-- 二次贝塞尔曲线 Q -->
      <path id="lineAB" d="M 100 350 l 150 -300" stroke="red" stroke-width="3" fill="none" />
      <path id="lineBC" d="M 250 50 l 150 300" stroke="red" stroke-width="3" fill="none" />
      <path d="M 175 200 l 150 0" stroke="green" stroke-width="3" fill="none" />
      <path d="M 100 350 q 150 -300 300 0" stroke="blue" stroke-width="5" fill="none" />

      <!-- 光滑二次贝塞尔曲线 T -->
      <!-- <path d="M20 80 Q90 140, 130 80 T250 140 T350 40 " stroke="#000000" fill="none" style="stroke-width: 2;"/> -->

      <!-- 三次贝塞尔曲线 C -->
      <!-- <path d="M20 20 C90 140,130 140,200 25" stroke="#000000" fill="none" style="stroke-width: 2;"/> -->

      <!-- 光滑三次贝塞尔曲线 S -->
      <!-- <path d="M20 80 C90 140, 130 140, 180 80 S250 60, 280 120" stroke="#000000" fill="none" style="stroke-width: 2;"/> -->

</svg>

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最全的分布式事务详情,它来啰~

我们首先得理解什么是分布式事务呢&#xff1f;分布式事务是指在分布式系统中&#xff0c;涉及多个计算机或服务器的操作序列&#xff0c;这些操作需要满足一致性和可靠性的要求。每个操作要么全部成功执行&#xff0c;要么全部回滚&#xff0c;以保持数据的一致性和完整性。 …

假期出行小程序+chatgpt旅游攻略

马上五一了,如果想出去旅游,需要提取规划好路线图,我们可以借助chatgpt的路线规划功能帮我们生成一份攻略,按照攻略我们就可以愉快的出去玩耍了。 本文结合chatgpt,利用低代码工具帮我们制作一份旅行导览小程序,可以按照行程方便的出行。 1 制定攻略 我们在聊天窗口输…

从小白到黑客高手:一份全面详细的学习路线指南

前言 黑客从入门到精通需要经过深入的学习和实践&#xff0c;这是一个需要长时间投入和大量精力的过程。在这份学习路线中&#xff0c;我将为你介绍黑客学习的基本知识和技能&#xff0c;帮助你逐步掌握黑客技能。 黑客 一、入门阶段 1.了解计算机基础知识 学习计算机基础知…

thinkPhP6.0安装教程图解--PHP框架安装

ThinkPhP 6.0 安装 1.环境检查 首先&#xff0c;thinkphp6.0&#xff0c;要求php的环境是7.2.5及以上的&#xff0c;所以先检查自己的php环境是否符合要求。 在cmd命令窗口中输入php -v 或者没有配置环境变量的话&#xff0c;可以在php编辑器中输出php_info()或则PHP_VERSIO…

【鲁棒优化、无功优化】两阶段鲁棒优化的主动配电网动态无功优化【IEEE33节点】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

A股市场上股票行情数据接口有那几种?

L2行情数据接口相比Level-1接口相比&#xff0c;L2行情市场具有数据更完整、推送速度更及时的优势&#xff0c;帮助投资者及时把握盘中主要资金流&#xff0c;做出更准确的投资决策。简而言之&#xff0c;Level-2最大的作用就是提前看到主力的大单&#xff0c;对于追逐日线跌停…

Linux高并发服务器开发01:Linux系统编程入门

GCC 什么是GCC GCC工作流程 GCC常用的参数选项 GCC和G的区别 静态库 什么是库 静态库的制作 先编译生成对应的.o文件 gcc -c add.c sub.c mult.c div.c -I …/include/ 再将.o文件打包成静态库 ar rcs libcalc.a add.o sub.o mult.o div.o 使用的时候-l指定库名称 gcc main.c…

【论文简述】Multi-View Stereo Representation Revisit: Region-Aware MVSNet(CVPR 2023)

一、论文简述 1. 第一作者&#xff1a;Yisu Zhang 2. 发表年份&#xff1a;2023 3. 发表期刊&#xff1a;CVPR 4. 关键词&#xff1a;MVS、3D重建、符号距离场 5. 探索动机&#xff1a;像素深度估计仍存在两个棘手的缺陷。一是无纹理区域的估计置信度较低。二是物体边界附…

RTSP/RTP on TCP 协议抓包记录

仅做记录&#xff0c;无他。 RTSP OPTIONS 客户端发送&#xff1a; 服务端响应 RTSP DESCRIBE 客户端发送 服务端响应 RTSP SETTUP 客户端发送请求 服务端响应 RTSP PLAY 客户端发送请求 服务端响应 RTP包 这个比较复杂&#xff0c;得好好解析&#xff0…

消息队列中间件 - RabbitMQ消息的持久化、确认机制、死信队列

持久化和应答机制Ack 消息队列中间件系列的最后一篇了&#xff0c;RabbitMQ消息的持久化、确认机制、死信队列、负载均衡等一系列进行说明。 消息持久化 当RabbitMq重启以后&#xff0c;未消费的消息&#xff0c;可以在服务重启后继续消费&#xff0c;不会丢失。 应答机制A…

DS215KLDCG1AZZ03A如何编写温度比例的代码?

DS215KLDCG1AZZ03A如何编写温度比例的代码&#xff1f; 可编程逻辑控制&#xff0c;简称PLC&#xff0c;由美国机械工程师迪克莫利于1年1968月<>日首次设计。PLC最初是为了减少汽车行业员工的工作量而开发的&#xff0c;从那时起&#xff0c;它们已被用于所有其他恶劣环境…

MySQL --- 多表查询

多表查询、事物、以及提升查询效率最有手段的索引 一. 多表查询 1.1 多表查询 --- 概述 1.1.1 数据准备 将资料中准备好的多表查询数据准备的SQL脚本导入数据库中。 部门表&#xff1a; 员工表&#xff1a; 1.1.2 介绍 多表查询&#xff1a;指从多张表中查询数据&#…

尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】

视频地址&#xff1a;尚硅谷大数据Spark教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据技术Spark教程-笔记01【Spark(概述、快速上手、运行环境、运行架构)】尚硅谷大数据技术Spark教程-笔记02【SparkCore(核心编程、案例实操)】尚硅谷大数据技术Spark教程-笔记03【SparkSQL…

云原生背景下如何配置 JVM 内存

image.png 背景 前段时间业务研发反馈说是他的应用内存使用率很高&#xff0c;导致频繁的重启&#xff0c;让我排查下是怎么回事&#xff1b; 在这之前我也没怎么在意过这个问题&#xff0c;正好这次排查分析的过程做一个记录。 首先我查看了监控面板里的 Pod 监控&#xff1a;…

奶爸式Swagger教学

目录 一、导入依赖 二、SwaggerConfig基础编程 三、Swagger 常用说明注解 1.API 2.ApiOperation 3.ApiModel 4.ApiModelProperty 5.ApiParam 6.ApilmplicitParam 一、导入依赖 <!--开启Swagger --><!-- https://mvnrepository.com/artifact/io.springf…

Vector - 常用CAN工具 - CANoe软件安装常见问题

目录 一、确认电脑系统盘是否满足要求&#xff0c;CANoe软件对PC要求如下&#xff1a; 二、确认软件安装包完整 三、确认软件与电脑系统之间的兼容性 四、关闭后台程序 五、安装软件 六、清空临时文件夹 七、尝试在其他电脑上安装 一、确认电脑系统盘是否满足要求&#…

STM32 调试TM7711驱动原理图驱动代码

本文使用工程代码如下 (1条消息) STM32调试TM7711驱动原理图驱动源代码&#xff0c;参考如下博客&#xff0c;有原理图设计资源-CSDN文库 背景 项目选用TM7711&#xff0c;还是很令人吃惊的&#xff0c;主要是有如下几个理由 第一就是便宜 第二精度高 STM32的ADC精度不够…

微生物常见统计检验方法比较及选择

谷禾健康 微生物组经由二代测序分析得到庞大数据结果&#xff0c;其中包括OTU/ASV表&#xff0c;物种丰度表&#xff0c;alpha多样性、beta多样性指数&#xff0c;代谢功能预测丰度表等&#xff0c;这些数据构成了微生物组的变量&#xff0c;大量数据构成了高纬度数据信息。 针…

我的『1024』创作纪念日

目录 ◐机缘 ◑收获 ◐日常 ◑成就 ◐憧憬 记得&#xff0c;2020年07月22日我撰写了第1篇技术博客&#xff1a;《遗传算法实例解析》在这平凡的一天&#xff0c;我赋予了它不平凡的意义也许是立志成为一名专业T作者、也许是记录一段刚实践的经验但在那一刻&#xff0c;我已…

傅里叶分析的历史背景

目录 1. Fourier级数(三角级数)的历史背景 2. 圆和复平面 3. Fourier的大胆猜想 1. Fourier级数(三角级数)的历史背景 自古以来&#xff0c;圆形一直是(现在仍然是&#xff09;最简单的抽象理解形状。您只需要一个中心点和一个半径就可以了。圆上的所有点与圆心的距离都是固定…