svg画扇形进度动画

有人问下面这种图好怎么画?svg

想了下,确实用svg可以,可以这么设计

外层是一个容器放置内容,并且设置overflow:hidden, 内层放一个半径大于容器宽高一半的svg,并定位居中,然后svg画扇形,动态调整path来画不同程度的扇形即可。

那首先要学习一下svg怎么画一个扇形了?如下,画了一个四分之一的圆,即扇形

<svg width="200" height="200" viewBox="0 0 200 200">
    <path d="M 100,100 L100,0 A100,100 0 0 1 200,100Z" fill="rgba(163,163,163,0.5)" />
  </svg>

svg基础知识就不说了,扇形的path用到了弧线arc,格式如下:

A rx ry x-axis-rotation large-arc-flag sweep-flag x y

结合上面代码,显示Move到(100,100)即圆心位置,然后画直线到(100,0),开始画弧线, A跟着的是椭圆的两个半径,扇形两个取值一样(100,100)

最后的x,y 指的是另一个顶点坐标,根据几何图形来算坐标应该是:

x = rx + r*sinθ

y = ry - r*cosθ

所以其实基本上只要有rx、ry以及扇形弧度角θ,就能画出对于的扇形。至于x-axis-rotation、large-arc-flag、sweep-flag,只要考虑large-arc-flag取0还是1即可。

当θ角度大于180°时,取 1 即可。

再细化一下,这里用来表示0-100的进度,0-100怎么转换成弧度θ呢?或者如何计算呢?

θ = 进度值/100 × 2π

0-100,相当于0°-360°,根据数学知识,我们知道360°的弧度就是2π,因此上述公式就可以算出θ值,再用Math.cos和Math.sin就能算出三角函数值。

效果:

https://codepen.io/shellphon-the-encoder/pen/VwNoXEp 

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

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

相关文章

如何评估大模型音频理解能力-从Gemini说起

Gemini家族包含Ultra、Pro和Nano三种大小的模型是谷歌开发的大型多模态人工智能模型&#xff0c;它在人工智能的多模态领域实现了重大突破&#xff0c;结合了语言、图像、音频和视频的理解能力。 Gemini的性能评估情况如下&#xff1a; Gemini模型的评估的具体指标从文本理解能…

量化地形处理

1: 量化地形切片&#xff1a;GDAL查询数据&#xff1b;CTB算法转mesh&#xff1b;高度图需要和周围高度图边界做高度融合&#xff0c;四顶点需要做平均值融合&#xff1b;法线想要在前端显示正确必须将mesh坐标转为4326或者3857&#xff1b; 这个使用开源即可&#xff1a;cesi…

【进程间通信】共享内存

文章目录 共享内存常用的接口指令利用命名管道实现同步机制总结 System V的IPC资源的生命周期都是随内核的。 共享内存 共享内存也是为了进程间进行通信的&#xff0c;因为进程间具有独立性&#xff0c;通信的本质是两个不同的进程看到同一份公共资源&#xff0c;所以共享内存…

数仓开发,分层(ods,dw,app层)

1、从数据源中导入源数据&#xff0c;到ODS表&#xff0c;作为事实表的数据 2、可以根据自己的开发设计&#xff0c;是否单独分支出来一个维度表&#xff0c;帮助和协助处理源数据表ODS层 和需求层ADS&#xff08;APP&#xff09;层 3、现在我们有了一个事实ODS层&#xff0…

【R语言】边缘概率密度图

边缘概率密度图是一种在多变量数据分析中常用的图形工具&#xff0c;用于显示每个单独变量的概率密度估计。它通常用于散点图的边缘&#xff0c;以便更好地理解单个变量的分布情况&#xff0c;同时保留了散点图的相关性信息。 在边缘概率密度图中&#xff0c;每个变量的概率密度…

Linux-信号保存

1. 概念 进程执行信号的处理动作&#xff0c;称为 信号递达&#xff08;Delivery&#xff09; 信号从产生到递达之间的状态&#xff0c;称为 信号未决&#xff08;Pending&#xff09; 进程可以选择 阻塞&#xff08;Block&#xff09;某个信号 过程&#xff1a; 信号产生 ——…

Java的BIO/NIO/AIO

1. Java中的BIO、NIO和AIO的基本概念及其主要区别 BIO (Blocking I/O): 传统的同步阻塞I/O模型。每个连接创建成功后都需要一个线程来处理&#xff0c;如果连接没有数据可读&#xff0c;则线程会阻塞在读操作上。这种模型简单易理解&#xff0c;但在高并发环境下会消耗大量系统…

苹果Mac用户下载VS Code(Universal、Intel Chip、Apple Silicon)哪个版本?

苹果macOS用户既可以下载通用版&#xff08;Universal&#xff09;&#xff0c;软件将自动检测用户的处理器并进行适配。 也可以根据型号下载对应CPU的版本&#xff1a; 使用Intel CPU的Mac电脑可下载Intel Chip版本&#xff1b; 使用苹果自研M系列CPU的Mac电脑下载Apple Si…

Animation: (1) animatedline

目录 示例1&#xff1a;显示线条动画示例2&#xff1a;指定动画线条颜色示例3&#xff1a;指定日期时间和持续时间值示例4&#xff1a;设置最大点数示例5&#xff1a;批量添加点以生成快速动画示例6&#xff1a;使用drawnow limitrate创建快速动画示例7&#xff1a;定时更新屏幕…

如何获取中国各省市区的边界

前几个专栏我介绍了获取各流域边界的方法&#xff0c;可参见以下的文章&#xff1a; 格林兰岛和南极洲的流域边界文件下载-CSDN博客 读取shp文件中的经纬度坐标-CSDN博客 读取谷歌地球的kml文件中的经纬度坐标_谷歌地球识别穿过矿区的公路,并获取公路的经纬度坐标-CSDN博客 关于…

docker-compose部署gitlab

需要提前安装docker和docker-compose环境 参考&#xff1a;部署docker-ce_安装部署docker-ce-CSDN博客 参考&#xff1a;docker-compose部署_docker compose部署本地tar-CSDN博客 创建gitlab的数据存放目录 mkdir /opt/gitlab && cd mkdir /opt/gitlab mkdir {conf…

算法学习Day2——单调栈习题

第一题&#xff0c;合并球 题解&#xff1a;一开始写了一次暴力双循环&#xff0c;直接O(n^2)严重超时&#xff0c;后面于是又想到了O(n)时间复杂度的链表&#xff0c;但是还是卡在 最后一个数据会TLE&#xff0c;我也是高兴的拍起来安塞腰鼓和华氏护肤水&#xff0c;后面学长给…

内网安全【2】——域防火墙/入站出站规则/不出网隧道上线/组策略对象同步

-隧道技术&#xff1a;解决不出网协议上线的问题(利用出网协议进行封装出网)&#xff08;网络里面有网络防护&#xff0c;防火墙设置让你不能正常访问网络 但有些又能正常访问&#xff0c;利用不同的协议tcp udp 以及连接的方向&#xff1a;正向、反向&#xff09; -代理技术&…

《ESP8266通信指南》13-Lua 简单入门(打印数据)

往期 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP82…

数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储(20240508)

数据库管理185期 2024-05-08 数据库管理-第185期 23ai:一套关系型数据干掉多套JSON存储&#xff08;20240508&#xff09;1 上期示例说明2 两个参数2.1 NEST/UNNEST2.2 CHECK/NOCHECK 3 一数多用3.1 以用户维度输出订单信息3.2 以产品维度3.3 以产品种类维度 4 美化输出总结 数…

出差——蓝桥杯十三届2022国赛大学B组真题

问题分析 该题属于枚举类型&#xff0c;遍历所有情况选出符合条件的即可。因为只需要派两个人&#xff0c;因此采用两层循环遍历每一种情况。 AC_Code #include <bits/stdc.h> using namespace std; string str;//选择的两人 bool ok(){if(str.find("A")!-1…

SwiGLU激活函数

SwiGLU激活函数已经成为LLM的标配了。它是GLU的变体&#xff0c;公式如下&#xff1a; SwiGLU ⁡ ( x , W , V , b , c , β ) Swish ⁡ β ( x W b ) ⊗ ( x V c ) \operatorname{SwiGLU}(x, W, V, b, c, \beta)\operatorname{Swish}_\beta(x Wb) \otimes(x Vc) SwiGLU(x,…

CSS---复合选择器和元素显示模式(三)

一、CSS的复合选择器 1.1 什么是复合选择器 在CSS中&#xff0c;可以根据选择器的类型把选择器分为基础选择器和复合选择器&#xff0c;复合选择器是建立在基础选择器之上&#xff0c;对基本选择器进行组合形成的。 复合选择器是由两个或多个基础选择器连写组成&#xff0c;它…

从Python整数变量内存大小占用28字节谈起

实验结果 本机环境64位Python 3.12 内存布局图 0 4 8 12 16 20 24 28 |----------|----------|----------|----------|----------|----------|----------| | ob_refcnt | ob_type | ob_digit | …

【大数据】分布式数据库HBase下载安装教程

目录 1.下载安装 2.配置 2.1.启动hadoop 2.2.单机模式 2.3.伪分布式集群 1.下载安装 HBase和Hadoop之间有版本对应关系&#xff0c;之前用的hadoop是3.1.3&#xff0c;选择的HBase的版本是2.2.X。 下载地址&#xff1a; Index of /dist/hbase 配置环境变量&#xff1a…