首页 > 其他分享 >从零开始搭建web组态

从零开始搭建web组态

时间:2024-11-19 12:16:18浏览次数:3  
标签:web canvas SVG 组态 从零开始 图像 组件 图形

成果展示:http://www.hcy-soft.com

演示地址:若依管理系统(生产环境)


一、技术选择


目前只有两种选择,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可以将单个的组件,序列化为字符串。这样就方便了我们做一个一个组件。

五、成功案例

标签:web,canvas,SVG,组态,从零开始,图像,组件,图形
From: https://blog.csdn.net/wqh199304150428/article/details/143880606

相关文章

  • Javaweb核⼼之转发-重定向
    【⾯面试必备】请求转发RequestDispatcher你知道多少简介:讲解请求转发RequestDispatcher的知识点什么是请求转发:request.getRequestDispatcher(URL地址).forward(request,response)客户端发送请求,Servlet做出业务逻辑处理理。Servlet调⽤用forword()⽅方法,服务器器Servlet把⽬标......
  • 将打包后的 React或Vue 与 WebApi 部署在同一站点
    前后端分离的开发中,在部署项目时通常会分开进行部署,而这样又很麻烦,需要配置跨域,域名配置等等有一些情景下,我们需要采用更为方便的方式去部署,可以参考下方方法进行调整准备WebApi项目一个打包好的前端项目React或VUE都可以调整为WebApi项目新增wwwroot文件夹,用于放置前......
  • 提升网站性能与用户体验:全面解析与优化 Web Vitals 核心指标
    文章目录前言一、LargestContentfulPaint(LCP)二、FirstInputDelay(FID)三、CumulativeLayoutShift(CLS)结语前言在当今竞争激烈的互联网环境中,网站性能和用户体验成为了决定网站成败的关键因素。Google推出的WebVitals指标体系,通过三个核心指标——L......
  • JAVA WEB 实现文件夹上传(保留目录结构)分享
    需求:大文件上传,批量上传,断点续传,文件夹上传,大文件下载,批量下载,断点下载,文件夹下载文件夹:上传下载需要支持层级结构,采用非压缩方式文件大小:100G前端:vue2,vue3,vue-cli,jquery,html,webuploader后端:JSP,springbootweb服务:tomcat数据库:mysql,oracle,达梦,国产化数据库服务......
  • 0基础转行网络安全,选择pwn还是web?
    随着5G、工业互联网、人工智能等新兴领域技术的兴起,从而快速推动了各国从人人互联迈向万物互联的时代。奇安信董事长齐向东曾说过:“如果说5G带来了物联网和人工智能的风口,那么网络安全行业就是风口的平方——风口的风口。"因此,有不少年轻人纷纷想加入网络安全行业,抢占先......
  • 计算机毕业设计原创定制(免费送源码)Java+B/S+SSM+Web前端开发技术+IDEA+MySQL+Navicat
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对有风小院等问题,对有风小院信息管理进行研究分析,然后开发设计出有风小院系统以解决问题。有......
  • javaWeb小白项目--学生宿舍管理系统
     目录一、检查并关闭占用端口的进程二、修改Tomcat的端口配置三、重新启动Tomcat一、javaw.exe的作用二、结束javaw.exe任务的影响三、如何判断是否可以结束 结尾: 这个错误提示表明在本地启动Tomcatv9.0服务器时遇到了问题,原因是所需的端口(8005、8080)已......
  • WordCloudStudio:全面支持Web端,随时随地创建精彩文字云
    在当今视觉化表达日益重要的时代,文字云成为了一种流行的内容呈现形式。无论是用于展示数据、分享创意,还是提高内容吸引力,文字云都能带来意想不到的效果。https://wordcloudstudio.com/作为文字云制作的领先工具,现在全面支持Web端!通过官方网站,用户可以随时随地在线创建精美的文字......
  • WEBUPLOADER之大文件分段上传、断点续传
    前端:vue2,vue3,vue-cli,html5,webuploader后端:asp.net,jsp,springboot,php,数据库:MySQL,Oracle,SQLServer,达梦,人大金仓,国产数据库功能:超大文件上传,文件和文件夹批量上传,断点续传,加密上传,视频上传技术:百度webuploader,分块,切片,断点续传,秒传,MD5验证,纯JS实现,支持第三方......
  • WebGL 被视为前端开发天花板,那3D可视化和它相比呢
    一、WebGL:前端开发的强大利器WebGL是一种基于OpenGLES的JavaScriptAPI,它允许在网页浏览器中呈现交互式2D和3D图形,而无需安装额外的插件。其强大之处主要体现在以下几个方面:高性能图形渲染WebGL能够利用图形硬件加速,实现高效的图形渲染。这使得在网页上展示复杂......