从零开始搭建web组态

 成果展示:by组态[web组态插件]


一、技术选择


目前只有两种选择,canvas和svg

Canvas: 是一个基于像素的渲染引擎,使用JavaScript API在画布上绘制图像,它的优点包括:

  • Canvas渲染速度快,适合处理大量图像和高度动态的图像。
  • 可以直接操作像素,能够创建高质量、流畅的动画效果。
  • Canvas可用于实现复杂的游戏、3D效果等。

SVG: 是一种基于矢量的图形格式,可以使用XML和JavaScript API在浏览器中绘制图像,它的优点包括:

  • SVG是基于矢量的图形格式,图像可以无限放大而不失真。
  • 可以为SVG图像添加事件处理器,实现交互效果。
  • 可以通过CSS进行样式控制,使得SVG图像更加灵活。
  • SVG图像可以直接嵌入到HTML文档中,不需要另外下载。

但它也存在一些缺点:

  • SVG渲染速度较慢,适合处理少量图像和少量动态的图像。
  • SVG图像在处理复杂图形时可能会导致性能问题。
  • 由于SVG是基于矢量的图形格式,它的复杂度比较高,可能会导致文件大小较大。

        根据个人喜好选择,一般来说canvas的性能要不svg好的多,对于组态画面,实时性要求要高,我们选择canvas。对canvas的开发,都需要选择一款框架,底层开发太难了,选择框架一定要选择文档全面,例子多的,konva.js是非常不错的。

ui框架自行选择,都行。

二、 konva.js简介


        konva 是一个对 canvas API 做了封装增强的 JavaScript 库。

        HTML 原生的 canva 提供的 API 比较底层,用法上像是操纵一支画笔进行各种操作,画完就结束了。

        canvas 本身不维护图形树,你也无法操作修改已被绘制的图形。

        而 konva 能够像我们操作 DOM 树一样去绘制和维护元素,它会额外维护图形构成的树,并能在绘制后,对特定图形进行样式的修改。

        你还可以在上面添加事件,比如鼠标滑入某图形时,图形变大一点。此外还支持方便的变形、动画、拖拽等高级能力。

        konvas提供商了所有组态的基础功能,如,点,线,面,拖拽,变化,放大缩小,事件等等,只要你想到的,他都有,我们要做的就是一点一点的吧这些功能堆起来,形成一个完整的组态工具。技术上并不难,就是花点时间。

三、 组态功能


        我们做一个最简单的功能,其他的功能自己慢慢堆,下面是功能列表

        组态图元: 变量组件(可根据后台推送的数据显示到画布上),属性(文字颜色)

        后台通讯:websocket

        画面保存:画面要能以字符串的形式保存到后台数据库,或者生成文件,查看画面的时候在字符串拿出来,在还原为画面

        实时数据渲染:后台来数据后要及时呈现到画布上

四、 需求分析


        我们做的组件是一个一个的,组件要方便存储,这样后续才能方便添加,一个组件里面包含该组件所有的属性。这是最重要的,否则后面扩展及其困难

        konva可以将单个的组件,序列化为字符串。这样就方便了我们做一个一个组件。

五、成功案例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/509512.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

是真的免费!企业 AI 学习指南:Azure 2024 年学习生成式 AI 的顶级免费资源

微软的Azure AI学习专家为了帮助企业员工快速上手AI工具,特别准备了一些课程,事先说明,微软出品,完全免费,非割韭菜课程! 课程浅显易懂,而且每节课后都会有小结、知识测试,帮助复习知…

Linux配置网卡功能

提示:工具下载链接在文章最后 目录 一.network功能介绍二.配置network功能2.1 network_ip配置检查 2.2 network_br配置2.2.1 配置的网桥原先不存在检查2.2.2 配置的网桥已存在-修改网桥IP检查2.2.3 配置的网桥已存在-只添加网卡到网桥里检查 2.3 network_bond配置检查 2.4 netw…

虹科新品|Baby-LIN第三代系列产品全面升级,重塑车辆测试新体验

导读:虹科Baby-LIN系列产品(LIN和CAN总线模拟器)是在测试和生产领域控制车辆部件(ECU)的成熟解决方案。虹科Baby-LIN系统能够可靠地连接到各类自动化和测量设备,为汽车零部件(如电机执行器、车灯、门板、方向盘等&…

OpenGL 实现色温、色调、亮度、对比度、饱和度、高光

1.简介 色温:简单理解是色彩的温度,越低越冷如蓝色,约高越暖如红色。 亮度:增加就是给图片所有色彩加白色,减少加黑色。注意是只加黑白两种颜色,不然容易跟纯度弄混。 对比度:增加就是让白的…

海思hi3519dv500,hi3516dv500移植yolov8-模型处理

上一节yolov8的训练已经完成了,现在要开始做模型的转换了,这里和yolov7方式相似,但是有一些差异,尤其是yolov7的不带NMS部分的输出顺序和yolov8的输出顺序与格式是有差异的。 首先还是要自己手动加入rpn_op,这里包含了filter,sort,nms部分。 我们一个一个看,首先filter.py…

物联卡禁止个人使用是有原因的,技术层面给大家深度分析一下

运营商禁止物联卡个人使用是硬性规定,但是现在很有很多不法商贩在倒卖物联卡给个人,套路是很多的,小编之前的文章里有几篇深度介绍,大家可以搜索看一下,今天就从技术层面来给大家详细分析一下为什么物联卡不适合个人使…

JVM 基础知识学习笔记

JVM 基础知识学习笔记 1. JVM 介绍 什么是 JVM ? JVM 本质上是一个运行在计算机上的程序,它的职责是运行 Java 字节码文件。 JVM 的功能是什么 ? 解释和运行: 对字节码文件中的指令,实时的解释成机器码,让计算机执行。内存管理: 自动为…

教师资格证考试准考证无法打印

教师准考证无法打印? 在打印准考证的时候,发现点击”下载准考证“时毫无反应,后来在网上找到了一个有效的解决方法,现在记录一下。 在准考证显示页面,鼠标右键单击,找到”检查“ 在弹出来的框里选择”控制…

卷积神经网络(CNN)原理与实现

卷积神经网络(CNN) 卷积神经网络原理卷积神经网络的数学推导卷积层反向传播算法数学推导卷积层实现代码 卷积神经网络(CNN) 卷积神经网络原理 卷积神经网络是一种用于图像、语音、自然语言等数据的深度学习模型,其核心思想是使用卷积操作提取输入数据的特征&…

Linux - 安装 maven(详细教程)

目录 一、下载二、安装三、配置环境变量四、镜像资源配置 一、下载 官网:https://maven.apache.org/download.cgi 打开 maven 的官网下载页面,点击 bin.tar.gz 文件链接 即可下载最新版本的 maven 如果想要下载旧版本的 meven,则点击 Maven…

ABAP 左连接 inner join

左连接& inner join 目录 左连接& inner join问题原因总结 问题 模具分摊程序:报废不出来的部分有问题,加上过滤条件之后,少了很多条,原来2月份的有15条,加上之后只有9条 原因 这里加就是在左连接的基础上…

vue中使用echarts实现人体动态图

最近一直处于开发大屏的项目,在开发中遇到了一个小知识点,在大屏中如何实现人体动态图。然后看了下echarts官方文档,根据文档中的示例调整出来自己想要的效果。 根据文档上发现 series 中 type 类型设置为 象形柱形图,象形柱图是…