设为首页 | 加入收藏
当前位置: 主页 > 边界代数算法 > 剩下的路由工作就由用户手动完成吧)
剩下的路由工作就由用户手动完成吧)
发表日期:2019-05-10 08:23| 来源 :本站原创 | 点击数:
本文摘要:起首对GEF框架供给的连线路由进行简单引见。除了最根基的两点之间的直线结构以外,GEF供给的连线. 拐点路由(BendpointConnectionRouter) 2. 最短路路由(ShortestPathConnectionRouter) 3. 曼哈顿路由(ManhattanConnectionRouter) 以上3种路由体例均不克不

  起首对GEF框架供给的连线路由进行简单引见。除了最根基的两点之间的直线结构以外,GEF供给的连线. 拐点路由(BendpointConnectionRouter)

  2. 最短路路由(ShortestPathConnectionRouter)

  3. 曼哈顿路由(ManhattanConnectionRouter)

  以上3种路由体例均不克不及满足本文第一段提出的一些连线路由的要求。要实现仿Visio连线的结果,我们需要起首对Visio中连线的路由的特点进行总结,其特点包罗:

  1. 一旦用户对某条连线的路由体例进行了调整,就不再为其供给智能路由布线的功能。

  虽然Visio连线的路由曾经做的足够智能,但照旧不成能满足用户的所有的布线要求,故Visio中的连线照旧供给着用户对连线的路由进行调整的功能。当用户对一条连线的路由进行调整后,东西将不再为该连线供给路由支撑,而是采用用户调整当前的路由体例来布线,即便发生了连线与模子的结构冲突照旧如斯。

  对一幅图中的每一条连线,用户对哪些进行了路由调整需要进行记实,当这幅图封闭下次从头打开时,需要晓得该当为哪些连线供给路由支撑,不为哪些连线. 用户在建模时,只要当发生了连线和模子的结构冲突时,才对具有结构冲突的连线进行路由调整,对其他连线不做更改。

  本文的连线路由算法以GEF供给的拐点路由(BendpointConnectionRouter)为根本,对拐点路由做进一步改良,以实现智能路由的结果。以拐点路由(BendpointConnectionRouter)为根本的益处是,能够很好的操纵该路由支撑用户对连线路径进行调整的功能。起首,我们来领会一下拐点路由(BendpointConnectionRouter)连线的一些根基学问。

  采用拐点路由的连线上保留着一个一个的拐点(BendpointModel),BendpointModel是Bendpoint的子类,只要2个属性d1和d2,类型均为Dimension。d1保留拐点相对于连线保留拐点相对于连线的类型为Dimension,width对应x坐标偏移,height对应y坐标偏移,d2与之不异。(一点题外话,当连线的起点、起点和拐点相对于起点的偏移量d1已知时,拐点相对于连线时独一确定的,本人认为BendpiointModel中同时记实着d1和d2有些冗余)这里还需要申明一点,本文要实现路由算法的连线不是GEF默认供给的连线,而是对默认连线革新后两头可以或许悬空具有的连线,点此查看相关布景学问。

  什么样的结构能够被认为是冲突的呢?当连线发生紧贴模子,或连线横穿模子时,就能够认为连线和模子的结构发生了结构冲突,见下图,此时就需要对连线的路由体例进行调整。需要申明一点,结构冲突检测只担任检测直角连线(若是一条连线被拐点朋分开的所有的线段均处于程度或垂直标的目的,没有斜线,我们称如许的连线为直角连线)的结构冲突,后面会注释为什么只需进行这种检测就曾经足够了。

http://aeonview.com/bianjiedaishusuanfa/396/
热门推荐