vue使用canvas绘制一个指南针
时间: 2024-02-26 22:57:37 浏览: 236
【JavaScript源代码】vue+canvas绘制时间轴的方法.docx
5星 · 资源好评率100%
好的,这里是使用 Vue 和 Canvas 绘制指南针的示例代码:
```
<template>
<div>
<canvas ref="canvas" width="200" height="200"></canvas>
</div>
</template>
<script>
export default {
mounted() {
const canvas = this.$refs.canvas;
const ctx = canvas.getContext('2d');
const centerX = canvas.width / 2;
const centerY = canvas.height / 2;
const radius = 80;
// 绘制圆形背景
ctx.beginPath();
ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI);
ctx.fillStyle = '#fff';
ctx.fill();
ctx.lineWidth = 2;
ctx.strokeStyle = '#000';
ctx.stroke();
// 绘制指针
ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.lineTo(centerX + radius * Math.cos(Math.PI / 3), centerY + radius * Math.sin(Math.PI / 3));
ctx.lineTo(centerX + radius * Math.cos(5 * Math.PI / 3), centerY + radius * Math.sin(5 * Math.PI / 3));
ctx.closePath();
ctx.fillStyle = '#f00';
ctx.fill();
}
}
</script>
```
这段代码的实现思路是:在组件的 `mounted` 钩子函数中,获取到 Canvas 的上下文,然后按照指南针的形状绘制出圆形背景和三角形指针。其中,圆形背景使用 `arc` 方法绘制,三角形指针使用 `lineTo` 方法绘制。具体绘制过程可以参考代码中的注释。
阅读全文