当前位置: 首页 > 知识库问答 >
问题:

同时使用入边和出边的小精灵遍历

孙永思
2023-03-14

我试图从给定的根节点开始遍历图的所有节点。在遍历时,我想“修复”从上一个顶点到当前顶点的边,使边从上一个顶点到当前顶点(可能是另一种方式,但结束图应该是根顶点位于根的树)。

问题似乎是被遍历的边并不是全部严格地在边外或边内。

我试图创建一个广度优先遍历(我不应该先做广度吗?),但由于有输入和输出边,我开始的查询看起来像这样

g.v('rootVertex').as('x').both.gather.scatter.loop('x'){true}{true}

由于“.both”(我认为),这似乎正在创建一个无限循环。

有没有办法在gremlin中做到这一点,不会创建无限循环,并允许我修复/验证来自前一个节点的边缘?

另外,我可以得到一个简单的示例,说明查询的“聚集。分散”部分吗?我很难想象这一步到底实现了什么。

共有1个答案

慕通
2023-03-14

添加一个simplePath步骤以防止两个节点之间的遍历循环:

g.v('rootVertex').as('x').both().simplePath().loop('x'){true}{true}
 类似资料:
  • 在图遍历中,我只想考虑具有与在遍历的前一步中访问的一条边的属性相等的属性的边。 我找到了http://tinkerpop.apache.org/docs/current/recipes/#traversal-induced-values但这似乎只适用于单个对象,在我的例子中,我需要在遍历时更改值。例如,从具有出站边(E1、E2、E3...)的V1开始,我想遍历E1到V2,然后沿着V2的任何边遍历,

  • 多边形精灵(Polygon Sprite) 也是一个精灵,同样是为了展示一个可以被控制的图像,但是和普通精灵的区别是,普通精灵在绘图处理中被分为了两个三角形,多边形精灵则是被分为了一系列三角形。 为什么要使用多边形精灵 提高性能! 要深入分析这个是如何提高性能的,会需要很多和像素填充率有关的技术术语。幸好本节是入门性质的文档,能让大家理解多边形精灵比普通精灵性能好就可以了,不用讨论特定宽高矩形绘制

  • 我有一个顶点ID列表。我想在它们之间找到所有可能的边缘。 我理解filter/where等方法在这里会有所帮助,但由于我使用的是gremlin-python,它们的实现必须有所不同。 我尝试过: 我怎样才能做到这一点?这似乎是一个容易的问题,但我仍然坚持下去。

  • 我有以下图表 如果我写一个查询g.V('a')。Out(),我如何才能得到被遍历的边和在traveral中遇到的顶点的值?

  • 我有一个带有两个顶点的简单图,具有id'a'和'b'。 我已将两条边从“a”分配到“b”,其中每条边都有标签=“foo” [1] 小精灵 == == 每条边都有一个属性key=“已提交”。 [2] 小精灵 == == 我的问题:我想像步骤[2]一样枚举边缘并返回它们各自的属性,但是如何将结果中的边缘属性匹配回它们各自的边缘(id)?我得到的只是属性键值分配;没有与边缘id相关的内容。 谢谢 乔尔·

  • 我在Android Studio中使用libgdx,并且我正在使用精灵碰撞检测。我需要知道如何检测两个形状不规则的精灵之间的碰撞。我的精灵是从png图像纹理创建的。是否可以使用子画面的边框作为检测表面?使用在子画面周围绘制的矩形或圆形将不够准确。感谢您的帮助!