1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <template>
- <div>
- <canvas id="wall" width="800" height="400" tabindex="0" />
- </div>
- </template>
- <script lang="ts">
- import { SGraphScene, SGraphView } from "@persagy-web/graph/";
- import { SSpaceItem } from "@persagy-web/big/lib/items/floor/SSpaceItem";
- import { Component, Vue } from "vue-property-decorator";
- @Component
- export default class SpaceCanvas extends Vue {
- view: SGraphView | undefined;
- // 图中靠上位置的黑色矩形轮廓
- outline1 = [[{X: 120, Y: 10}, {X: 120, Y: 30}, {X: 10, Y: 30}, {X: 10, Y: 10}]];
- // 图中靠下位置的,中间掏洞
- outline2 = [
- [{X: 120, Y: -30}, {X: 120, Y: -50}, {X: 10, Y: -50}, {X: 10, Y: -30}],
- [{X: 20, Y: -40}, {X: 20, Y: -45}, {X: 100, Y: -45}, {X: 100, Y: -40}]
- ];
- /**
- * 页面挂载
- */
- mounted(): void {
- this.init();
- };
- init(): void {
- this.view = new SGraphView('wall');
- const scene = new SGraphScene();
- this.view.scene = scene;
- // 只模拟了轮廓数据
- // @ts-ignore
- const item = new SSpaceItem(null, {OutLine: this.outline1, Name: '测试', Location: {Points: [{X: 65, Y: 20}]}});
- scene.addItem(item);
- // 只模拟了轮廓数据
- // @ts-ignore
- const item2 = new SSpaceItem(null,{OutLine:this.outline2});
- scene.addItem(item2);
- this.view.fitSceneToView();
- this.view.scalable = false;
- }
- }
- </script>
- <style scoped>
- </style>
|