Axure高保真教程:用中继器制作知识图谱节点移动

知识图谱是一种将知识以图形方式组织和表示的方法。它由节点和边组成,节点代表实体(如人物、地点、概念等),边表示这些实体之间的关系。知识图谱旨在捕获丰富的语义信息,使得计算机能够理解和推理出不同实体之间的关联性,从而支持更智能的搜索、推荐、问答等任务。

所以今天作者就教大家怎么在Axure里用中继器制作制作一个动态图谱,包括拖拉拽移动、编辑、增删改等效果,具体效果如下所示:

一、效果展示

1)拖拽移动——鼠标拖动可以移动节点,对应连接线的长度和角度会自动调整。

2)修改节点内容——鼠标单击可以选中对应节点,选中后点击编辑节点按钮(也可以通过鼠标双击来编辑),修改节点的文字内容。

3)添加子节点——鼠标单击可以选中对应节点,选中后点击添加子节点按钮,可以添加该节点的子节点。

4)删除节点——鼠标单击可以选中对应节点,选中后点击删除节点按钮(也可以通过按键盘的delete键),确认后可以删除该节点。

5)删除父级节点——鼠标单击可以选中对应节点,选中后点击删除节点按钮(也可以通过按键盘的delete键),确认后可以删除该节点以及对应的子节点。

6)添加新节点——鼠标点击添加新节点按钮),可以添加一个全新的节点。

二、制作教程1.材料准备

1.1图谱部分

图谱部分我们主要用到中继器,中继器里面放置圆形、水平线、输入框,矩形。

圆形如果需要多种颜色的,可以将对应颜色的圆形放置在同一个动态面板不同的state里。

输入框默认隐藏,背景颜色为透明。

矩形的话一个是主要做背景矩形,选中效果,默认隐藏,在顶部还要放置一个是默认透明的圆,用于遮挡输入框,后续通过双击或者编辑按钮,才能修改内容。

如下图所示摆放。

中继器表格我们需要一下几列:

我们填写的时候其实填写前4列即可,后面三列fuji、fx、和fy,我们是复制对应父节点前三列的数据。

1.2其他部分

其他部分的话,主要包括按钮,提示弹窗,新节点和新子节点的辅助圆(和图谱一样大小的,默认隐藏),记录文本(默认隐藏),这种辅助类的元件,这些在摆放在中继器外部即可,弹窗默认隐藏。

2.设置交互

2.1通过中继器来控制图谱

①设置文本

在中继器每项加载时,我们用设置文本的交互,将中继器表格text列的值设置到顶部的透明圆,以及输入框里。

②设置圆的颜色

用设置面板状态的交互,根据bgcolor列填写的颜色,设置到对应的动态面板里。

③移动圆到对应位置

我们用移动的交互,设置圆心到达x和y列对应的坐标值位置,这里需要注意的是:

④移动水平线

用移动的交互,根据xy列的坐标值,设置线移动到对应的圆心为位置,这里需要的也是中继器是一行行来的,如果是第二行要减去第一行的高度,第三行要减去前两行的高度,所以我们需要用index函数获取在第几行,然后减去前面累计的高度即可。

⑤设置水平线的长度

我们用两点间距离公式d=√((x2–x1)^2+(y2–y1)^2),根据xy列和fxfy列两个圆心的值,就可以求出线段的长度,然后用设置尺寸的交互,设置水平线的长度。

⑥设置水平线的角度

同样我们,根据xy列和fxfy列两个圆心的值,通过三角函数,可以用Math.atan2(y2-y1,x2-x1)*180/π来计算出两个点之间的角度,然后用旋转的交互,将线段设置到对应的角度,这样两个圆之间的线段就连成线了。

这里要注意的是,第一个最高级的圆是没有父节点的,所以我们要增加一个条件判断,如果fx为空值时,就是没有父节点,这个圆就不需要链接线,我们用隐藏的交互,将他隐藏即可。

这样图谱就出来了。

2.2拖拉拽移动圆

我们把中继器里圆组合(除了水平线)转为动态面板,因为只有动态面板有拖动时的事件。

鼠标拖动动态面板时,我们用移动的交互,让他跟随移动即可。

一般我们会把拖动的组合置顶,这样不会被其他圆挡住。

拖动的时候我们还要实时更新中继器表格里记录圆心的坐标值,我们用更新行的交互就可以了,更新的话要更新两部分内容,第一个这个圆是父节点,我们要更新他的子节点的fx和fy列的值,更新为现在圆心的坐标即可;其次是更新当前行圆心x和y列的值,同样是更新为现在圆心的实时坐标即可。

2.3添加新节点

鼠标单击添加新节点的时候,我们用显示的交互,显示辅助圆,然后用移动的交互,将辅助圆移动到圆心对应鼠标指针的位置,这里鼠标指针的坐标值可以用cursor函数获取.

鼠标在新节点圆里移动时,我们用移动的交互,将始终保持圆心跟随鼠标指针的位置,这里和上面的交互是一样的,这样新的圆就可以跟随鼠标移动了。

这里有时候鼠标移动的太快,圆可能跟不上,导致鼠标移出了圆无法继续跟随,我们在页面鼠标移动时增加移动圆的交互,就可以避免这样的情况。

当鼠标单击圆时,就是我们想把圆放在这个位置,所以我们用添加行的交互,在中继器里增加一行,里面填写对应列的内容即可,text可以填写默认文字例如新节点,然后xy是填写圆心的位置,就是鼠标指针的x和y坐标值。因为是新节点,所以后面的fuji、fx、fy都不用填写。

2.4添加新子节点

添加新的子节点和上面大体相同,不同的是,添加之前,你要先选择并记录父节点。

鼠标单击父节点时,我们用要将底部的选中框显示出来,这样才知道哪个被选中,并且记录下选中元的x、y和对应的文本值,这个直接用设置文本的交互即可。

这里因为选中的圆只能有一个,选中下一个的时候,上一个就应该取消选中,我们要通过选中的交互串联上面的交互,我们先把顶部透明圆设置一个选项组,这样就只能选中一个了。鼠标单击节点时选中这个圆,然后显示选中框,记录对应的文本;取消选中时,就隐藏选中框即可。

鼠标单击添加子节点按钮时,我们首先要判断,有没有文本被选中,我们可以根据记录文本的值是否为空来判断,这里最后在中继器每项加载时的第一行一开始的时候,我们用设置文本的交互将他设置为空。那后面选中之后,就会记录下文字。

如果文字等于空,就是没有选择父节点,我们显示的交互,显示提示弹窗即可;

如果不为空就是已经选择了父节点,我们和上面添加新节点的交互是一样的,首先显示新子节点对应的圆,让圆跟随鼠标移动,鼠标单击时隐藏圆,添加新行,这里跟前面的内容都是一样的,就不重复了。

我们只讲不同点,不同点是添加行的时候,前面添加新节点因为没有父节点,所以fuji、fx、fy都不用填写,这里添加子节点有父级,我们要把父级对应的文字,圆心的xy坐标填写进去。上面我们用设置文本的交互,记录在三个文本标签里,这里用变量获取就可以了。

2.5编辑节点内容子节点

鼠标点击编辑按钮时,其实和前面添加子节点一样,先要判断是否已经选择了节点,如果没有选择,就显示提示弹窗;

如果选择了,我们用更新行的交互,将bianji列的值更新为1,我们要通过bianji列的值来控制输入框是否显示。在中继器每项加载时,如果编辑列的值等于1,就显示输入框,隐藏顶部遮挡的圆。

这里要注意的是,在更新行之前,因为前面可能有些行是刚刚编辑完成的,就是已经存在行bianji列的值为1,我们要先将他清空,我们可以先标记所有行数据,然后更新全部标记行,将bianji里的值更新为0,。然后再将当前行bianji列的值更新为1。这样处理后,biaoji列的就仅有选中圆对应行是1。

另外,我们也可以在鼠标双击圆时进入编辑模式,交互和上面的是一样的。

输入框失去焦点时,就是编辑完成了,我们用更新行的交互将输入框里的值更新回中继器表格里即可,这里和上面一样,更新的话要更新两部分内容,第一个这个圆是父节点,我们要更新他的子节点的fuji列的值,例如广东改名为广东省,广州那行里fuji记录的还是广东,所以要先把对应的fuji列的内容更新为现在输入框里最新的值;然后是更新当前行text列值,同样是更新为现在输入框里最新的值即可。

2.6删除节点

鼠标单击删除按钮时,其实和前面添加子节点一样,先要判断是否已经选择了节点,如果没有选择,就显示提示弹窗;

如果选择了节点,就显示确认弹窗,鼠标点击确认按钮时,用删除行的交互删除,这里我们也是和上面一样,首先要删除fuji列的和记录要删除的节点名称,其实就是子节点;然后再删除当前节点。

最后如果希望按键盘的delete键也可以删除,我们只需要在页面按钮按下时,用触发的交互,触发上面删除的交互即可。

那以上就是本期教程的全部内容,感兴趣的同学们可以动手试试哦,感谢您的阅读,我们下期见。

本文由@AI产品人原创发布于人人都是产品经理,未经许可,禁止转载

THE END
1.大数据之—知识图谱(一)本文为在知识图谱领域研读陈华均老师的书籍,与会CCKS2020、华为网络天下2020,结合相关知识在一些具体算法场景做出一定程度的应用后的个人知识总结笔记。在学习过程中看了很多paper或教程,整理起来放到这里备忘,列表会随着我的学习不断更新。 书籍推荐: 《知识图谱——方法、实践与应用》陈华钧 https://zhuanlan.zhihu.com/p/3734030772
2.知识图谱入门篇(一)xiaoyufutureNeo4j和知识图谱:从基础入门到精通全栈教程 【知识图谱】——实现流程讲解(完结)从数据收集到知识图谱可视化的毕设流程 知识图谱的应用 1. 搜索引擎 2. 智能问答 3. 推荐系统 4. 语义理解 5. 决策分析 6. 智慧物联 7. 知识图谱构建流程 1. https://www.cnblogs.com/xiaoyufuture/p/18433627
3.知识图谱入门笔记知识图谱(Knowledge graph):由结点和边组成,是结构化的语义知识库。 结点可以是实体,如一个人、一本书等,或是抽象的概念,如人工智能、知识图谱等。 边可以是实体的属性,如成绩、书名,或者是实体之间的关系,如朋友、家人。 理解为图状具有关联性的知识集合,可以由三元组(实体-关系-实体)表示。 https://blog.csdn.net/Moliay/article/details/140191096
4.一文速学知识图谱从零开始构建实战:知识图谱搭建构架实践Neo4j 是一个开源的图数据库管理系统,它以图形结构存储数据,能够高效处理复杂的连接和关系数据。Neo4j 使用图数据模型来表示数据中的节点、边和属性,使其特别适合构建和存储知识图谱。 1.2. 知识图谱存储的发展历程 早期数据库:在知识图谱发展的初期,数据存储主要依赖关系型数据库(如MySQL、PostgreSQL),这些数据库以表https://cloud.tencent.com/developer/article/2462755?policyId=20240000
5.知识图谱模型的教程及使用方法知识图谱模型是用于构建和表示知识图谱的数学模型和算法。常见的知识图谱模型包括基于图的表示学习方法(如GNN、GCN)、基于事实三元组的表示学习方法(如TransE、DistMult)等。这些模型可以帮助我们从结构化的知识图谱数据中学习到实体和关系的向量表示,进而可以用于推理、问答等任务。 二、知识图谱模型的教程 1.数据准备 https://wenku.baidu.com/view/21a7d25b7075a417866fb84ae45c3b3566ecdd59.html
6.知识图谱构建流程知识图谱(Knowledge Graph)源于语义网、图数据库等相关学术研究领域,不同领域对知识图谱研究的侧重有所不同,如自然语言处理、知识工程、机器学习、数据库和数据管理等领域都有不同的研究与应用。 自然语言处理领域:“信息抽取”是其核心,如何从非结构文本数据中抽取知识图谱所需要的三元组数据是一项极富挑战性的工作。https://ir.sdu.edu.cn/~zhuminchen/KG/6.htm
7.手把手教你用“知识图谱+大模型”完成知识抽取下面我们将以“IAEA2011 在维也纳总部举行的第五十五届常委会”为例,带大家具体演示如何通过“知识图谱+大模型”技术,将pdf版的会议记录进行知识的高效、精准地抽取。 1. 准备数据 如下链接可查看并下载原始会议记录: https://www.iaea.org/sites/default/files/gc/gc55or-3_ch.pdf https://www.modb.pro/db/1793948691626807296
8.知识图谱算法python教程知识图谱的算法知识图谱算法python教程 知识图谱的算法 在当前大数据行业中, 随着算法的升级, 特别是机器学习的加入,“找规律”式的算法所带来的“红利”正在逐渐地消失,进而需要一种可以对数据进行更深一层挖掘的方式,这种新的方式就是知识图谱。下面我们来聊一下知识图谱以及知识图谱在达观数据中的实践。https://blog.51cto.com/u_16213670/9360099
9.知识图谱入门(一)允许各网站基于一定的方式如RDFa、JASON-LD等方式在网页和邮件等数据源中嵌入语义化数据,让个人和企业定制自己的知识图谱信息。 Ref 王昊奋知识图谱教程 Previous Kaldi thchs30手札(八) Next 知识图谱入门 (二) 知识图谱与语义技术概览。主要介绍知识表示、知识抽取、知识存储、知识融合、知识推理、知识众包、语义搜索http://www.360doc.com/content/20/0404/18/30846730_903842218.shtml
10.知识图谱系列教程awesome-knowledge-graph 整理知识图谱相关学习资料,提供系统化的知识图谱学习路径 知识图谱是什么 徐超-三个角度理解知识图谱 从数据治理,语义连接,智能https://www.jianshu.com/p/547e80f33b24
11.知识图谱完整教程码农集市专业分享IT编程学习资源知识图谱完整教程Lo**ly 上传82.95 MB 文件格式 rar 大数据 算法与数据结构 第一讲 知识图谱概览;第二讲 知识表示和知识建模;第三讲 知识抽取与挖掘I 点赞(0) 踩踩(0) 反馈 所需:3 积分 电信网络下载 可达性分析算法visio软件画图 2024-12-21 23:23:24 积分:1 https://www.coder100.com/index/index/content/id/852608