GoJS Beginner Tutorial #1

news/2024/4/29 1:05:48/文章来源:https://blog.csdn.net/jiaojsun/article/details/130331407

1.关系图:

gojs部件由一个或多个gojs面板组成,这些面板包含和组织各种gojs图形对象

 通常使用go.GraphObject.make创建一个GraphObject,我们通过使用$符号变量缩短了该函数的名称

这个函数的第一个参数,往往是你想要制作的GraphObject的类型,所以如果你想制作一个Shape

第一个参数将是 go.Shape。

所有的GraphObject可以接受一个额外的参数来指定一些属性,

1.例如将字符串作为第二个参数传递给TextBlock构造函数指定为TextBlock GraphObject的默认文本。

2.还可以将 JavaScript 对象作为参数。其中包含描述GraphObject各种属性的键值对 对于图形对象,

 

面板负责保存和组织各种 gojs GraphObject,我们这些组成的GraphObject称之为面板的元素 请注意,

parts 实际上是panel 面板的

panel类型将决定其GraphObject在构建部件时的组织方式

当构建parts或panel你可以将面板类型指定为第二个参数,如果没有指定面板类型,则它充当一个

位置面板

gojs 中有许多panel类型

下面将观察五个最常见的面板类型,看看它们如何排列元素的

---------------------------------------------------------------------------------------------------------------------------------

为了展示这些panel types,我们将使用带有两个元素的part模板

记住part是panel的子类,所以即使你在代码中的任何地方都看不到panel这个词,

part也充当panel并根据我们指定的面板类型组织它的元素,部件作为顶级面板,该部件的所有其他面板都将包含在其中

我们部件构造函数中的第一个参数是与面板类型对应的字符串

接下来的两个是面板元素:部件的第一个元素是一个形状,我们使用其第二个参数进行设置它的图形

我们将在整个视频中,我们将使用RoundedRectangle图作为我们的Shape。

第二个元素是一个TextBlock,我们使用第二个参数设置其文本

另外我们可以在options数据对象参数提供一些关于Part元素属性的一些信息

比如:这里为我们的形状设置了填充属性,我们将为这些元素设置其他属性,以便对常用属性进行更深入的讨论,请先查看我们的视频 gojs GraphObject属性,

每个元素的位置由为每个图形对象元素指定的位置属性确定,如果没有定义位置属性,元素

位于 (0,0), 所有位置都在面板自己的坐标系位置内, 可能包括负坐标.

 --------------------------------------------------------------------------------------------------------------------------------

首先确保

我们的面板类型是位置我们将

通过定位文本块元素来检查此面板类型的工作方式

现在让我们不为

我们的文本块提供位置值看看我们有

什么 形状和文本块出现

在面板的左上角,这

是有道理的,因为默认位置是 0

0

现在让我们继续并将

文本块的位置属性设置为新的

Godot 点值,比如 50 20 现在看

文本 块出现在右上角 50 像素

和左上角下方 20 像素处,

当前充当 0 0

我们可以类似地定位形状让我们将

其位置属性设置为

负 50 20 现在看起来形状

出现在左 50 像素和 20

像素 从 0 0 向下 注意 0 0 不再是

左上角 记住

元素都位于 0 0 附近

位置面板将始终包含 0

0 原点 位置面板的

元素的集体边界不

包括 0 0 总是扩展到

包括我们刚刚看到的原点让我们

检查垂直面板它

从上到下垂直排列其元素

每个元素保持其正常

高度和宽度除非它的拉伸

属性已设置在这种情况下它将被

赋予宽度 面板如果

元素宽度与

面板的宽度不同,则

根据其对齐

属性水平对齐让我们使用我们的模板并制作

一个垂直面板让我们也将

文本块的背景设置为浅

灰色以便我们可以看到

文本块元素的尺寸而不改变

任何其他让我们看看会发生什么

文本块堆叠在形状下方

文本块

使用其对齐属性水平定位

因为我们没有为

文本块分配对齐方式它默认为 spot

default 它让面板确定

如何对齐元素,在这种情况下,它

默认为中心水平

对齐,以更改

垂直面板内元素的对齐设置,

元素对齐属性让我们将

我们的文本块对齐属性设置为

Godot spa 现在让我们看看 在

我们所拥有的文本块

水平放置在面板右侧

注意文本块的浅灰色背景

它向我们展示文本

块只占用

其文本所需的空间元素

已分配给它们 我们

可以看到文本块的默认大小具有

文本的宽度并且不会

水平拉伸以填充面板以更改

此设置文本块的拉伸属性

以进行图形对象点填充

现在看起来文本块占据了

整个 面板的宽度,但

它的对齐发生了什么,它不应该

仍然在右边文本块

本身已经被拉伸以填充

面板的整个宽度因此它的

对齐不再是其外观的一个因素

但是如果我们想要

文本块的文本仍然出现在

右侧 我们需要修改一个

名为文本对齐的文本块特定属性 让我们这样做 将

文本对齐

属性设置为字符串 现在重新加载

页面,同时文本块元素

本身仍然完全拉伸 为了

水平填充面板,它的文本

与右侧对齐 接下来是

水平面板 它的元素

从左到右水平排列

它们可以垂直拉伸以适应具有

拉伸属性的面板高度

我们将使用我们的模板 并

再次使面板成为水平面板 我们将

文本块元素的背景设置

为浅灰色,以便更容易地看到

文本块尺寸而不做

任何其他事情看看我们有什么

文本块的对齐方式是

自动设置的,因为我们 没有

在文本块属性中设置它如果我们

想自己设置它我们可以尝试

设置对齐属性去

点底部现在看文本块

在面板底部对齐

同样我们可以看到文本块只

需要 通过观察浅灰色背景来增加其文本所需的空间

假设我们希望文本块填充

面板的整个高度 我们必须为文本块设置的

拉伸属性设置一个值

stretch to go graph

object fills should work 请注意,

即使我们已经将文本块的对齐方式设置为 Godot spot bottom,设置 stretch 基本上会覆盖您为

水平面板中的元素

设置的对齐方式,

然后我们将

stretch 设置为 go graph object fill 因此

其文本中的文本块仍然 出现

在面板的顶部如果我们想

强制文本块出现在

面板的底部我们可以将其

垂直对齐属性设置为 Godot

底部然后真实

页面即使文本块

拉伸属性设置为 go graph

对象 通过将其垂直

对齐属性设置为 spot bottom 来填充

文本块文本出现在

面板的底部 让我们讨论

最后两种常见类型的面板 spot 和

auto 当使用 spot 或 auto 面板时

我们面板中的第一个元素 如果

形状元素充当

面板的主要元素,所有

后续元素都根据

面板类型定义的规则排列

在面板中的第一个元素默认被视为

主要元素,但您可以将

另一个元素设置为 panel main

元素通过将该元素的 is panel main

属性设置为 true 到目前为止,我们已经

使用了一些预设的 Godot 点值,

例如 go spot left 和 Godot spot center 来

设置该视频中的元素对齐方式,

但点可以远远超过

只有一组预定值

点中的一个包含 X 和 y 值,

范围在 0 到 1 之间,这些值

是沿 x

和 y 轴距矩形左上角的分数距离,

例如图形对象的边界

元素 所以预设的 godot spot

左上角与新的 godot spot

0/0 spot 右下角与新的

godot spot 1:1 相同 现在让我们检查

spot 面板 我们将使用相同的模板

并设置面板类型 spot 让我们将

文本块的对齐方式设置为 go

spot top left 看看文本块

位于

形状的左上角 面板的主要元素如

之前所述 spot 面板中的所有元素都

放置在它们的对齐点

相对于我们案例中的主要元素

形状元素,您可能会注意到

文本块的位置使其

中心点位于面板的左上角,

这是因为

对齐焦点属性的默认

值为 godot spot Center 我们' 稍后将

详细讨论这个问题,现在将

值从左上角的 go spot 更改

为新的 go spot zero zero 再看一次,它是

相同的记住一个点的 x 和 y 值

我们传递给

godot spot

指导员的两个参数对应 距

矩形左上角的分数距离 在这种情况下

描述面板边界的矩形

主要元素 形状

进一步明确这一点 让我们将

文本块对齐到

形状的右侧并向下对齐 如何

我们会做得好吗,因为我们想

从形状边界的最左侧一直走到最

右侧,

我们将把戈多点构造函数的 X 参数更改

为 1,因为我们

想沿着形状向下走一半 将

Y 参数设置为 0.5 现在看看

我们有什么 文本块位于

形状的中间位置

一直在其右侧

点可以更好地描述

元素对齐 戈多点

构造函数需要两个参数,它

可以选择 再取两个

描述元素对齐的绝对 X&Y 偏移量(以像素为单位)

使用我们的

示例,如果我们向点构造函数添加负 20 和零,则

文本块

将像以前一样位于最右侧的中间位置,

向左增加 20 像素 进一步查看

spot 面板中的每个非主要元素,

默认情况下定位的精确点是

元素中心的 godot spot center

将用于定位它但是

我们可以使用

上述对齐焦点属性更改它

所以在我们的 当我们将

文本块的对齐方式设置为

左上角的 godot spot 时的原始图表我们没有指定

对齐焦点

如果我们将

文本块的对齐方式保持为

Godot spot top left 但将

文本块的对齐焦点属性更改

为新的 spot 值让我们看看会发生什么让

我们尝试 Godot spot top left 现在重新加载

页面文本块的对齐方式

不同现在它的对齐属性

指的是 面板,

但它的对齐聚焦属性

是定位元素的点,它

与对齐属性指定的主元素中的点对齐,

更改了

文本块的左上角最后我们

来到自动面板,自动面板

适合 面板的所有

其他元素周围的面板的主要元素请记住,

默认情况下主要元素是

面板的第一个元素,但您可以通过将

其 is panel main

属性设置为 true 来手动将元素设置为主要元素,因为自动面板

主要 元素至少需要一个其他

元素来测量以确定

它需要多大来容纳所有元素

自动面板应该至少有两个

元素使用我们相同的模板将

面板类型设置为自动看看

我们有什么文本 块被

形状包围,因为形状是

自动面板的主要元素主要

元素的大小适合非

主要元素如果调整非主要元素的大小

主要元素将调整大小

以适应非主要元素

本质上自动 默认情况下,面板是如何在

其他一些对象周围实现边框的,

如果我们

明确设置整个自动面板的大小,则该边框刚好足以容纳

自动面板的非主要元素,非主要元素的

空间比

如果我们将

自动面板的所需大小属性设置为

250 x 250 的新大小,他们自然会这样做,然后我们重新加载

页面,我们看到文本块周围的空间,

我们唯一的非主要元素

变大了,请不要设置大小

自动面板的主要元素 它的大小以

编程方式确定 您可以

组合任意数量的面板

创建任意复杂的部件

自动面板中的水平面板,

用于深入了解组合

各种面板和图形对象以

创建复杂部件 观看我们的视频

构建部件与 gojs 模板

go Jas net 如果您

有兴趣了解更多

关于部件和面板类型的信息,请访问

我们在 go Jas net 上的面板介绍页面,

该页面将提供有关

本视频中讨论的面板类型

以及一些不太常见的面板类型的更多信息,

例如 分级网格和表格面板 下

一个推荐的视频是 go Jay

图模型,它解释了如何将简单

数据存储在图模型中,

稍后通过图将其可视化。前往

gojs net 查看数百个

样本,关于 go J 的功能

介绍页面或仔细阅读完整的

API 文档注册

无限次免费试用,您将免费获得 30

天的开发人员对开发人员的支持

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

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

相关文章

Centos切换jdk版本

先安装了jdk1.8的版本,需要使用jdk17的版本 1.先安装jdk17,再配置环境变量: vim ~/.bashrc 2.在最后一行添加 ##这个添加的就是路径,一定要和自己jdk安装的路径是一致的 export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64 3.然…

docker容器:docker镜像的三种创建方法及dockerfile案例

目录 一、基于现有镜像创建 1、创建启动镜像 2、生成新镜像 二、基于本地模板创建 1、OPENVZ 下载模板 2、导入容器生成镜像 三、基于dockerfile创建 1、dockerfile结构及分层 2、联合文件系统 3、docker镜像加载原理 4、dockerfile操作常用的指令 (1)FROM指令 (…

响应式布局

文章目录 响应式布局概述viewport 视口CSS 常用单位CSS 媒体查询语法直接使用使用style标签使用link引入 自适应布局栅格系统响应式布局案例rem媒体查询 响应式布局 概述 响应式布局是指网站或应用程序可以自适应不同的屏幕尺寸和设备类型,简而言之就是一个网站兼…

Sentinel同时配置fallback和blockHandler的问题

Spring Cloud在使用Sentinel进行服务降级和熔断时,如果同时配置了fallback和blockHandler,则在服务熔断后,抛出的BlockException不会再fallback逻辑中执行,而是在blockHandler逻辑中执行。 首先来看只配置了fallback的情况&#x…

常用的设计模式(单例模式、工厂模式等)

1.单例模式 概述: 在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式. 例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造…

战争教育策略游戏 MiracleGame,开启新阶段重塑生态和玩法

香港 Web3 区块链周刚刚在一片喧嚣中结束。各路大V、KOL 们的 report 都对 GameFi 的前景非常自信。2021-2023年期间,大量资金涌入 GameFi 赛道,GameFi 一旦爆发将会是现象级的出圈事件。 MiracleGame 是一款基于 BNB Chain 构建的英雄和元神主题的战争教…

HNCTF-re部分复现

目录 [HNCTF 2022 WEEK3]Help_Me! [HNCTF 2022 WEEK3]Whats 1n DLL? [HNCTF 2022 WEEK4]ez_maze 这几天在做HNCTF的week3,week4部分,学到了一些不知道的没接触过的东西,所以记录一下 [HNCTF 2022 WEEK3]Help_Me! 题目下载:下…

[自注意力神经网络]Mask Transfiner网络-论文解读

本文为CVPR2022的论文。国际惯例,先贴出原文和源码: 原论文地址https://arxiv.org/pdf/2111.13673.pdf源码地址https://github.com/SysCV/transfiner 一、概述 传统的Two-Stage网络,如Mask R-CNN虽然在实例分割上取得了较好的效果&#xff…

ARM busybox 的移植实战2

一、busybox 源码分析1 1、源码目录梳理 2、整个程序入口的确认 (1) 分析一个程序,不管多庞大还是小,最好的路线都是 按照程序运行时的逻辑顺序来。所以找到一个程序的入口至关重要。 (2) 学 C 语言的时候都知道,程序的主函数 main 函数就是…

【JUC高并发编程】—— 初见JUC

一、JUC 概述 什么是JUC JUC 是 Java并发编程的缩写,指的是 Java.util.concurrent 即Java工具集下的并发编程库 【说白了就是处理线程的工具包】 JUC提供了一套并发编程工具,这些工具是Java 5以后引入的,使得Java开发者可以更加方便地编写…

【系统集成项目管理工程师】项目干系人管理

💥十大知识领域:项目干系人管理 项目干系人管理包括以下 4 个过程: 识别干系人规划干系人管理管理干系人参与控制干系人参与 一、识别干系人 输入工具与技术输出项目章程采购文件事业环境因素组织过程资产组织相关会议专家判断干系人分析干系人登记册 …

ansible自动运维——ansible使用临时命令通过模块来执行任务

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家 另外其它专栏请关注: 锐捷数通实验&…

为什么使用了索引,查询还是慢?

🏆今日学习目标: 🍀为什么使用了索引,查询还是慢? ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区&…

linux 安装 oracle 11g

linux 安装 oracle 11g 1、下载oracle 11g (11.2.0.1.0)1.1、Oracle Database 11.2.0.1.01.2、Oracle Database Grid Infrastructure 11.2.0.1.01.3、客户端 2、安装文档3、安装前准备3.1、建立用户和用户组3.2、sysctl3.3、security limits3.4、其他设置3.5、创建安装目录3.6、…

校招又临近了,怎么在面试中应对设计模式相关问题呢?

夏天开始了,那么夏天结束时的毕业季也不远了。毕业是个伤感、期待而又略带残酷的时节,就像蜜桃无论成熟与否都会在这个时间被采摘,如果毫无准备就踏入社会,就会……马上变成低级社畜。所以说还是要早点为了毕业找工作做点准备&…

Jetson nano B01学习笔记 -- 系统环境配置以及ROS安装

文章目录 一、Jetson nano 简介二、 系统环境配置1、系统镜像烧录2、CUDA环境配置 三、 ROS安装和环境配置总结 一、Jetson nano 简介 Jetson Nano是一款体积小巧、功能强大的人工智能嵌入式开发板,于2019年3月由英伟达推出。它预装Ubuntu 18.04LTS系统,…

LeafLet加载自定义Legend的设计与实现

背景 众所周知,在GIS的世界里,图例和地图永远是一对一起出现的对象。在地图上表示地理环境各要素,比如山脉、河流、城市、铁路等所用的符号叫做图例。这些符号所表示的意义,常注明在地图的边角上。图例是表达地图内容的基本形式和…

小六壬学习笔记

小六壬学习笔记 简介前置知识:十二地支和十二时辰适用范围起课:月令日时卦象 疑问:遇到闰月怎么办?禁忌数字起课法手机计算器取余数 简单解卦 简介 马前课,又名:小六壬。 小六壬历史渊源:https://m.sohu.c…

统信UOS 20 安装达梦数据库V8

统信UOS 20 安装达梦数据库V8 1、安装教程2、启动数据库实例服务失败解决方法3、使用dm管理工具连接数据库 1、安装教程 https://blog.csdn.net/OceanWaves1993/article/details/129936878 此教程进行到启动数据库实例步骤时 使用下面命令启动数据库实例服务时,报…

大数据技术之集群数据迁移

在大数据集群数据迁移的项目中涉及到很多技术细节,本博客记录了迁移的大致的操作步骤。 迁移借用Hadoop自带的插件:distcp。 一、Hadoop集群数据迁移 **DistCp(分布式拷贝)**是用于大规模集群内部和集群之间拷贝的工具。它使用M…