uni-app进度条

server/2024/12/23 6:30:50/
javascript"><template><view><canvas canvas-id="ring" id="ring"  style="width: 200px; height: 180px;"><!-- <p>抱歉,您的浏览器不支持canvas</p> --></canvas></view>
</template><script>export default{data() {return{}},props: {score: {type: Number}},mounted(){console.log( this.score,' this.score')setTimeout(co=>{this.circleProgressbar('ring', 200, 180, this.score)},500)},/*** 组件的方法列表*/methods: {circleProgressbar(canvasId, width, height, angle) {var context = uni.createCanvasContext(canvasId, this);// var context = wx.createCanvasContext(canvasId, this)// 外层圆环context.beginPath()context.arc(width / 2, height - 80, width / 2 - 20, 0.8 * Math.PI, 2.2 * Math.PI)context.setLineWidth(16)context.setLineCap('round')context.setStrokeStyle('rgba(255,255,255,0.1)')context.stroke()// 外层进度圆环context.beginPath()context.arc(width / 2, height - 80, width / 2 - 20, 0.8 * Math.PI, (1.4 * (angle / 100) + 0.8).toFixed(1) * Math.PI)context.setLineWidth(10)context.setLineCap('round')context.setStrokeStyle('#fff')context.stroke()// 指示器const xAxis = Math.cos(Math.PI * ((1.4 * (angle / 100) + 0.8).toFixed(1) - 0.005)) * (width / 2 - 20)const yAxis = Math.sin(Math.PI * ((1.4 * (angle / 100) + 0.8).toFixed(1) - 0.005)) * (width / 2 - 20)context.beginPath()context.arc(width / 2 + xAxis, height - 80 + yAxis, 10, 0, 2 * Math.PI)context.setFillStyle('#fff')context.fill()// 指示器内环const xInAxis = Math.cos(Math.PI * ((1.4 * (angle / 100) + 0.8).toFixed(1) - 0.005)) * (width / 2 - 20)const yInAxis = Math.sin(Math.PI * ((1.4 * (angle / 100) + 0.8).toFixed(1) - 0.005)) * (width / 2 - 20)context.beginPath()context.arc(width / 2 + xAxis, height - 80 + yAxis, 6, 0, 2 * Math.PI)context.setFillStyle('#2A8FFF')context.fill()// 文本const textY = Math.sin(Math.PI * 2 / 360 * (1.8 * (100 + 15))) * (width / 2 - 20)context.beginPath()context.setFillStyle('#fff')context.setFontSize(20)context.setTextAlign('center')context.setTextBaseline('middle')context.fillText('匹配度', width / 2, height - 20)context.font = `normal bold ${40}px sans-serif`;context.fillText(angle+"%", width / 2, height - 50 + textY)context.draw()},}}</script>

效果如下:


http://www.ppmy.cn/server/123131.html

相关文章

Go语言中的并发编程

Go语言中的并发编程Go语言中的并发编程主要依赖于两个核心概念&#xff1a;goroutine 和 channel。1. Goroutinegoroutine 的特点结束 goroutine2. Channel创建 Channel发送和接收数据Channel 的类型使用 select 语句简单的多个 goroutine使用 WaitGroup 等待所有 goroutine 完…

阿里云oss配置

阿里云oss配置 我们可以使用阿里云的对象存储服务来存储图片&#xff0c;首先我们要注册阿里云的账号登录后可以免费试用OSS服务。 之后我们打开控制台&#xff0c;选择对象存储服务&#xff0c;就看到我们下面的画面&#xff1a; 我们点击创建Bucket,之后就会出现如下图界面…

微服务常见面试题总结

文章目录 1 概念1.1 你对微服务是怎么理解的1.2 微服务带来了哪些挑战&#xff1f;1.3 说下微服务有哪些组件&#xff1f;&#x1f525; 2 注册中心2.1 注册中心有什么用&#xff1f;&#x1f525;2.2 SpringCloud可以选择哪些注册中心&#xff1f;2.3 说下Eureka 和 Nacos的区…

网络安全TARA分析

一、 什么是TARA分析&#xff1f; 威胁分析和风险评估&#xff08;Threat Analysis and Risk Assessment&#xff09; 通过识别整车/项目的网络安全资产&#xff0c;分析其中的潜在的安全威胁&#xff0c;综合考虑威胁攻击可行性、危害影响等因素&#xff0c;识别出整车/项目可…

基于Hive和Hadoop的白酒分析系统

本项目是一个基于大数据技术的白酒分析系统&#xff0c;旨在为用户提供全面的白酒市场信息和深入的价格分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 Spark 为核…

简站wordpress主题产品多图ACF插件设置方法

此教程仅适用于演示站有产品多图的主题&#xff0c;演示站没有产品多图的主题&#xff0c;就别往下看了&#xff0c;省得浪费时间。 1、给产品添加轮播图 简站wordpress主题有多个产品图的主题&#xff0c;添加产品轮播图的具体方法如下&#xff1a; 1.2、选择产品分类 添加…

plt绘图日常训练

目录 练习1练习2练习3练习4练习5 前几节课已经介绍plt常用的函数&#xff0c;这节课主要是一些练习&#xff0c;方便大家熟悉 练习1 主要学习plt.figure()及plt的基本操作 import matplotlib.pyplot as plt import numpy as npxnp.linspace(-3,3,50) y1 2*x1 y2x**2plt.figur…

RabbitMQ 队列之战:Classic 和 Quorum 的性能洞察

RabbitMQ 是一个功能强大且广泛使用的消息代理&#xff0c;它通过处理消息的传输、存储和交付来促进分布式应用程序之间的通信。作为消息代理&#xff0c;RabbitMQ 充当生产者&#xff08;发送消息的应用程序&#xff09;和使用者&#xff08;接收消息的应用程序&#xff09;之…