Java 绘制高子父比图形的算法
我正在为一个包含大量业务需求(70个数据元素)的excel文档开发一个可视化工具 其目的是显示数据的某些内部结构,这些结构在查看excel文件时并不明显。结构看起来像这样: 根-->( (组成部分1)-->( 子组件a)--->(数据元1、数据元2、…、数据元30) (组成部分2)-->( 子组件a)--->(数据元1、数据元2、…、数据元30) (组成部分3)-->( 子组件a)--->(数据元2、数据元2、…、数据元30) ) 我注意到的是: 图形在显示结构方面很出色,但在显示数据方面却很差劲。 表在显示数据方面很出色,但在显示结构方面却很差劲 此时,我无法再使用GraphStream的默认自动布局。由于连接到单个子组件的数据元素数量很大,因此自动布局无法以不重叠且无法读取的方式定位这些元素。所发生的是一种花效应,其中数据元素就像围绕其父元素的重叠花瓣 如果禁用自动布局,则必须自己定位节点。Graphstream说: 您可以根据需要固定坐标。您使用的单位称为“图形单位”。但是,正如您稍后将看到的,查看器支持两个其他单位:像素和百分比 好吧,事实证明,要么这是个难题,要么我速度慢。我一直无法以可读的方式定位节点 我尝试过的事情:Java 绘制高子父比图形的算法,java,algorithm,recursion,graph-algorithm,graphstream,Java,Algorithm,Recursion,Graph Algorithm,Graphstream,我正在为一个包含大量业务需求(70个数据元素)的excel文档开发一个可视化工具 其目的是显示数据的某些内部结构,这些结构在查看excel文件时并不明显。结构看起来像这样: 根-->( (组成部分1)-->( 子组件a)--->(数据元1、数据元2、…、数据元30) (组成部分2)-->( 子组件a)--->(数据元1、数据元2、…、数据元30) (组成部分3)-->( 子组件a)--->(数据元2、数据元2、…、数据元30) ) 我注意到的是: 图形在显示结构方面很出色,但在显示数据方面却很差
- 相对于其父节点定位子节点:使用for循环遍历节点(回想起来,为了支持n个级别,可能值得递归实现),从root开始。确定根的子级数除以2(3/2=1,整数除法)调用此中间值。将组件1 X位置设置为i-中间。将y位置设置为根y位置-1。通过这种方式,我可以创建一个“树”结构,其中父对象位于其子对象的顶部李>
- 让单个图形元素负责自己的位置,并让它们相对于其子元素或缺少子元素来定位自己
- 结合一些定位解决方案来操作相机。限制在给定时间可以看到的节点数量(如果节点太多,请杀死其他人的孩子)。根据单击的组件使用缩放和平移
- 递归。这是我知道的一个词。别开玩笑了,我以前用过递归,我觉得图,特别是像我这样没有循环结构的图,实际上需要递归解决方案。实际上,我在另一个项目中使用了递归方法来绘制图形,但我最终还是遇到了同样的情况。我如何知道绘制其他父级的子级的递归路径?我还是应该集思广益地想出一些递归方法
- 创建表示视口中相对不动产的新数据结构。分段为区域,节点占据相对区域,2个节点不能占据相同的相对区域。想想当有人试图坐在别人的孩子身上时该怎么办。我是在写这篇文章的时候想到的