y.布局.外部
类OrganicEdgeRouter
java.lang.Object(java.lang.对象)y.layout.router。有机边缘路由器
- 所有实现的接口:
- 层外(Layour),布局阶段
公众阶级有机边缘路由器
- 扩展java.lang.Object
- 实施布局阶段
此边缘路由算法将有机路由应用于图的边缘。
布局样式
边缘以有机方式布线,即在节点周围的平滑曲线中,观察最小距离
到节点。
在路由过程中,节点的位置被认为是固定的,路由器不会修改它们的位置或大小。
只要边路径应避免有机或循环跨越任何节点,就可以应用边路由算法布局样式。
概念
边缘布线算法使用力定向方法计算边缘路径。考虑节点当边缘尽可能短时,形成排斥力。
每条边被单独布线,并受其周围特定区域中节点的影响。该算法将添加弯曲到通过平衡力放置的边路径。
结果的质量在很大程度上取决于节点之间的空间大小。更准确地说每对节点之间的距离应至少为指定距离的两倍最小距离
。如果节点没有必要保留其位置,则可以使用以下组合来确保删除重叠布局阶段
和节点扩大阶段
。
特征
设置最小距离(双精度)
将使边与节点保持自定义距离。然而,如果没有节点之间有足够的空间,则此距离可能不足(即边缘将更靠近节点)。
有机边缘路由器
能够重用现有折弯
。边缘将包含这些弯板以及布局算法添加的其他弯板。另一个功能允许考虑弯曲,从而影响路线查找,但其绝对值未保留位置(请参见setExistingBendsConsiderationEnabled(布尔值)
)。
此边缘布线算法实现为布局阶段
可以直接应用于图形,也可以使用一核心布局算法
。
-
-
现场总结 |
静态java.lang.Object |
路由_边缘_密钥
A类数据提供程序 用于选择应布线的边的键 |
从类java.lang.Object继承的方法 |
clone,equals,finalize,getClass,hashCode,notify,notifyAll,toString,wait,wait |
路线_ DGE_DPKEY
公共静态最终java.lang.Object路由_边缘_密钥
- A类
数据提供程序
用于选择应布线的边的键
有机边缘路由器
公众的有机边缘路由器()
- 创建新的
有机边缘路由器
实例的默认设置。
有机边缘路由器
公众的有机边缘路由器(双倍minNodeDistance)
- 创建新的
有机边缘路由器
边和节点之间具有自定义最小距离的实例。
- 参数:
最小节点距离
-边与节点之间的最小距离- 投掷次数:
java.lang.Illegal参数异常
-如果给定的最小距离为负
有机边缘路由器
公众的有机边缘路由器(层外(Layour)堆芯)
- 创建新的
有机边缘路由器
使用给定的核心布局算法
。
- 参数:
核心
-核心布局算法
can布局
公共布尔值can布局(LayoutGraph布局图图表)
- 接受节点大小大于的所有图
0
以及指定的核心布局算法
可以处理。如果没有核心布局算法
指定,所有没有零大小节点的通用图都是认可的。
- 指定人:
can布局
在接口中层外(Layour)
- 参数:
图表
-输入图形- 退货:
真的
如果核心布局算法
可以处理给定的图形和此图不包含大小为的节点0
,假
否则- 另请参阅:
Layouter.doLayout(布局图)
允许边缘节点重叠
公共布尔值允许边缘节点重叠()
- 返回是否允许边跨节点。允许边与节点重叠将产生边缘更平滑,因为边缘路径可以更靠近节点。
-
- 如果节点不能
放大的
例如,因为节点不应移动,允许节点和边之间重叠可能会导致更好的结果,以防节点之间的距离都很小。这个最小距离
无法始终保持。
- 退货:
真的
如果允许边缘节点重叠,假
否则- 另请参阅:
setEdgeNodeOverlapAllowed(布尔值)
,创建节点扩展阶段()
,设置最小距离(双精度)
允许setEdgeNodeOverlapAllowed
公共空虚允许setEdgeNodeOverlapAllowed(允许布尔边节点重叠)
- 指定是否允许边跨越节点。允许边与节点重叠将产生边缘更平滑,因为边缘路径可以更靠近节点。
-
- 如果节点不能
放大的
例如,因为节点不应移动,允许节点和边之间重叠可能会导致更好的结果,以防节点之间的距离都很小。这个最小距离
无法始终保持。
- 默认值:
- 默认值为true。允许边跨越节点。
- 参数:
允许边缘节点重叠
-真的
如果允许边缘节点重叠,假
否则- 另请参阅:
创建节点扩展阶段()
,设置最小距离(双精度)
- 示例图表:
假 | 真的 |
do布局
公共空虚do布局(LayoutGraph布局图图表)
- 执行输入图形边缘的有机布线。
- 指定人:
do布局
在接口中层外(Layour)
-
- 在边缘布线过程中不会复制给定的图形,结果将立即显示应用于输入图形。
- 参数:
图表
-输入图形- 另请参阅:
Layouter.canLayout(LayoutGraph)
检查节点大小
保护空隙检查节点大小(图形布局布局,java.lang.Object节点)抛出java.lang.IllegalArgumentException
- 检查给定节点的宽度或高度是否为
0
。此方法在中调用doLayout(布局图)
在核心布局算法
被调用。可以覆盖它来删除/更改此检查。
- 参数:
布局
-图形布局对象节点
-节点- 投掷次数:
java.lang.Illegal参数异常
-如果节点对象的宽度或高度为零- 另请参阅:
checkGroupNodeSize(图形布局,对象)
检查组节点大小
保护空隙检查组节点大小(图形布局布局,java.lang.Object节点)抛出java.lang.IllegalArgumentException
- 检查给定组节点的宽度或高度是否为
0
。此方法在中调用doLayout(布局图)
在核心布局算法
被调用。可以覆盖它来删除/更改此检查。
- 参数:
布局
-图形布局对象节点
-组节点- 投掷次数:
java.lang.Illegal参数异常
-如果组节点对象的宽度或高度为零- 另请参阅:
checkNodeSize(图形布局,对象)
获取核心布局器
公众的层外(Layour) 获取核心布局器()
- 返回在边缘布线之前排列图形的核心布局算法。
- 指定人:
获取核心布局器
在接口中布局阶段
- 退货:
- 排列图形的布局算法
- 另请参阅:
setCoreLayouter(层外)
设置核心层
公共空虚设置核心层(层外(Layour)核心层)
- 指定在边缘布线之前排列图形的核心布局算法。
- 指定人:
设置核心层
在接口中布局阶段
- 默认值:
- 默认值为null。
- 参数:
核心布局器
-排列图形的布局算法
获取最小距离
公共双人间获取最小距离()
- 返回算法应保证的节点和非相交边之间的最小距离。
距离还影响添加到路径中的折弯数(距离越大,折弯数越少)。
最小距离定义为非负值。
-
- 为了获得最佳效果,距离应至少为
10
。
-
- 如果没有足够的空间,则可能无法遵守最小距离。
- 退货:
- 边与节点之间的非负最小距离
- 另请参阅:
设置最小距离(双精度)
设置最小距离
公共空虚设置最小距离(双倍最小距离)
- 指定算法应保证的节点和非相交边之间的最小距离。
距离还影响添加到路径中的折弯数(距离越大,折弯数越少)。
最小距离定义为非负值。
-
- 为了获得最佳效果,距离应至少为
10
。
-
- 如果没有足够的空间,则可能无法遵守最小距离。
- 默认值:
- 默认值为10。
- 参数:
最小距离
-边与节点之间的非负最小距离- 投掷次数:
java.lang.Illegal参数异常
-如果给定的最小距离为负- 示例图表:
10 | 50 |
正在使用弯头
公共布尔值正在使用弯头()
- 返回确定边路径时是否保留初始折弯坐标。弯曲处为被视为固定节点并保持路径的一部分。
-
- 如果现有弯头不应完全固定,而应仅考虑布线,请使用属性
setExistingBendsConsiderationEnabled(布尔值)
而是禁用这个。
- 退货:
真的
如果保持初始折弯坐标,假
否则- 另请参阅:
setUsingBends(布尔值)
设置使用弯头
公共空虚设置使用弯头(布尔型keepExistingBends)
- 指定在确定边路径时是否保留初始折弯坐标。弯曲处为被视为固定节点并保持路径的一部分。
-
- 如果现有弯头不应完全固定,而应仅考虑布线,请使用属性
setExistingBendsConsiderationEnabled(布尔值)
而是禁用这个。
- 默认值:
- 默认值为false。输入图形中的折弯坐标不保持固定。
- 参数:
保持现有折弯
-真的
如果应保留初始折弯坐标,假
否则- 示例图表:
已启用现有折弯考虑
公共布尔值已启用现有折弯考虑()
- 返回初始折弯坐标是否影响路径布线,以便计算路线的总体形状往往相似。
将考虑但不保留现有折弯坐标。如果要保留,启用属性setUsingBends(布尔值)
。
-
- 当
setUsingBends(布尔值)
已启用。
- 退货:
真正的
如果考虑现有的弯曲,假
否则- 另请参阅:
setExistingBendsConsiderationEnabled(布尔值)
设置现有折弯考虑已启用
公共空虚设置已启用的现有折弯考虑(布尔值考虑现有折弯)
- 指定初始折弯坐标是否影响路径布线,以便计算路线的总体形状往往相似。
将考虑但不保留现有折弯坐标。如果要保留,启用属性setUsingBends(布尔值)
。
-
- 当
setUsingBends(布尔值)
已启用。
- 默认值:
- 默认值为false。边布线不考虑输入图形中的折弯。
- 参数:
考虑现有弯管
-真正的
如果应考虑现有弯管,假
否则
全部传送
公共布尔值全部传送()
- 返回是在所有边上还是仅在违反距离的子集上执行重路由步骤。
如果只对边的子集进行重新布线,则只包括那些跨越节点或过于靠近节点的边。在重新布线期间,将向受排斥力影响的边添加更多折弯。
-
- 重新布线所有边缘将导致更有机的布线,该布线考虑到
最小距离
更接近。禁用此功能,即保留第一个计算路径所需的运行时间更少。
- 退货:
真的
如果所有边都重新布线,假
如果只有一个子集被重新路由- 另请参阅:
setRoutingAll(布尔值)
设置全部路由
公共空虚设置全部路由(布尔路由全部)
- 指定是在所有边上还是仅在违反距离的子集上执行重路由步骤。
如果只对边的子集进行重新布线,则只包括那些跨越节点或过于靠近节点的边。在重新布线期间,将向受排斥力影响的边添加更多折弯。
-
- 重新布线所有边缘将导致更有机的布线,该布线考虑到
最小距离
更接近。禁用此功能,即保留第一个计算的路径将占用较少的运行时间。
- 默认值:
- 默认值为false。只有距离节点太近的边才会重新布线。
- 参数:
路由全部
-真的
如果所有边都重新布线,假
如果只有一个子集被重新路由- 示例图表:
假 | 真的 |
创建节点扩展阶段
公众的布局阶段 创建节点扩展阶段()
- 返回一个
布局阶段
临时增加节点的大小以避免重叠。边缘将与节点保持更大的距离。因此,他们不会越过它们。
-
- 舞台应与
删除重叠布局阶段
,请参阅提供的示例。以下示例演示了如何使用此阶段:有机边缘路由器=新的有机边缘路由器();CompositeLayoutStage cls=新的CompositelayoutStake();cls.appendStage(router.createNodeEnlargementStage());cls.appendStage(新的RemoveOverlapsLayoutStage(0));router.setCoreLayouter(cls);router.doLayout(图形);
- 退货:
- 这个
布局阶段
调整节点大小的