0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于 HT for Web 插件搭建组态拓扑结构

图扑-数字孪生 来源:图扑-数字孪生 作者:图扑-数字孪生 2024-08-01 11:20 次阅读

wKgaomaq_smAOkA6AAYjuUClU6w433.png

在现代的数据可视化和网络管理中,拓扑图是一种非常重要的工具。它可以直观地展示节点(Node)和节点之间的关系(Edge)。无论是在 2D 还是 3D 环境中,拓扑图都可以帮助我们更好地理解和管理复杂的系统。

然而,由于这些拓扑图通常极为复杂,传统的手动布局方式不仅繁琐且耗时。鉴于此,图扑软件自研 HT for Web 产品(以下简称为 HT)推出了自动布局、弹力布局插件,从根本上解决了这一问题。

wKgZomaq_sqAVxRYABNxX23nqn0910.gifwKgaomaq_suAfs9yAAj3fhEHg4s517.gif

这些案例不仅限于 2D 和 3D 拓扑图,还涉及到 GIS 场景的应用,展示了广泛的应用场景和强大的功能。

自动布局在 2D 中的运用

图扑软件 HT 自动布局插件总共有七种布局方式:圆形布局、对称布局、层次布局、朝北布局、朝南布局、朝东布局和朝西布局。

wKgZomaq_suAZEf2AA30TCME7Xg463.gif

在拓扑图的制作过程中,我们会使用自动布局来进行初始布局操作。然而,自动布局并非万能良药,无法在所有情况下都完全达到我们的预期效果。因此,通常在自动布局之后,我们也会对图纸进行一些手动微调,以达到优质的展示效果。

wKgaomaq_tGAP3kfAAC5BDYnR9w84.jpeg

以上图示例为例,图内拓扑是从左到右布局的效果。尽管节点之间呈简单的树形层次关系,但节点位置错落不齐,并且需要使用多种类型的连线,所以单纯使用自动布局达不到预期的效果。接下来简单介绍一下这个 demo 的实现步骤:

1.在图纸上创建好节点并设定节点之间的连线关系后,我们可以使用自动布局来进行初始布局操作。在示例中,我们希望展示一个从左到右的布局,这时可以使用自动布局工具中的朝东布局(towardeast)来实现这一效果。设置自动布局的相关代码:

let autoLayout = new ht.layout.AutoLayout(view, {

gap: 30

});

layout(false);

function layout(animate) {

autoLayout.setAnimate(animate);

autoLayout.layout('towardeast', function () {

view.fitContent(animate);

});

}

wKgZomaq_tKAek2xAATAbyP733o741.gif

朝东布局(towardeast)仅适用于树形层次结构。如果图纸中存在非树形层次结构的连线,在初始布局时可以先不进行连线操作,待自动布局完成后再创建相应的连线。

2.手动调整节点的位置:在获取到节点后,通过 node.setPosition ({x: 100, y: 100}) 方法重新设置其位置。最终可以得到如下的效果图:

wKgaomaq_teAHN2VAASQR411ZTs828.gif

3.经过步骤 2 后,整体拓扑仍显杂乱。此时,可以根据节点的位置等因素,调整连线的类型、间距和锚点等属性。同时,还可以修改连线的颜色和宽度等样式属性,以实现理想效果。调整完成后的效果如下:

wKgZomaq_tiAWcdgAAZALvN9lZs955.gif

4.最后再加上一些文本内容,一个完整的拓扑图就完成了。

wKgaomaq_tmAcOzYAAzQUOrVdxo236.gif

自动布局在 3D 中的运用

随着 OpenGL 和 WebGL 等图形技术的发展,3D 视觉表达方式越来越受到重视。拓扑图的呈现方式也从传统的 2D 展示逐渐转向更立体和动态的 3D 展现。图扑 HT 的自动布局功能不仅在 2D 中广泛应用,在 3D 中也同样适用。

无论是在 2D 还是 3D 环境中,自动布局的使用方式都是一致的。在 3D 环境中,自动布局实际上设置的是 3D 坐标中的 xz 平面。对于 3D 场景中独有的的 y 轴,则需要通过 node.setElevation(elevation) 方法来进行设置。

只设置了自动布局产生的效果如下:

wKgZomaq_tqATIZ_AAqvMFx95L4227.gif

根据层级设置不同 y 轴坐标产生的效果:

wKgaomaq_tuASoCFACbLb-jK8LU006.gif

弹力布局

弹力布局又称之为导向布局,根据节点之间的斥力、相互连接的节点之间存在在引力运行,并且会逐渐达到收敛稳定的平衡状态。弹力布局具有指向性,通常用于标识物与物、人与人之间的关系,这种布局方式特别有助于表达元素之间的关联性和依赖性,使用户直观地观察到各个元素之间的交互和联系。

接下来用一个示例来演示弹力布局的实现过程,示例效果如下:

wKgZomaq_tyAfqfZAFAH11-FGww482.gifwKgaomaq_t-ASi5HAEEpm2amRc8380.gif

在图纸上创建好节点并设置好节点间的连线关系后,就可添加弹力布局相关代码。在实例化 ht.layout.ForceLayout 时,可以传入 DataModel 、GraphView 和 Graph3dView 三种参数。默认仅对未选中图元进行布局,如果参数为 GraphView 和 Graph3dView 时,则视图组件的 isMovable 和 isVisible 函数将影响图元是否可布局,图元 style 上的 layoutable 属性也可设为 false 阻止图元参与布局。

const forceLayout = new ht.layout.ForceLayout(view);

forceLayout.start(); // 启动弹力布局

forceLayout.setNodeRepulsion(0.7) // 设置节点间斥力,值越大节点间斥力越大,节点布局越分散。

forceLayout.setEdgeRepulsion(0.7) // 设置节点间斥力,值越大连线节点间斥力越大,连线节点布局越分散。

view.setZoom(0.38); // 设置图纸缩放值

在 3D 中也可使用 ht.layout.Force3dLayout 类来设置弹力布局,具体设置方式同 ht.layout.ForceLayout。

wKgZomaq_uCAG-OGAAX2xlzF6Ws939.gif


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 组态
    +关注

    关注

    0

    文章

    142

    浏览量

    14690
  • 数据可视化
    +关注

    关注

    0

    文章

    454

    浏览量

    10205
收藏 人收藏

    评论

    相关推荐

    HT for Web并力ARMxy工业计算机实现数字化转型可视化解决方案

    ,用户可以轻松设计出直观的监控场景,实现对工业过程的实时数据展示和交互控制。而ARMxy系列产品以其强大的数据处理能力和灵活的IO配置,精准响应生产需求,驱动自动化流程,助力企业实现数字化转型。 一、HT for Web软件简介 HT
    的头像 发表于 08-28 16:17 187次阅读
    <b class='flag-5'>HT</b> for <b class='flag-5'>Web</b>并力ARMxy工业计算机实现数字化转型可视化解决方案

    基于图扑 HT for Web 实现拓扑关系图

    拓扑结构在计算机网络设计和通信领域中非常重要,因为它描述了网络中的设备(即“点”)如何相互连接(即通过“线”)。这种结构不仅涉及物理布局,即物理拓扑,还可以涉及逻辑或虚拟的连接方式,即
    的头像 发表于 06-24 14:09 228次阅读
    基于图扑 <b class='flag-5'>HT</b> for <b class='flag-5'>Web</b> 实现<b class='flag-5'>拓扑</b>关系图

    VSCODE IDF插件加载web视图出错的原因?怎么解决?

    Vscode无论是安装espidf4.4 还是4.2 ,都不能打开配置引导页面,提示加载web视图出错, 重装idf插件一样无效,
    发表于 06-13 07:38

    什么是Mesh?Mesh组网拓扑结构浅析

    什么是Mesh?Mesh组网拓扑结构浅析  Mesh(网状结构)是一种网络拓扑结构,它由多个节点相互连接而成,每个节点都可以直接与其他节点通
    的头像 发表于 02-04 14:07 1878次阅读

    网络拓扑结构的隐患和网络硬件的安全缺陷属于

    网络拓扑结构的隐患和网络硬件的安全缺陷是当前网络安全领域中的重要问题。随着互联网的不断发展和普及,网络拓扑结构和网络硬件的安全问题日益凸显。本文将详细分析网络
    的头像 发表于 01-31 14:54 1166次阅读

    什么是计算机网络的拓扑结构?主要的拓扑结构有哪些?

    计算机网络的拓扑结构是指计算机网络中各个节点(包括计算机、服务器、路由器等)之间连接的方式和形式。拓扑结构可以影响到网络的性能、可靠性和扩展性。在计算机网络中,常见的
    的头像 发表于 01-31 10:40 1320次阅读

    网络拓扑结构有哪几种类型 网络拓扑结构优缺点

    网络拓扑结构是指网络中各个节点(计算机、路由器等)之间的连接方式。根据节点之间的连接方式不同,网络拓扑结构可以分为以下几种类型: 星型拓扑
    的头像 发表于 01-30 10:04 1036次阅读

    DDR拓扑结构的详细解析

    在进行多片DDR设计的时候,通常DDR会存在拓扑结构, 下面我们将详细介绍一下各种拓扑结构的区别以以及应用场景。 首先我们先介绍一下,当只存在一片DDR的时候通常是采用点对点的连接方式
    的头像 发表于 12-26 07:45 893次阅读
    DDR<b class='flag-5'>拓扑</b><b class='flag-5'>结构</b>的详细解析

    eclipse安装web插件步骤

    Eclipse 是一款功能强大的集成开发环境 (IDE),广泛用于 Java 开发和各种 Web 应用程序的开发。通过安装适当的插件,可以将 Eclipse 转变为一个强大的 Web 开发工具。本文
    的头像 发表于 12-06 13:48 850次阅读

    eclipse中没有web怎么办

    在Eclipse中没有Web的情况下,可以采取以下的解决方法: 第一种方法是通过Eclipse的插件来添加Web开发功能。原始的Eclipse版本可能不包含Web开发的相关
    的头像 发表于 12-06 11:30 2080次阅读

    HT for Web (Hightopo) 使用心得(5)- 动画的实现

    其实,在 HT for Web 中,有多种手段可以用来实现动画。我们这里仍然用直升机为例,只是更换了场景。增加了巡游过程。 使用 HT 开发的一个简单网页直升机巡逻动画(Hightopo 使用心
    的头像 发表于 11-29 11:04 633次阅读
    <b class='flag-5'>HT</b> for <b class='flag-5'>Web</b> (Hightopo) 使用心得(5)- 动画的实现

    电路拓扑结构方案介绍

    电子发烧友网站提供《电路拓扑结构方案介绍.doc》资料免费下载
    发表于 11-14 11:27 1次下载
    电路<b class='flag-5'>拓扑</b><b class='flag-5'>结构</b>方案介绍

    国产常用Web组态编辑器(含开源软件)

    组态软件最早出现在80年代初,那时是基于DOS系统开发的,当时的主要产品是Onspec、Paragon等;进入90年代,主要是基于WINDOWS系统的组态软件,如Intouch、Kingview、Ifix 等;随着物联网、大数据等技术的高速发展,当下最热的
    的头像 发表于 11-06 17:31 2030次阅读
    国产常用<b class='flag-5'>Web</b><b class='flag-5'>组态</b>编辑器(含开源软件)

    图扑 HT for Web 风格属性手册教程

    图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎。HT for Web(以下简称 HT
    的头像 发表于 10-11 10:50 441次阅读
    图扑 <b class='flag-5'>HT</b> for <b class='flag-5'>Web</b> 风格属性手册教程

    HT for Web (Hightopo) 使用心得(2)- 2D 图纸、节点、连线 与基本动画

    概括来说,用 HT for Web 做可视化主要分为两部分,也就是 2D 和 3D。这两部分需要单独创建。在它们被创建完成后,我们再把它们集成到一起。 HT for Web 的 2D
    的头像 发表于 09-21 10:52 737次阅读
    <b class='flag-5'>HT</b> for <b class='flag-5'>Web</b> (Hightopo) 使用心得(2)- 2D 图纸、节点、连线 与基本动画