【国产开源可视化引擎Meta2d.js】快速上手

打印 上一主题 下一主题

主题 803|帖子 803|积分 2409

提示
初始化引擎后,会天生一个 meta2d 全局对象,可直接使用。
调用meta2d前,需要确保meta2d地点的父容器element元素位置巨细已经渲染完成。如果样式或css(特别是css动画)没有初始化完成,大概会报错(宽度为0)或影响表现。

划重点
全部js 语法均可打开 2D可视化编辑器 ,在浏览器控制台直接运行查看结果
如何学习


  • 跟着“快速上手”文档做一遍,先有个总体认知
  • 看一遍我们的视频教程,有个全面熟悉
  • 多学习示例教程等
官方示例:https://github.com/le5le-com/meta2d.js/tree/main/examples
meta2d.js: The meta2d.js is real-time data exchange and interactive web 2D engine. Developers are able to build Web SCADA, IoT, Digital twins and so on. Meta2d.js是一个实时数据响应和交互的2d引擎,可用于Web组态,物联网,数字孪生等场景。 - Gitee.com
多找网上示例。找不到?你也可以多写学习心得,和各人一起交流学习。

  • 多查阅Meta2d.js API
  • 加入乐吾乐可视化交流群:
微信号:le5le-service,备注进交流群

在浏览器中体验


  • 打开乐吾乐2D可视化编辑器
  • F12打开浏览器控制台
  • 在控制台输入
  1. // 定义一个pen,矩形
  2. const pen = {
  3.   name: "rectangle",
  4.   text: "矩形",
  5.   x: 100,
  6.   y: 100,
  7.   width: 100,
  8.   height: 100,
  9. };
  10. meta2d.addPen(pen);
复制代码
Copy
在 ES5 中使用


  • 获取 meta2d.js
  1. npm install meta2d.js --save
复制代码

  • 拷贝 node_modules/meta2d.js/meta2d.js 到静态资源目录。比例 index.html 地点目录
  • 编写 index.html
  1. <!DOCTYPE html>
  2. <html>   
  3.   <head>
  4.     <title i18n>乐吾乐 Meta2d</title>
  5.     <meta charset="UTF-8" />
  6.   </head>  
  7.   <body>   
  8.     <div id="meta2d" style="height:100vh;width:100vw;"></div>
  9.     <script src="meta2d.js"></script>
  10.     <script src="index.js"></script>  
  11.   </body>
  12. </html>
复制代码
Copy

  • 编写 index.js 加载 meta2d.js
  1. var meta2d = new Meta2d("meta2d");
  2. registerCommonDiagram(); //注册图形库
  3. // Get the json data
  4. // ...
  5. // Open the json
  6. meta2d.open(json);
复制代码
Copy
参考例子: https://github.com/le5le-com/meta2d.js/tree/master/examples/es5
在 Vue3 中使用


  • 获取 @meta2d/core 等库
  1. npm install @meta2d/core --save
  2. // Option
  3. npm install @meta2d/activity-diagram --save
  4. npm install @meta2d/chart-diagram --save
  5. npm install @meta2d/class-diagram --save
  6. npm install @meta2d/flow-diagram --save
  7. npm install @meta2d/fta-diagram --save
  8. npm install @meta2d/form-diagram --save
  9. npm install @meta2d/sequence-diagram --save
  10. npm install @meta2d/le5le-charts --save
  11. npm install @meta2d/svg --save
复制代码

  • 编写 Vue
  1. <template>   
  2.   <div class="main">     
  3.     <div id="meta2d"></div>  
  4.   </div>
  5. </template>
复制代码
Copy

  • 编写 js 加载 meta2d
  1. import {         Options,         Meta2d     } from '@meta2d/core';
  2. import {     flowPens } from '@meta2d/flow-diagram';
  3. import {     activityDiagram } from '@meta2d/activity-diagram';
  4. import {     classPens } from '@meta2d/class-diagram';
  5. import {     sequencePens,     sequencePensbyCtx } from '@meta2d/sequence-diagram';
  6. import {     defineComponent,     onMounted,     onUnmounted,     ref } from 'vue';
  7. import { formPens } from '@meta2d/form-diagram';
  8. declare const window: any;
  9. declare const meta2d: Meta2d;
  10. export default defineComponent({     
  11.   name: 'Meta2dCanvas',     
  12.   components: {},     
  13.   setup() {         
  14.     const meta2dOptions: Options = {};  
  15.     onMounted(() => {        
  16.       new Meta2d('meta2d', meta2dOptions);   
  17.       meta2d.register(flowPens());   
  18.       meta2d.register(activityDiagram());  
  19.       meta2d.register(classPens());   
  20.       meta2d.register(sequencePens());
  21.       meta2d.registerCanvasDraw(sequencePensbyCtx());   
  22.       meta2d.registerCanvasDraw(formPens());            
  23.       // 监听消息事件      
  24.       meta2d.on('contextmenu', contextmenu);      
  25.       meta2d.on('click', click);            
  26.       // 打开文件            
  27.       meta2d.open(json);      
  28.     });     
  29.     onUnmounted(() => {   
  30.       if (meta2d) {      
  31.         meta2d.off('contextmenu', contextmenu);      
  32.         meta2d.off('click', click);      
  33.         meta2d.destroy();         
  34.       }      
  35.     });        
  36.     const contextMenuVisible = ref(false);   
  37.     function contextmenu() {   
  38.       contextMenuVisible.value = true;      
  39.     }        
  40.     function click() {      
  41.       contextMenuVisible.value = false;   
  42.     }        
  43.     return {        
  44.       contextMenuVisible,   
  45.     };   
  46.   },
  47. });
复制代码
Copy

一个快速上手学习的示例

https://github.com/le5le-com/meta2d.js/tree/main/examples/diagram-editor-vue3
在 React 中使用


  • 获取 @meta2d/core 等库
  1. npm install @meta2d/core --save
  2. // Option
  3. npm install @meta2d/activity-diagram --save
  4. npm install @meta2d/chart-diagram --save
  5. npm install @meta2d/class-diagram --save
  6. npm install @meta2d/flow-diagram --save
  7. npm install @meta2d/fta-diagram --save
  8. npm install @meta2d/form-diagram --save
  9. npm install @meta2d/sequence-diagram --save
  10. npm install @meta2d/le5le-charts --save
  11. npm install @meta2d/svg --save
复制代码

  • 编写 React jsx
  1. import React, { useEffect } from "react";
  2. import { Options, Meta2d } from "@meta2d/core";
  3. import { flowPens } from "@meta2d/flow-diagram";
  4. import { activityDiagram } from "@meta2d/activity-diagram";
  5. import { classPens } from "@meta2d/class-diagram";
  6. import { sequencePens, sequencePensbyCtx } from "@meta2d/sequence-diagram";
  7. import { formPens } from "@meta2d/form-diagram";
  8. const Meta2dContainer = () => {  
  9.   useEffect(() => {   
  10.     window.meta2d = new Meta2d("meta2d");   
  11.     meta2d.register(flowPens());   
  12.     meta2d.register(activityDiagram());   
  13.     meta2d.register(classPens());  
  14.     meta2d.register(sequencePens());     
  15.     meta2d.registerCanvasDraw(sequencePensbyCtx());
  16.     meta2d.registerCanvasDraw(formPens());   
  17.     // 打开文件     
  18.     meta2d.open(json);  
  19.   }, []);   
  20.   return (   
  21.     <div className="main">   
  22.     <div className="meta2d" id="meta2d"></div>   
  23.     </div>  
  24. );
  25. };
  26. export default Meta2dContainer;
复制代码
Copy
参考例子: https://github.com/le5le-com/meta2d.js/tree/master/examples/react


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表