vue 使用 createjs 绘制扇形

导入 createjs 依赖

npm install createjs-module

基本使用

<template>
  <div class="circle">
    <canvas id="canvas" height="200" width="200"></canvas>
  </div>
</template>
<script>
import createjs from "createjs-module";// 引入createjs
export default{
	data(){
		timer:"",
		angle: 320,//角度
	},
	mounted() {
	   this.drawArc(100, 100, 100, a, 0, "red");
 	},
	methods:{
		// x,y: 位置, angle: 角度, start: 开始角度, color: 绘制的颜色 
		drawArc(x,y,r,angle,start,color){
			let canvas = document.getElementById("canvas");
      		let stage = new createjs.Stage(canvas);
      		let arc = new createjs.Shape();
      		arc.graphics.clear();
	      	arc.graphics.beginFill(color);
	      	arc.graphics.moveTo(x, y);
	      	
			angle = (Math.abs(angle) > 360) ? 360 : angle;
			//这里的起始角度和扇形弧度都用角度表示,由于三角函数用的弧度制,这里先转换为弧度。
      		start= start* Math.PI / 180;
      		
      		let x1 = x + r * Math.cos(start);
		    let y1 = y + r * Math.sin(start);
		    let endAngle = start + angle * Math.PI / 180;
			
			arc.graphics.lineTo(x1, y1);
      		arc.graphics.arc(x, y, r, start, endAngle, false);
      		if (angle != 360) {
	        	arc.graphics.lineTo(x, y);
	      	}
	        arc.graphics.endFill();
		    stage.addChild(arc);// 添加到舞台上
		    stage.update();// 刷新舞台
		}
	}
}
</script>

添加动态效果秩序在绘制的时候添加一个定时器( 如有更好方法可在评论区提出 ‾◡◝ )

mounted(){
	let i = 0;
	this.timer = setInterval(()=>{
		i++;
		if(a === this.angle){
			clearInterval(this.timer);
		}
		this.drawArc(100, 100, 100, a, 0, "red");
	},10)
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值