Lightgraph.js节点图引擎【低代码开发利器】

Lightgraph.js是一个 Javascript 节点图引擎库,可以实现类似虚幻引擎的蓝图编程,包括一个编辑器来构建和测试节点图,支持浏览器和Node.js,可以轻松集成到任何现有的 Web 应用程序中,并且无需编辑器即可运行节点图。

在这里插入图片描述

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

1、Lightgraph.js演示

演示包括一些lieghtgraph.js节点图示例。 为了尝试它们,可以访问 演示站点或将其安装在本地计算机上,为此需要 先安装git、node 和 npm,然后运行以下命令进行尝试:

$ git clone https://github.com/jagenjo/litegraph.js.git
$ cd litegraph.js
$ npm install
$ node utils/server.js
Example app listening on port 80!

打开浏览器并将其指向 http://localhost:8000/ , 就可以从页面顶部的下拉列表中选择一个演示。

2、Lightgraph.js主要特性

  • 在Canvas2D上渲染。放大/缩小和平移,易于渲染复杂界面,可在WebGLTexture内部使用
  • 易于使用的编辑器。搜索框、键盘快捷键、多项选择、上下文菜单…
  • 优化以支持每个节点图数百个节点。在编辑器上以及在执行时
  • 可定制的主题。颜色、形状、背景
  • 用于个性化节点的每个动作/绘图/事件的回调
  • 支持子图,包含图本身的节点
  • 实时模式系统。隐藏节点图,但调用节点来渲染它们想要的任何内容,对于创建 UI 很有用
  • 节点图可以在 NodeJS 中执行
  • 高度可定制的节点。颜色、形状、垂直或水平插槽、小部件、自定义渲染
  • 易于集成到任何 JS 应用程序中。单个文件,无依赖项
  • 支持TypeScript

3、Lightgraph.js提供的节点

尽管创建新的节点类型很容易,但 LiteGraph 附带了一些在许多情况下可能有用的默认节点:

  • 界面(小部件)
  • 数学(三角学、数学运算)
  • 音频(AudioAPI 和 MIDI)
  • 3D 图形(WebGL 中的后处理)
  • 输入(读取游戏手柄)

4、Lightgraph.js快速上手

可以使用 npm 安装:

npm install litegraph.js

或者从 此存储库 下载 build/litegraph.js 和 css/litegraph.css 版本。

下面的代码就是lightgraph.js版的hello world:

<html>
<head>
	<link rel="stylesheet" type="text/css" href="litegraph.css">
	<script type="text/javascript" src="litegraph.js"></script>
</head>
<body style='width:100%; height:100%'>
<canvas id='mycanvas' width='1024' height='720' style='border: 1px solid'></canvas>
<script>
var graph = new LGraph();

var canvas = new LGraphCanvas("#mycanvas", graph);

var node_const = LiteGraph.createNode("basic/const");
node_const.pos = [200,200];
graph.add(node_const);
node_const.setValue(4.5);

var node_watch = LiteGraph.createNode("basic/watch");
node_watch.pos = [700,200];
graph.add(node_watch);

node_const.connect(0, node_watch, 0 );

graph.start()
</script>
</body>
</html>

5、创建自定义lightgraph.js节点

非常简单!定义一个类,实现约定的接口,然后用 registerNodeType 方法注册节点即可!

以下是如何构建对两个输入求和的节点的示例:

//node constructor class
function MyAddNode()
{
  this.addInput("A","number");
  this.addInput("B","number");
  this.addOutput("A+B","number");
  this.properties = { precision: 1 };
}

//name to show
MyAddNode.title = "Sum";

//function to call when the node is executed
MyAddNode.prototype.onExecute = function()
{
  var A = this.getInputData(0);
  if( A === undefined )
    A = 0;
  var B = this.getInputData(1);
  if( B === undefined )
    B = 0;
  this.setOutputData( 0, A + B );
}

//register in the system
LiteGraph.registerNodeType("basic/sum", MyAddNode );

或者你也可以使用 wrapFunctionAsNode包装已有的函数:

function sum(a,b)
{
   return a+b;
}

LiteGraph.wrapFunctionAsNode("math/sum",sum, ["Number","Number"],"Number");

6、在服务端使用lightgraph.js

Lightgraph.js也可以使用 NodeJS 在服务器端工作,尽管某些节点不能在服务器中工作(音频、图形、输入等)。

var LiteGraph = require("./litegraph.js").LiteGraph;

var graph = new LiteGraph.LGraph();

var node_time = LiteGraph.createNode("basic/time");
graph.add(node_time);

var node_console = LiteGraph.createNode("basic/console");
node_console.mode = LiteGraph.ALWAYS;
graph.add(node_console);

node_time.connect( 0, node_console, 1 );

graph.start()

原文链接:Lightgraph.js节点图引擎 — BimAnt

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SSM的科技公司门户网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

DDD系列 - 第2讲 从贫血模型、事务脚本到面向对象(富血模型)、DDD领域模型的跨越

目录 一、灵魂拷问二、CRUD Boy现状三、贫血模型四、事务脚本五、从贫血模型演变到面向对象&#xff08;富血模型&#xff09;六、借助DDD领域模型摆脱事务脚本七、更多 一、灵魂拷问 Java作为面向对象的编程语言&#xff0c;使用Java编程的你面向对象了吗&#xff1f; 二、C…

css实现div倾斜效果

效果如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head> <style> *{margin:0;padding: 0;} .box1{margin:30px 100px;width:100px;height:200px;background:blueviolet;} …

Android环境安装

一、环境 安装OS&#xff1a;Windows10 IDE: Android Studio Giraffe | 2022.3.1 Patch 2 Build #AI-223.8836.35.2231.10811636, built on September 15, 2023 JDK:Java8 二、安装Android Studio IDE和JDK Windows下构建安卓开发环境一点也不难就是有点麻烦。 第一、下载…

你的代码有bug

作为程序员&#xff0c;我们时常会收到这样的反馈&#xff1a;“你的代码有bug”。当面临这种情况时&#xff0c;我们可能会感到受伤和失落。然而&#xff0c;我们应该认识到&#xff0c;代码问题是一种常见现象&#xff0c;无论是谁都可能遇到。通过接受批评和建议&#xff0c…

代码随想录训练营Day2:1.有序数组的平方 2.长度最小的子数组3,螺旋矩阵

本专栏内容为&#xff1a;代码随想录训练营学习专栏&#xff0c;用于记录训练营的学习经验分享与总结。 文档讲解&#xff1a;代码随想录 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓…

JRebel热部署——效率提升100倍(程序员工具必备)

1. 下载JRebel 2.激活程序 这里推荐一个免费获取jrebel激活服务器地址和激活邮箱的地址:点击进入 进入网站之后就可以获取到激活链接和邮箱 点击进入激活 复制过去激活就可以 然后就可以看到激活成功了 3.如何使用 代码修改后&#xff0c;直接CtrlShitF9 即可重新启动 4…

Cross-Origin跨站问题详解(跨站请求、跨站cookie)

背景&#xff1a;我部署frontend和backend到两个不同的docker容器&#xff0c;前端路径为http://localhost:3000&#xff0c;后端路径为http://localhost:4000。我设置了用户登录功能&#xff0c;并使用cookie进行session管理。当我的前端登录时&#xff0c;创建了一个session&…

bat脚本设置变量有空格踩到的坑

SET PATH c:\xxx;%PATH% 我想把一个路径作为path环境变量最前面的一个&#xff0c;所以使用了上面的语句。 但是没有生效&#xff0c;我还以为是其他什么原因&#xff0c;后来又有一个类似的需求&#xff1a; set output output\x64 结果在使用 %output% 的时候是一个空格&…

2024最新fl studio 21.2.0.3842中文版完整下载

FL Studio 21.2.0.3842中文版完整下载是最好的音乐开发和制作软件也称为水果音乐软件。它是最受欢迎的工作室&#xff0c;因为它包含了一个主要的听觉工作场所。2024最新fl studioFL Studio 21版有不同的功能&#xff0c;如它包含图形和音乐音序器&#xff0c;帮助您使完美的配…

Android---MVP 中 presenter 声明周期的管理

我们经常在 Android MVP 架构中的 Presenter 层做一些耗时操作&#xff0c;比如请求网络数据&#xff0c;然后根据请求后的结果刷新 View。但是&#xff0c;如果按返回结束 Activity&#xff0c;而 Presenter 依然在执行耗时操作。那么就有可能造成内存泄漏&#xff0c;严重时甚…

什么是记忆能力与泛化能力

更多NLP文章在这里&#xff1a; https://github.com/DA-southampton/NLP_ability 谈到WDL&#xff0c;一个经常看到的总结是&#xff1a;Wide and Deep 模型融合 wide 模型的记忆能力和 Deep 模型的泛化能力&#xff0c;进行两个模型的联合训练&#xff0c;从而兼顾推荐的准确…

IPV6网络技术详细介绍

无状态和有状态并不是相互对立的&#xff0c;他们可以同时存在&#xff0c;也就是一张网卡上可以同时出现通过RA生成的IP以及通过DHCPv6获得的IP。 从图中可以看到&#xff0c;顺序为&#xff1a; 1、Stateless自动配置“链路本地地址”2、Stateless自动配置“全球地址”&…

解决Scrapy爬虫多线程导致抓取错乱的问题

目录 一、概述 二、问题分析 三、解决方案 四、案例分析 五、总结 一、概述 Scrapy是一个流行的Python爬虫框架&#xff0c;可以轻松地抓取网页数据并对其进行解析。然而&#xff0c;在抓取过程中&#xff0c;如果使用多线程进行并发处理&#xff0c;可能会遇到数据抓取错…

基于SSM的学生就业管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【安卓13】谷歌原生桌面launcher3源码修改,修改桌面布局(首屏应用、小部件、导航栏、大屏设备任务栏)

前言 近期接到一个关于谷歌EDLA认证的需求&#xff0c;我负责的是谷歌原生桌面布局的修改&#xff0c;通过研究源码&#xff0c;将涉及到了一些修改思路发出来&#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有&#xff1a; 1、搜索栏、底部导航栏未居中 2、…

RISC-V处理器设计(五)—— 在 RISC-V 处理器上运行 C 程序

目录 一、前言 二、从 C 程序到机器指令 三、实验 3.1 实验环境 3.11 Windows 平台下环境搭建 3.12 Ubuntu 平台下环境搭建 3.13 实验涉及到的代码或目录 3.2 各文件作用介绍 3.2.1 link.lds 3.2.2 start.S 3.2.3 lib 和 include 目录 3.2.4 common.mk 3.2.5 demo …

数据库安全:InfluxDB 未授权访问-Jwt验证不当 漏洞.

数据库安全&#xff1a;InfluxDB 未授权访问-Jwt验证不当 漏洞. InfluxDB 是一个开源分布式时序&#xff0c;时间和指标数据库。其数据库是使用 Jwt 作为鉴权方式&#xff0c;在用户开启认证时&#xff0c;如果在设置参数 shared-secret 的情况下&#xff0c;Jwt 认证密钥为空…

普华永道于进博会首发“企业数据资源会计处理一体化平台”

11月6日&#xff0c;在第六届中国国际进口博览会上&#xff0c;普华永道发布企业数据资源会计处理一体化平台&#xff08;英文名为Data Accounting Platform&#xff0c;简称DAP&#xff09;。该产品以普华永道“五步法”数据资源入表路径为理论依据&#xff0c;依托多年来普华…

QGIS导出Geoserver样式加载

1.在QGIS中加载并设计样式 加载数据之后按F7键即可打开样式编辑器 可以右键图层&#xff0c;点击属性中的符号化&#xff0c;有一个“基于规则”&#xff0c;可以设定规则或者比例尺范围。可以实现一定比例尺缩放可见或不可见的效果。 2.设计完样式之后右键图层导出 选择保…