<template> <div> <canvas id="wall" width="800" height="400" tabindex="0"/> </div> </template> <script lang="ts"> import {SGraphScene, SGraphView} from "@persagy-web/graph/"; import {SVirtualWallItem} from "@persagy-web/big/lib/items/floor/SVirtualWallItem"; import {Component, Vue} from "vue-property-decorator"; @Component export default class VirtualWallCanvas extends Vue { view: SGraphView | undefined; // 图中靠上位置的黑色矩形轮廓 outline1 = [[{X: 12000, Y: 1000}, {X: 12000, Y: 3000}, {X: 1000, Y: 3000}, {X: 1000, Y: 1000}]]; // 图中靠下位置的,中间掏洞 outline2 = [ [{X: 12000, Y: -3000}, {X: 12000, Y: -5000}, {X: 1000, Y: -5000}, {X: 10, Y: -3000}], [{X: 2000, Y: -4000}, {X: 2000, Y: -4500}, {X: 10000, Y: -4500}, {X: 10000, Y: -4000}] ]; mounted() { this.init(); }; init() { this.view = new SGraphView('wall'); const scene = new SGraphScene(); this.view.scene = scene; // 只模拟了轮廓数据 const item = new SVirtualWallItem(null, {OutLine: this.outline1}); scene.addItem(item); // 只模拟了轮廓数据 const item2 = new SVirtualWallItem(null, {OutLine: this.outline2}); scene.addItem(item2); this.view.fitSceneToView(); this.view.scalable = false; } } </script> <style scoped> </style>