python绘制立体扇形_认识canvas(画扇形 动态画圆弧(requestAnimationFrame结合settimeout做的动画)、画表盘)...
最近做的两个项目都是关于canvas的,做完整理一下,方便下一次使用,在vue里写的小demo,
功能:画扇形 动态画圆弧(requestAnimationFrame结合settimeout做的动画)、画表盘
1、创建一个ctx对象
2、begain()方法开始画笔
3、fillStyple设置填充颜色 [strokeStyle]
4、arc(x,y,r,startAngle,endAngle,direction) true是顺时针 false是逆时针 默认是逆时针
5、closePath()结束画笔 开始填充fill() [没有closePah直接stroke()]
mounted () {
this.$nextTick(() => {
/*
1、创建一个ctx对象
2、begain()方法开始画笔
3、fillStyple设置填充颜色 [strokeStyle]
4、arc(x,y,r,startAngle,endAngle,direction) true是顺时针 false是逆时针 默认是逆时针
5、closePath()结束画笔 开始填充fill() [没有closePah直接stroke()]
*/
// 封装画扇形
let ctx = this.$refs.can01.getContext('2d')
this.drawFanShapes(ctx, 400, 400, 0, 0, 150, 'red', false)
this.drawFanShapes(ctx, 400, 400, 0, 120, 200, 'green', false)
// 动态画圆弧
let ctx02 = this.$refs.can02.getContext('2d')
this.drawArc(ctx02, 400, 400, 100, 0, 360, '#ddd', 10, 'round', false)
let globalAni = null
let endAngle = 0
let _self = this
function animate () {
let timer = setTimeout(() => {
globalAni = requestAnimationFrame(animate)
if (endAngle < 270) {
endAngle += 10
_self.drawArc(ctx02, 400, 400, 100, 0, endAngle, 'green', 10, 'round', false)
} else {
clearTimeout(timer)
cancelAnimationFrame(globalAni)
}
}, 20)
}
globalAni = requestAnimationFrame(animate)
// 画时钟表盘
let ctx03 = this.$refs.can03.getContext('2d')
this.drawClock(ctx03, 200, 200, 60, -180 - 160, 1, 'red')
})
},
methods: {
// 画表刻度(ctx,x,y,刻度数,startX, endY,lineWidth, strokeColor)
drawClock (ctx, x, y, num, startX, endY, lineWidth, strokeColor) {
for (let i = 0; i < 60; i++) {
ctx.save()
ctx.lineWidth = 1
ctx.strokeStyle = 'red'
ctx.translate(200, 200)
ctx.rotate(6 * i * Math.PI / 180)
ctx.beginPath()
ctx.moveTo(0, -180)
ctx.lineTo(0, -160)
ctx.stroke()
ctx.restore()
}
},
// 画扇形(ctx,width,height,半径[0自动算半径],开始角度,结束角度,填充颜色,方向)
drawArc (ctx, width, height, radius, startAngle, endAngle, strokeColor, lineWidth, round, direction) {
ctx.save()
let basic = {
x: width / 2,
y: height / 2,
r: (!radius) ? (width - lineWidth) / 2 : radius,
startAngle: (startAngle / 180) * Math.PI,
endAngle: (endAngle / 180) * Math.PI,
direction: direction || false
}
ctx.beginPath()
ctx.strokeStyle = strokeColor
ctx.lineWidth = lineWidth
ctx.arc(basic.x, basic.y, basic.r, basic.startAngle, basic.endAngle, direction)
ctx.lineCap = round
ctx.stroke()
ctx.restore()
},
// 画圆弧(ctx,x,y,半径[0自动算半径],开始角度,结束角度,画的颜色,是否圆角,方向)
drawFanShapes (ctx, width, height, radius, startAngle, endAngle, fillColor, direction) {
let basic = {
x: width / 2,
y: height / 2,
r: (!radius) ? width / 2 : radius,
startAngle: (startAngle / 180) * Math.PI,
endAngle: (endAngle / 180) * Math.PI,
direction: direction || false
}
ctx.beginPath()
ctx.fillStyle = fillColor
ctx.moveTo(basic.x, basic.y)
ctx.arc(basic.x, basic.y, basic.r, basic.startAngle, basic.endAngle, direction)
ctx.closePath()
ctx.fill()
}
}
python绘制立体扇形_认识canvas(画扇形 动态画圆弧(requestAnimationFrame结合settimeout做的动画)、画表盘)...相关推荐
- python绘制立体扇形_Python如何用Matplotlib画出优雅的扇形图?
colors = [plt.cm.Accent(i) for i in np.linspace(0, 1, country_metrics.shape[0])] #制作颜色,从0到1的区域内均 ...
- python绘制反比例函数_怎样在几何画板中画可变的反比例函数
原标题:怎样在几何画板中画可变的反比例函数 反比例函数是中学时代必学的一种函数,其图像是是双曲线,是用平滑的曲线把一些特殊的点连接起来的,掌握反比例函数的图像是中学数学的重点和难点.作为好用的绘图工具 ...
- python绘制三维曲线图_机器学习的绘图库有哪些?如何运用python绘制机器学习常见曲线?...
专栏引荐 绘图的变量 单变量 查看单变量最方便的无疑是displot()函数,默许绘制一个直方图,并你核密度估计(KDE) sns.set(color_codes=True) np.random.se ...
- python绘制樱花洒落_用python绘制樱花树
黑夜可能漫长,但总会迎来温暖的阳光,三月如期而至,武大的樱花又一次盛开.那么今天就一起来看看怎样在python中画一棵美丽的樱花树- 说到用python画画,那当然就是小乌龟Turtle库了,为啥是t ...
- python绘制混淆矩阵_如何实现python绘制混淆矩阵?
大家从python基础到如今的入门,想必都对python有一定基础,今天小编给大家带来一个关于python的高阶内容--绘制混淆矩阵,一起来看下吧~ 介绍: 混淆矩阵通过表示正确/不正确标签的计数来表 ...
- 用python绘制熊猫图案_使用熊猫在Python中绘制数据
用python绘制熊猫图案 在关于基于Python的绘图库的系列文章中 ,我们将对使用pandas(一种非常流行的Python数据操作库)的绘图进行概念性的研究. Pandas是Python中用于可缩 ...
- layui导入 加载动画_厉害了!这个免费神器帮你无脑做施工动画
你好,这里是 BIMBOX.今天诚意给你安利一款好用免费的施工动画软件. 很多施工企业在建完模型后,都会用模拟动画的形式展示施工方案流程.做施工方案可视化评审.质量安全交底等.施工模拟动画这两年也成 ...
- python绘制回形纹_用python画百变风味月饼
举头望明月,低头思故乡,不知道为什么,现在总是对儿时的事有感而发,回不到的过去,唯有珍惜当下,中秋快乐. 1.首先我们需要导入画图和数据计算的相关库. import numpy as np from ...
- python绘制彩色同心圆_如何用python画同心圆
Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发.Python在设计上坚持了 ...
最新文章
- 2011-11-27
- 学习3D视觉,圈子很重要!!!
- iphone分辨率_目前最值得入手的三款安卓机!流畅度堪比iPhone,用三五年不过时...
- 芯片开发者46%年收入达30万元,7纳米制程以内开发者30%超50万元
- C\C++ 获取当前路径
- BugkuCTF-MISC题贝斯手
- python中用函数设计栈的括号匹配问题_数据结构和算法(Python版):利用栈(Stack)实现括号的匹配问题...
- 【OJ】洛谷红题题解锦集(Java语言描述)
- django自定义模板标签,通过键获取字典的值,屏蔽姓名等隐蔽信息并调用展示到页面上
- 5005.boost之asio简单反射型服务器客户端
- [集成IronPython] 使用Module扩展IronPython
- iOS编程高性能之路-基于pthread的线程池
- 水经注全球离线地图数据3.0即将发布
- 共享计算机用户帐户限制怎么办,win7系统使用共享功能被提示用户账户限制的解决方法...
- CF Stressful training优先队列加二分搜答案
- 15-面向对象的程序设计--no
- mybatis和mybatis-plus集成springboot的配置区别
- 互联网那些事儿!4年前 VS 4年后
- ChatGPT 学习与使用总结
- bimface 生成曲线路劲
热门文章
- 中考大数据大连79_中考大数据 | 大连各初中2017中考成绩统计②(理附两校区、海附)...
- Ymodem传输详解
- 面试官:为什么 Activity.finish() 之后 10s 才 onDestroy ?
- 兆比特每秒和兆字节每秒_网速中的“KB”“MB”“s”等字母都是啥意思,读啥,比如兆这样?...
- mysql表结构以及数据导入postgresql常见问题
- 西红柿营养价值高 保健养生常梳头
- PHP之美团餐饮系统,订单推送,订单同步,订单消息回调
- Typora+Picgo+Gitee搭建免费云图床
- linux环境 彻底卸载jenkins方法
- 新的字符串拼接(QDUOJ)