微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

3D力导向图节点与Apache Spark graphx的坐标计算

如何解决3D力导向图节点与Apache Spark graphx的坐标计算

有人知道Apache Spark GraphX的力导向3维图算法的任何实现吗?

我得到了一个必须可视化的图形,出于快速渲染的目的,我想计算apache spark graphx中每个图形节点的3d坐标,然后将这些坐标作为输出传递给渲染模块的应用程序。

到目前为止,我只知道d3.js库可以提供图形的3D渲染,但是它们非常有限,并且按我的需要正好相反-这些库接受图形节点和链接并实现所有坐标javascript中的演算,使其对大量数据(如果图形超过10万个节点)无用。目标是找到某种算法或库,以提供一种方法来计算Spark自身内部3d空间中每个节点的坐标,从而在Spark中保留大量计算,仅将位置{nodeID,x,y,z}的数组暴露给渲染模块。

在我的情况下,图的每个边实际上是一个方向力(例如,从节点A到节点B的 forceA值为4, 2.1从nodeB到nodeA ... )。算法的思想是执行以下操作:

  • 从外部源预加载图形数据。此数据包括nodeId和方向链接(力值)
  • 在计算开始之前:每个节点都被分配了一些随机的3d坐标初始值(x,y,z),最小差异 delta )被定义为常量,并且最小行进距离步骤)也被定义为常量
  • 算法执行一组迭代计算,并为图形坐标{nodeID,x,y,z}的每个节点计算一组坐标:对于每个节点和节点的力集(入站和出站),它找到所有这些力的结果向量,并通过 step
  • 单独移动该向量 一旦所有节点的新坐标距离上一次迭代的坐标小于 delta
  • 迭代就会停止

我知道,我的上述描述并不理想,似乎还不清楚,但是,也许听众中有人发现了足够接近的东西可以尝试。感谢使用Apache Spark GraphX实施此类建议以及对任何类似项目/存储库的引用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。