vue3 canvas绘制平面图
时间: 2025-06-20 22:42:18 浏览: 19
### 使用 Vue3 和 Canvas 绘制平面图
#### 创建 Vue3 项目并引入 Canvas
为了在 Vue3 中使用 Canvas 进行绘图,首先需要创建一个新的 Vue3 项目。可以利用 `Vue CLI` 或者 Vite 来快速搭建环境。
安装完成后,在组件模板内添加 `<canvas>` 元素:
```html
<template>
<div id="app">
<canvas ref="drawingCanvas"></canvas>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue'
const drawingCanvas = ref(null)
onMounted(() => {
const canvas = drawingCanvas.value;
if (!canvas) return;
let context = canvas.getContext('2d');
// 设置画布大小
canvas.width = window.innerWidth * 0.8;
canvas.height = window.innerHeight * 0.8;
drawFloorPlan(context);
})
function drawFloorPlan(ctx){
// 定义墙壁颜色
ctx.fillStyle = '#D3D3D3';
// 开始路径定义房间轮廓
ctx.beginPath();
ctx.moveTo(50, 50); // 左上角起点
ctx.lineTo(450, 50); // 上边线到右端点
ctx.lineTo(450, 350); // 右侧垂直线下移
ctx.lineTo(50, 350); // 下方水平线回到左侧
ctx.closePath(); // 关闭路径形成封闭区域
// 填充矩形表示地板
ctx.fill();
// 添加门框细节
ctx.strokeStyle = "#000";
ctx.lineWidth = 5;
ctx.strokeRect(200, 190, 100, 60);
// 描绘窗户
ctx.clearRect(100, 100, 50, 50);
}
</script>
```
此代码片段展示了如何初始化一个简单的室内布局草图[^3]。通过调整坐标参数以及调用不同的绘画方法(如填充、描边),可以根据具体需求自定义绘制更复杂的结构。
对于更加动态的效果或是复杂图形的操作,还可以借鉴 Fabric.js 的功能特性来简化开发过程[^1]。例如,Fabric 提供了对象管理机制,使得处理多个可移动、旋转的对象变得容易得多。
另外,当涉及到地理信息系统(GIS)相关的地图展示时,则可能需要用到 OpenLayers 等库配合 Canvas 实现特定的功能[^2]。不过这超出了单纯绘制静态平面图的需求范围。
阅读全文
相关推荐


















